Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Имеет ли смысл начинать обучение с изучения основ паскаля/ассемблера?

Имеет ли смысл начинать обучение с изучения основ паскаля/ассемблера, с целью понимания как работает компьютер и сам код, дабы в дальнейшем писать более эффективный код?

ПрограммированиеQ-howtolearn+2
никита с.
  ·   · 316
программист, тренер  · 5 сент 2020

Начинать изучение программирования однозначно имеет смысл с изучения алгоритмов. Тут три причины:

  1. Сейчас уровень "железа" (а именно это вотчина ассемблера) нужен в относительно небольшом проценте задач, и даже там стараются использовать высокоуровневый С.

  2. Времена, когда "студент со знанием ассемблера" мог написать реальный код (не тестовый на пару строчек, а что-то серьёзное) оптимальнее компилятора, закончились в прошлом веке. Сейчас, чтобы произошло что-то подобное, должно случиться чудо как минимум. Нет, отдельные гуру с опытом работы 30+ лет могут (пусть и затратив бездну времени), обыграть компилятор на доли процента, но новичок будет проигрывать всегда, дополнительно сажая прорву ошибок.

  3. В крупных задачах большинство тормозов идут не от оптимизации под железо, а от алгоритмов. Что толку от того, что вы знаете, как заставить железо работать на 5% быстрее, если у вас 100000 записей и алгоритм сложностью 2^N?

Поэтому, повторюсь, начинать имеет смысл с алгоритмов. Если же есть желание потом связаться с железом на низком уровне, ассемблер станет хорошим дополнением. Но потом, и не факт, что станет.

Паскаль я бы тоже выкинул. Его создавали для изучения основ, но реального использования он не имеет уже давно. Язык, фактически, мёртв. Если уж вам так близок уровень железа, что подумываете об ассемблере, начните сразу с C. И от железок далеко не уйдёте, и переход на что-то более актуальное не таким болезнеенным, как если начинать с паскаля, будет.

Инженер путей сообщения – строитель  · 5 сент 2020
От паскаля до ассемблера дистанция просто гигантская. Паскаль – это язык высокого уровня, в то время как ассемблер — мнемоническая запись машинных кодов, с которыми работают процессоры. Раньше вообще начинали изучение с... Читать далее
4 эксперта согласны

Паскаль, асемблер... Вы в каком временном промежутке живете? Никому не нужны данные языки уже лет 15 как, если не больше.

Закрываю проблемы других людей в IT - сфере. Больш...  · 5 сент 2020

Вы просто будете знать как работает память, перемещения байтов из ячеек в ячейки, для кругозора поможет + для понимания языков высокого уровня

Разработка видео игр (Steam, Play Market). C\C++\J...  · 6 сент 2020
Еще раз, язык не имеет никакого значения. Ты либо пишешь код, либо нет. Конструкции во всех языках одинаковы, синтаксис да разный, но это 2 недели покурить мануалы, не более. Разница в языках заключена в парадигмах - Структурно... Читать далее
Отвечает
Alexey V

Для написание эффективного кода нужно изучать алгоритмы, дискретную математику и т.д.

Язык программирования при этом вторичен.

Порекомендую языки общего назначения со строгой типизацией. Тот же паскаль, python.