Я проработал программистом недолго, что-то около 7-9 лет примерно. Прошёл путь от мидла до техлида. Выполняю DevOps задачи.
1. Работа программистов это постоянная учёба, методики, фреймворки, да даже паттерны меняются постоянно. Новые крутые паттерны приходят, старые отмирают и становятся неприемлемыми. В свою очередь - новые тоже сменятся и станут неактуальными. Учись, изучай всё новое, чтоб не отставать.
2. Работа программиста - творческая. Тебе нужно не просто решить задачу, тебе нужно в решении совместить многое - время выполнения, надёжность, поддерживаемость (часто - это несовместимые задачи).
3. Работа программиста - скучная. Ты часто будешь делать рутину, вроде перекладывания JSON-ов.
4. Всю интересную работу буду забирать старшие товарищи, ввиду опыта и авторитета, тебе останется рутина. Но когда ты станешь тем самым "старшим" - тебе самые интересные задачи уже будут рутиной. Реально интересных и занимательных задач, единицы.
5. Я всегда стараюсь интересные и сложные задачи давать молодым (если не горят сроки). Но они точно сделают её плохо. И ты сделаешь плохо.
6. Нет ничего страшного, если ты сделаешь работу как можешь и она окажется не очень, ты учишься и надеюсь ты в следующий раз учтёшь свои огрехи и сделаешь лучше.
7. Нет ничего страшного в код-ревью. Если лид всё построил правильно - то ревью будет выглядеть только как рекомендации и советы, но никак не как критика. Не бойся показать свой код - товарищи подскажут где можно сделать лучше.
8. Не бойся ревьюить код старших товарищей - они тоже ошибаются, и будут благодарны тебе если ты найдёшь ошибку или огрех в их коде (если они адекватны и в команде нормальные взаимоотношения).
9. Не бойся спорить со старшими, опытные программисты всегда любят и ждут другое мнение. Главное чтоб оно было аргументированно.
Так. Я похоже скатился в "манифест молодым". Оставим, возможно я его расширю. Продолжим по теме:
10. Программисты на самом деле не миллионеры. На самом деле у нас не такие большие зарплаты, пусть и выше среднего значительно. Это серьёзная работа и иногда требует дополнительных затрат (как то - хорошее рабочее место дома, а иногда ещё и отдельный кабинет). Лично мне после сисадминства за 30 тыщ и программирования за... на порядок больше - денег стало хватать меньше.
11. Программисты не все интроверты, не все замкнутые. Они все разные. Мало того - к ним всем нужен разный подход. Это такие же люди. Возможно один из ваших знакомых рядом - программист, а вы даже не подозреваете. Есть у "тупые качки" (но они всё равно прекрасно делают свою работу) и есть "задроты" (и они не всегда, а скорее очень нечасто - звёзды).
12. Олимпиады и хакатоны - это спортивные дисциплины и очень мало имеют с реальной разработкой. Я мало знаю олимпиадников (а если точнее - ни одного) - кто в реальной разработке был бы так же крут. Вместе с тем - я участвовал пару раз в хакатонах. И я даже в десятку не попал (хотя был в финале Tinkoff Solution Cup, и это было круто, мне понравилось).
13. Реальная разработка - это не просто написание кода по точному ТЗ. Чаще всего ТЗ написано на коленке такими же как вы, но аналитиками. Его надо уточнять, проверять и вычитывать.
14. Нет никакого чёткого ТЗ. Это МИФ. Все ТЗ пишутся на коленке людьми далёкими от разработки в консультации с такими как я (в своё оправдание - я всегда занят другими задачами, в том числе работой с молодёжью, чтобы вычитывать досконально всё).
15. То что мы сидим перед компьютером и ничего не делаем - не значит что мы не работаем. Многие задачи и алгоритмы сначала строятся в голове. Я вообще могу просто по комнате кругами когда думаю над решением (скучаю по студии, где это было заложено архитектурно). 90% времени работы программиста - это мыслительный процесс.
16. Если программист постоянно ждёт клавиши - значит он либо простой кодер, который переводит ТЗ в код, либо он сидит на пикабу.
17. Мы очень устаём после сложных задач, и не надо нас трогать. Мозговая активность - это очень энерго затратно. Дайте нам отдохнуть хотя бы часик-два, только потом трогайте (ну лучше не стоит, пока сами не проявим готовность к контакту).
18. Не стоит отвлекать программиста, когда он думает. Мы в голове, порой, строим хрустальные замки, которые, в случае отвлечения, придётся строить заново.
19. Мы любим людей, не смотря на то что иногда кажется иначе. Просто когда мы работаем (и немного после), мы в своём мире, где есть мы и наша задача. Это наша битва, и мы сами с ней справимся.
20. Вопреки распространённому мнению - мы не пишем баги, но мы ошибаемся, как и все. Для этого есть unit-тесты, отделы QA и прочее. Но мы не специально пишем недостаточно хороший код. Любой хороший программист хочет написать хороший код, но все мы люди.
21. Ну и главное. Мы не лучше и не хуже любых других профессионалов. Мы любим свою работу и получаем от неё удовольствие. Если программист вам говорит что он элита, а все остальные плебс - не верьте, он не программист, он проходимец.
22. В нашей профессии полно дилетантов, которые с умным видом вещают о том, чего не знают. Как и полно простых людей, который знают и делают свою работу, и не пытаются никому ничего доказать (таких очень много, поверьте).
23. И ещё, мы любим пользователей, любим тестировщиков, любим аналитиков, любим всех тех кто помогает нам делать наш продукт лучше. Мы работаем за деньги (кто бы спорил? :-) ), но мы работаем и для души. Поэтому мы любим аргументированную критику, и не любим простую критику (да, в принципе как и любой другой).
На сим закончу мой поток сознания. Не обещаю что отвечу на все комментарии. Но постараюсь их прочитать и, возможно, сделаю отдельный пост с ответами на самые интересные или популярные вопросы.