Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Стоит ли учить Assembler?

Женя Евдокимов Ученик (150), открыт 5 дней назад
Нужно ли программисту знать Assembler? Если да, то какой лучший способ его изучения? (Ютуб, книги, курсы)
7 ответов
Krab Bark Искусственный Интеллект (294566) 5 дней назад
Учить - нет. Познакомиться - стоит.
Жилет безопасности для кур Оракул (56415) 5 дней назад
будешь прям ядро или биос писать или что?
Женя ЕвдокимовУченик (150) 5 дней назад
Буду знать как работает процессор, как он выполняет код и как работает компилятор, думаю это будет очень большим плюсом
@Synergyst Мыслитель (8913) 5 дней назад
Необязательно, если в рамки твоих задач не входит низкоуровневое программирование или желание разбираться в пуках компилятора, а так - в большинстве случаев тебе ассемблер напрямую не понадобится.

Его есть смысл учить, когда ты хочешь:
  • Понимать как что работает "под капотом". Это как знать анатомию, чтобы быть врачом. Ты начинаешь понимать, как на самом деле выполняются программы, как работает память, как данные "двигаются" по системе. Это дает тебе глубокое понимание фундаментальных принципов, которые остаются неизменными, независимо от того, на каком высокоуровневом языке ты пишешь;
  • Оптимизировать критический код. Ты можешь выжимать максимум из железа, писать довольно быстрый и эффективный код, если нужно, к примеру в ОС;
  • Собираешься в будущем идти в сферу разработки компиляторов, драйверов. Без ассемблера тут вообще делать нечего. Если ты хочешь создавать базовый софт, который управляет железом напрямую, то ассемблер твой верный друг. Чтобы создавать эффективные компиляторы, нужно понимать, во что они превращают твой код на высоком уровне. Ассемблер покажет тебе, как машина на самом деле видит твой программный замысел.
  • Реверс-инжиниринг. Понимать низкоуровневый код критически важно, если хочешь копаться в чужих программах, искать уязвимости или даже банально кряками/читами заниматься.

Если же твои задачи это, по большей части, разработка высокоуровневого софта, веб-разработка, мобильная разработка (в большинстве случаев), DS - то это тоже самое, что пытаться пихать в жигули турбину от Боенга. Там все на другом уровне абстракций. Ты же не будешь сам шестеренки в часах перебирать, если тебе время узнать надо? В этих сферах тебя ждут фреймворки, библиотеки и куча готовых инструментов. Тратить время на Ассемблер, чтобы писать формочки или анализировать данные - ну, это как на танке за хлебом ездить, серьезно.

Тоже самое и про быстрое создание MVP, стартапы. Время - деньги. На Ассемблере будешь долго колупаться, пока конкуренты уже продукт запустят. Там рулят высокоуровневые языки, agile-подходы, и как я уже сказал, банально абстракции.
Мамерк Тарквиний Гуру (4527) 4 дня назад
Если хочешь быть инженером-программистом - учи asm. а ещё лучше поиграйся с mk51 (в инете есть эмулятор) или с живым ардуино.
А если хочешь работать простым кодером, и без asm будешь з.п. получать.
Не Вася и не Петя Мудрец (13170) 3 дня назад
Если хочешь железо программировать, то желательно его знать
Похожие вопросы