Хех. Неубедительные попытки оправдаться. Плюс к этому, по заданной формуле "по себе людей не судят", вижу двойные стандарты, а именно оправдание какой-то группы людей без веских на то причин исходя из своих личных взглядов. А самое смешное, что качество софтверной продукции AMD уже тянет на тяжёлый криминал. Явно криптолокеры в свободное время пилят забивая на основную работу. Из каких только сфер не встречал криминальных программеров. Если кодер из ex-USSR, то склонность к бандитизму увеличивается в 10 раз. Инфа сотка. P.S. По полюсам все понятно, овладеть полноценным ООП на Си++ практически невозможно на ранних этапах и толпы несостоявшихся кодеров идут грабить караваны. Начинать надо с Java, Javascript, Golang, .NET.
И с гордо поднятой головой получать копейки, зато типа "честный" и не "криминал". Аж прослезился ЗЫ Готов к закидыванию подушками
> хотелось бы написать в будущем что-то вроде криптора, трояна,. С такой мотивацией точно удачи не будет. Беспричинное стремление ко злу. Так полагаю что данное направление как то интересно тс, у этого тоже есть причина. Врядле это возможно выяснить в данном случае. Крипторы и подобное это примитивный мусор, который пишется детьми, поэтому мотивация не понятна.
На данный момент я вообще ничего написать не могу. Я не говорил, что это будет моей конечной точкой и направлением деятельности. К злу не стремлюсь, я не против заняться и чем-то противоположным. Вся суть в том, что хочется научиться писать, и писать что-нибудь действительно достойное, что-нибудь более близкое к системе. Indy_, поделитесь советом/опытом, как мне правильно действовать по вашему мнению? Сейчас пока читаю Юрова, есть непонятные моменты, но надеюсь, что понимание придет.
skales007, Программирование непосредственно это не написание программы. Это формулировка задачи и поиск алгоритмического решения. Соотвественно из этого и нужно исходить. Изучать общие методы прог-я, алгоритмы и методы решения. В таком случае язык написания программ значения не имеет. А далее вам нужно определиться с направлением. Кому то интересно прог-е железа, кому то общее под конкретную ОС. Так же нужно определиться с целями - понять как работает ваша система, которую вы собираетесь прог-ть или вам важен лишь конечный вариант. Во втором случае выбирается наиболее эффективный инструмент, а само прог-е уходит на задний план", становится не важным, так как основную часть задачи решает автоматика. Только определившись с этими целями можно искать конкретный набор инфы. Не определившись с целями нет смысла выбирать, так как цель определяет какая инфа нужна. Написать же что то рабочее, тоесть собрать рабочий код, просто что бы заработало - для этого можно взять любой высокоуровневый компилер/язык.
Indy_, хотелось бы заниматься все же программированием по Win. Соответственно углубиться в особенности ее архитектуры и т.п. Ну и конечной цели просто написать что-либо нет. Хочется именно понимать как это работает. Просто писать программы удел одного моего товарища, ищет куски готового кода, собирает их в кучку и готово. Меня такой подход не устраивает. Вирмейкинг в какой то части из-за этого и привлек, так как там приходится работать именно с "внутренностями", а не просто клепать готовый код (хотя и такое тоже постоянно встречается). Ещё раз повторюсь, что не против заниматься противоположным вирмейкингу. Но как я понимаю, чтобы со "злом" бороться, нужно знать как оно устроено.
skales007, Тогда понятно почему виксы вас привлекают. Но для этого необходим такой масштаб знаний, который вы врядле сможите получить в ближайшие несколько лет. Тем более пока вы будите что то изучать, технологии и техники изменятся. Поставьте себе более реальную цель. Если вам интересно устройство ОС, то установите отладчик, соберите приложение каким либо компилятором и начните его изучать. Любой нюанс описан, постепенно вы начнёте ориентироваться в этих дебрях. Но для этого нужно стремление и много времени. Не следует начинать с интерпретаторов и комиляторов, которые формируют код, в котором вы не сможите найти соотвествия. Первое знакомство например с дельфи навсегда сформирует у вас не корректные впечатления и понятие. Вы будите решать не исходную задачу, а как заставить компилер собрать решение. Поэтому для обучения годятся лишь нэйтивные языки, по типу пури, си или асм.
Возможно это неправильно, но помимо изучения хотелось бы ещё своими руками что-то создавать, с пониманием процесса разумеется.
Инде правильно написал, добавлю чуть от себя. Есть задача (цель), есть масса различных вариантов её решения. Программирование заключается в нахождении оптимального по определённым критериям решения (скорость работы, объём ПО, экономия памяти, потраченные трудозатраты, переносимость между платформами) и перевод этого решения на понятный машине язык. Соответственно, формируются и требования к языку программирования и среде разработки. Какие-то языки лучше подходят для решения одних задач, какие-то - для других, нет универсального языка программирования. Программировать надо начинать постепенно. Ставите себе относительно простую задачу и решаете её, потом посложнее, потом ещё посложнее и т.д.
SadKo, В начале решение задачи это её чёткое описание, формулировка. Далее следует поиск алгоритмического решения. Если задача довольна сложна, то используются абстракции. Только после полного понимания можно начать писать реализацию с использованием конкретного языка. ЯП по этой причине языком и называется - так как язык это средство описания алгоритма. skales007, > помимо изучения хотелось бы ещё своими руками что-то создавать Для начала нужно начать что то делать. Вы только спрашиваете, но ничего не делаете. И не можете сформулировать свою задачу, не понятно что вам нужно.
возьмите TinyC (TCC), скомпилируйте helloworld, откройте получившийся ЕХЕ в отладчике OllyDbg и проходите по шагам. появившиеся вопросы - гуглите. собственно, все. новые вопросы и новые ответы появятся сами собой. го компилить и дебажить
Да я вроде бы стараюсь что-то делать, но похоже не то. Я ограничился одним только чтением книги и разбором примеров из нее. Как я вас понял, книгой по большей части нужно пользоваться как справочником. Благодарю за советы. Проблема в том и была, что не знаешь в какую сторону кинуться, одни говорят прочитай 100500 книг потом начинай писать и т.п. другие же говорят только писать и всё. Вот и оказался в тупике. Смысл в том, что как раз и хотелось услышать советы опытных людей, которые знают что говорят, так я попал сюда. Первое время пытался найти людей, которые поставят правильные задачи, которым можно примерно следовать и выполнять, потом осознал, что таких не найти (это логично). Но все же тут много отзывчивых людей, которые не отказали в совете. Теперь думаю, все же найду подход к самообучению. Надеюсь из этого что-то выйдет))
skales007, Вам просто нужно начать, возникнет лавинный процесс, что то не понятно => поиск решения и снова новая проблема. Постепенно мелкие вопросы пропадут, а внимание переключится на более общие вопросы. Так постепенно происходит изучение всего. Странно что это нужно вам обьяснять. Выберите простой яп, возьмите этот https://www.purebasic.com/ Сишка думаю для начала не годится. Поищите доки по фундаментальным алгоритмам. Изучите минимальную инфу, примеры и соберите простой пример. Это положит начало цепочке событий.
А если знаком с С++? Не стоит пока его трогать? Там я хоть без труда смогу усложнять себе примеры для изучения.
Если бы вы знали кресты, то не задали бы данный вопрос. Возникает некоторое сомнение в вашем вопросе. Это либо троллинг, либо какие то тесты.
Троллить ни в коем случае не думал. Как бы вам правильно объяснить, кресты я не знаю, я с ними знаком. Я могу написать простенькую консольную программу для каких то подсчетов, сравнения/изменения строк, понимаю что такое указатели и ссылки. Пытался однажды писать костыльный класс типа Vector C++. Поэтому и говорю, что мог бы себе на плюсах написать хеллоу ворлд и изучать его. Прошу прощения если ввел в заблуждение.
skales007, На C++ кодить круто, но так как он безграничен во внутреннем инструментарии, то как правило кодеры бездумно усложняют простые решения и строят вырвиглазные реализации. На этапе изучения, лучше всего сосредоточится на понимании самих принципов программирования, на решении конкретных задач. Начать с более ограниченных языков, которые уже были обозначены ранее, обязательно социализироваться с другими кодерами, чтобы влиться в эту среду. Переходить на C++ следует на поздних этапах развития, ошибочно делать это с самого начала, тут 100% можете мне поверить. Изучать низкоуровневые вопросы лучше всего параллельно, а не как основное направление, тогда вы проникнитесь пониманием намного глубже. Обязательно почитайте рекомендации Стива Макконнела, который говорит о простейших нюансах которым стоит следовать с использованием любого языка и особенно это касается C++. Процесс обучения всегда будет требовать пищи, сложностей, а это противоречит главному базисному принципу "снижение сложности", вот поэтому еще раз советую начать с языков, которые сильнее ограничивают. Ко всему концептуальные ошибки ООП C++ могут ввести в заблуждение и научить неправильному программированию, здесь проще с Java, так как там ошибиться намного сложнее.
Плюсы нафиг, пока в них *действительно* не возникнет необходимости. Модно затаскивать начинающих в них, делая с ними примерно то, что пейсал Дейкстра о Бейсике (но за это он заслуживает заточку в почку, ибо неправ) Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации. Purebasic лучше брать не самый свежий, т.к. в 5х версиях наворотили черт знает чего, имхо*. Есть группа с неплохими материалами, если вниз прокрутить, там и по Fasm информация есть -> https://vk.com/purebasic *забросил писать на нем, писал (лапшекодил) стратежку. Забросил, в том числе, из-за необходимости костылить объекты. Две крайности - байтолюбство vs ООП. Какую выберешь, Нео? ООП, рескурсии, структуры сгодятся только на смех курам, когда пред вами встанут коды всплывут утраченые годы Но в современном контексте даже не знаю, верно ли это утверждение.. Уметь только в Асм нельзя. Нужно уметь и в ООП. И нужно *понимать*, как работает ООП на низком уровне. Без этого нормального кодеса не написать. Для этого как раз нужен Асм.