О работе программиста-2

Стоит только написать одну программку, как задачи начинают сами находить тебя, и вот ты уже погружаешься в программирование и...
Нам рассказывают, что программирование – это математика на уровне МФТИ и МГУ плюс бесконечные алгоритмы из Кнута и Leetcode. На самом деле программирование – это бесконечное чтение документации, форумов и stackoverflow в тщетных попытках понять, что же имели в виду создатели API, какие секретные ключи есть у нужных вызовов и в чём тонкости общедоступных спецификаций. Например, знаете ли вы, что спецификация JSON не допускает внутри полей никаких пробельных символов, кроме собственно пробелов?
Где-то, говорят, существует такая метрика производительности программиста как количество строк кода в день. Рассказывают, что разработчики OS/360, считающейся образцом надёжности, писали по 6 (шесть) строк в день. У меня получается чуть больше – за два дня я написал скрипт длиной 100 строк. Но зато там – ни убавить, ни прибавить, и вот такой код действительно даёт чувство удовлетворения работой.
Несмотря на то, что современная программа – это склейка из нескольких вызовов API, без образования, дающего понимание базовых принципов, эта склейка невозможна. Так, например, ты никогда не сможешь работать с русскими текстами, пока не поймёшь фундаментальную разницу между Unicode и UTF-8. А чтобы понять эту разницу, начинать надо с самых основ – символы, байты, кодирование информации... Самое забавное, что когда её поймёшь, то через некоторое время начинаешь удивляться, что же это за люди такие, которые не понимают таких элементарных вещей.
И да, главный мотиватор программиста – наличие реальной задачи, результат решения которой важен именно тебе. Именно так была создана ОС Unix, именно так был написан мой скрипт, которым я почти горжусь. А вот зарплата, пусть даже «выше, чем в среднем по рынку», и коллектив, пусть даже очень профессиональный и дружный, могут мотивировать лишь на создание Продукта®, но не на создание Программы™.
|
</> |