Ассемблер. Стоит ли его изучать теперь? [закрыт]

1,00
р.



Закрыт. На этот вопрос невозможно дать объективный ответ. Ответы на него в данный момент не принимаются.

Закрыт 9 лет назад.





Заблокировано. Этот вопрос и ответы на него заблокированы, так как он не соответствует тематике сайта, но имеет историческое значение. Для него недоступна публикация ответов и другие действия.



Я студент 2-го курса. Программирование мы начинали изучать сразу же с языка C, сейчас заканчивается курс ООП С++ (я не говорю про вспомогательные предметы типа основ конструирования программ и так далее). Мне нравится программировать, но меня никогда не покидала мысль: может стоит сначала разобраться в Ассемблере? Хочу конечно же когда-нибудь стать профессионалом и, разумеется, работать по специальности. Но хочется спросить: уместно ли изучение Ассемблера? Просто я ожидаю, что, изучив его, я больше буду понимать "внутреннюю реализацию". Но тут опять же вопрос: так ли важно это понимание, что внутри происходит? Я не знаю, понадобиться ли мне он на будущей работе, так как я, вероятнее всего, буду работать с языками высокого уровня. Может быть я смогу писать более оптимизированные программы. Но смогу ли так много выиграть за счет этого? Да и вообще сейчас особо с ресурсами проблем нет. А если еще подумать про читаемость кода... Думаю, она резко уменьшится, если я буду пользоваться Ассемблерными вставками (хотя я не уверен, что они используются для опитимизации :D). А может она мне в отладке поможет? Печально, что пока в универе на это внимание почти не уделяется, но я думаю, что это важно, особенно на следующих этапах, когда программы станут серьезными.
Естественно, польза хоть какая-то будет, если я его изучу и разберусь с "внутренней реализацией". Но "окупятся" ли усилия на изучения Ассемблера? Или может быть мне лучше начать изучать что-то более "дельное"?
Заранее спасибо )


Ответ
Коварная постановка вопроса, холиварная такая :)
Скажу так: знать его очень желательно, причем желательность прямо пропорциональна высокоуровневости основного языка. Если это C - можно не учить, если это js/php/c# - обязательно. Не нужно даже делать ассемблерные вставки и кодить юниты на нем, но желательно именно знать, что там происходит внутри. Просто чтобы не возникало глупых вопросов вида "почему после int i = 0 if (i++ > 0) { code } i не становится обратно нулем?". Также он очень хорошо лечит от индусского кода.
А насчет окупится-нет... Ну, это долгосрочное вложение, оно может окупиться незаметно, а может и очень пригодиться, если будете разрабатывать высоконагруженные приложения. В любом случае если не сейчас, то в качестве хобби было бы неплохо хоть пару утилиток на нем накидать в свободное время, гарантирую веселое времяпровождение)