Ответ на пост «Что я узнала, став кардиологом, а хотелось бы раньше...»29
Попробую вспомнить некоторые свои удивления, т.к. было это давно, а сейчас уже обыденность... Что я узнал, когда стал работать программистом/разработчиком:
1. программист не пишет код/программы 8 часов в день 5 дней в неделю, в лучшем случае это 50% времени, причем немалую часть этого времени занимает написание юнит-тестов в адекватных компаниях.
В начале бо'льшую часть рабочего времени занимают задачи по исправлению "ошибок", т.е. отладка (это не всегда именно ошибки реализации, чаще, это недоработки и недостаточная продуманность архитектуры реализуемой функциональности), потом добавляется проектирование этой самой функциональности и создание библиотек для упрощения реализации подобных задач, а еще не забываем об изучении ТЗ (предметной области) и фреймворков/библиотек.
2. из предыдущего пункта - код чаще читается, чем пишется, поэтому важно использовать "говорящие" имена переменных и методов (функций), за понятные комментарии в коде следующий сопровождающий будет очень благодарен вам; также, максимально простой и понятный код лучше компактного и элегантно-сложного.
3. самостоятельная реализация популярных математических алгоритмов не приветствуется, потому что можно наделать ошибок, а сопровождение этой реализации (исправление ошибок, какие-то доработки) неоправданно дорога экономически, поэтому лучше использовать готовые решения, поддерживаемые сообществом. Грубо говоря, если есть "живая" библиотека (т.е. которой пользуются), реализующая нужную тебе функцию - бери ее, в 99% случаев это оправданно.
4. писать программы на работе не так интересно, как делать пет-проекты. Большинство коммерческих задач - это рутина, для выполнения которой нужен определенный узкий набор знаний и знание предметной области, креативность тут, зачастую, неуместна.
5. часто, как только приходит осознание предыдущего пункта, то ты дорос до того уровня, когда тебе попытаются впарить административные обязанности: вести проект или вести группу разработки и прощай написание кода, времени на это уже не будет.
6. менять место работы и предметную область или фреймворк (иногда и язык) разработки - это круто, помогает держать мозги в тонусе и поддерживает спрос на тебя на рынке труда именно как на разработчика, а не менеджера. Ну, тут без фанатизма, ИМХО, оптимально от 2-3 до 5-7 лет.
7. не все программисты интересуются новыми технологиями и техникой, после начала айти-хайпа видишь все больше людей, которые не понимают глубоко как работает написанная ими программа и им не интересно как работает компьютер или операционная система. Программист, который не может переустановить виндоус или накатить прошивку на телефон - да, пожалуйста.