19. Фундаментальные знания

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

Веб-разработчику не помешает отвлечься от новых фреймворков и закрепить знания сетей. Набивший оскомину вопрос на собеседованиях «Что происходит при открытии страницы в браузере?» в действительности важен. Чем детальнее веб-разработчик может на него ответить, тем лучше он или она знает, как работает тот самый «веб».

Бакенд-разработчику не повредит знание устройства баз данных и SQL, даже если в ежедневной работе используется ORM. Программисту инфраструктуры, который работает с облачными платформами, необходимо понимать, как работает виртуализация и, опять же, сети.

Мало кому из программистов помешает знание, как работает процессор и чем процессы отличаются от потоков, базовое понимание устройства используемой операционной системы и алгоритмов шифрования.

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

Быть в курсе всех новинок очень важно. Но периодически нужно обращать внимание на самые нижние и основные слои любой системы и проверять, понимаешь ли ты, как они работают.