В соответствии с этой статьей http://steve-yegge.blogspot.com/2007/06/rich-programmer-food.html, я должен делить вопрос.
Цитата Нежный, но настойчивый исполнительный summary: Если вы не знаете, как компиляторы работают, то вы не знаете как работают компьютеры. Если вы не на 100% уверен, знаете ли вы, как компиляторы работать, тогда вы не знаете, как они работа.
Я думал, что это очень интересная статья, и поле приложения очень полезно (сделай себе одолжение и прочитай его) Но опять же, я видел успешных старших инженеров-разработчиков, которые не знали компиляторов очень хорошо, или внутренней архитектуры машин в этом отношении, но знал кое-что из двух элементов в следующем списке:
- Парадигма программирования (OO, функциональная,...)
- Язык программирования API (С#, Java..) и по крайней мере 2 очень разные говорят! (Java/Haskell)
- Структура программирования (Java,.NET)
- IDE, чтобы сделать вас более продуктивным (Eclipse, VisualStudio, Emacs,....)
- Передовые методы программирования (см., например, правила fxcop)
- Принципы программирования (DRY, High Cohesion, Low Coupling,....)
- Методы программирования (TDD, MDE)
- Шаблоны проектирования (структурные, поведенческие,...).
- Архитектурные основы (уровни, слои, модели процессов (водопад, гибкий,...)
- Инструмент тестирования (тестирование устройства, тестирование модели,...)
- Технология GUI (WPF, Swing)
- Инструмент для документирования (Javadoc, Sandcastle..)
- Моделирование языка (и, возможно, инструмента) (UML, VisualParadigm, Rational)
- (несомненно, забыв здесь очень важный материал)
Не все эти инструменты необходимы, чтобы быть хорошим программистом (например, графическим интерфейсом, когда вам это просто не нужно) но большинство из них. Где компиляторы входят, и действительно ли они важны, поскольку, как я уже упоминал, много программистов, кажется, отлично справляются, не зная их, и особенно, становясь хорошим программистом, можно увидеть множество областей знаний почти на всю жизнь. -), поэтому даже если составители чрезвычайно важны,?
Или я должен заказывать "Развязанные компиляторы Неограниченная Библия (в 24H..))) сегодня?
Для тех, кто прочитал статью, и хотите сразу начать изучать:
Ресурсы обучения для парсеров, интерпретаторов и компиляторов