Почему инженер-программист должен знать архитектуру компьютера и как это может повлиять на код
Должен ли программист разбираться в архитектуре компьютера? Разработчик под ником Voider уверен, что да: в блоге на dev.to он объяснил, почему.
Введение
Я считаю, что успех во многом зависит от двух вещей: от того, как вы видите мир и насколько вы его понимаете. То же самое можно сказать и о программной инженерии, где главное — это архитектура ЭВМ. Если вы понимаете ее достаточно хорошо, вам будет намного проще освоиться и разобраться в профессии.
Что такое компьютерная архитектура
Согласно «Википедии»:
Архитектура компьютера — набор типов данных, операций и характеристик каждого отдельно взятого уровня.
Архитектура описывает общую модель компьютера. Аспекты реализации — например, технология, применяемая при реализации памяти, не являются частью архитектуры.
Короче говоря, архитектура ЭВМ — это, по сути, набор правил, контролирующих взаимодействие аппаратного и программного обеспечений.
Зачем изучать компьютерную архитектуру
Например, большинство пилотов «Формулы-1» знают устройство двигателя своего болида настолько хорошо, что могут обнаружить проблему до того, как это сделают инженеры.
Они также разбираются в физике и аэродинамике. Это позволяет им давать точные инструкции механикам на пит-стопе, чтобы те, например, отрегулировали «нос» или колеса, правильное расположение которых может привести к победе.
Причем тут архитектура ЭВМ? Принцип тот же. Когда вы расширите знания о разработке программного обеспечения (ПО), то поймете, как справляться с проблемами и эффективнее добиваться того, что вам нужно.
Вот почему вы должны изучать компьютерную архитектуру:
- Полученные знания будут помогать вам на протяжении всей вашей карьеры.
- Архитектура ЭВМ — это один из самых фундаментальных предметов в Computer Science. Вы должны понимать, как инструкции и операции работают и взаимодействуют друг с другом, чтобы сделать ПО лучше. Чем лучше вы знаете архитектуру ЭВМ, тем лучший продукт вы разработаете.
- Знание компьютерной архитектуры поможет вам проектировать, разрабатывать и внедрять приложения, которые будут лучше, быстрее и эффективнее в использовании. Вы сможете принимать обоснованные решения вместо того, чтобы гадать, оценивать и предполагать.
Как компьютерная архитектура может повлиять на то, что вы пишете
Прогнозирование ветвлений: допустим, вы едете в поезде и подъезжаете к железнодорожному узлу, ваша задача как машиниста — следить за дорогой.
Вы должны выбрать сторону, но не знаете, куда дальше ехать. 50 на 50: либо вы выберете правильный путь, либо нет. Если действия окажутся верными — продолжите движение, в противном случае вернетесь назад и выберете правильный путь. И так постоянно, каждый раз, когда вы будете подъезжать к железнодорожному узлу.
Рассмотрим оператор if
. На уровне процессора — это инструкция ветвления:
Теперь вы видите ветку, но не знаете, куда идти. Чтобы определить верный путь, нужно двигать, но:
- Если ваши действия окажутся правильными, в дальнейшем все равно придется решать, куда ехать. И так на каждом узле.
- Если действия окажутся неверными, вы в конечном итоге потратите массу времени на то, чтобы каждый раз возвращаться и пробовать заново.
Что делать? Наблюдать. Если процесс чаще идет влево — двигаться влево, если процесс идет вправо — двигать вправо, если процесс чередуется, то следует делать так же.
Вывод
Изучайте компьютерную архитектуру и растите как инженер-программист!
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: