Типичные грабли на пути программиста от Junior’а к Senior’у

Молодой программист, едва закончивший или ещё даже не закончивший ВУЗ, готов свернуть горы, учиться, учиться и ещё раз учиться и ему близлежащее будущее кажется таким:

Но более опытные товарищи знают, что на самом деле на его пути давно уже заботливо разложены грабли и путь от Junior’а к Senior’у выглядит как-то так:

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

1. Человек-оркестр

Симптомы:
Небольшая фирма, набирают программистов без опыта работы. На собеседовании о будущих обязанностях вываливают гигантский список «поддержка по телефону, прокладка сети, тестирования, бизнес анализ, обучение пользователей… что программирование? А да… конечно, и программирование»

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

Плюсы:
После такой работы, любая другая покажется спокойной и неторопливой.

Рецепт:
По возможности ищите организации, где не пытаются совмещать роли программиста и грузчика. На крайний случай, учитесь всему чему сможете и подыскивайте новое место работы.

2. У нас в Греции все есть

Симптомы:
Крупная фирма, вплоть до кровавого Enterprise. На собеседовании вам долго рассказывают о своем замечательном ядре, сколько у них своих изобретений. Быстро можно понять, что в фирме вообще все свое: ORM, коллекции, фреймворк, интеграция, платформа, все естественно закрытое и проприетарное.

В чем грабли:
Первое время вы с интересом играетесь с чужим кодом, дописывайте его и разбираетесь в чужих идеях. Проходит год, два, пять, вы решаете сменить работу, приходите на собеседование и на все вопросы «а знаете ли вы открытый фреймворк А или библиотеку Б» отвечаете «нет, у нас все было свое», в конце концов, помрачневший интервьюер начинает задавать вам элементарные вопросы о коллекциях, но вы понимаете, что даже коллекции у вас были свои…

Плюсы:
Вы изучите богатый опыт велосипедостроения для самых разных задач, иногда это может быть полезным…

Рецепт:
Участвуйте в open-source проектах, используя популярные технологии и фреймворки. Всегда старайтесь обновлять знания современных технологии и фреймворков вашего языка.

3. Медные трубы и звездная болезнь

Симптомы:
Прошло пару месяцев на работе и вас за героические заслуги в кодинге перевели из джуниор в мидалы, ещё пару месяцев уже называют senior, потом ведущим программистов и т.д.

В чем грабли:
Оглянитесь. Это правда вы такой гений или руководство вашей фирмы, по старинной русской традиции, заменяет нормальную зарплату орденами и званиями? Проблема в том, что senior’ом не стать за год, так как одно из важнейших его качеств это профессиональная интуиция, умение находить золотую середину между паттернами и простотой, между комментированием всего подряд или наоборот полного отказа от комментариев, по заветам чистого кода. Это равносильно тому чтобы стать великолепным хирургом за год после института.
С одной стороны, в этом нет большой проблемы, но человек обычно редко включает здравый смысл и реально начинает верить, что он все знает и умеет. Сильно обижается минусам на код ревью и сильно удивляется если его другие фирмы не хотят брать senior’ом.

Плюсы:
Уверенность в своих силах — это замечательно, особенно когда она будет обоснованной

Рецепт:
Самокритика, самокритика и ещё раз самокритика…

4. Болото

Симптомы:
Государственная или полугосударственная фирма либо фирма, у которой основная деятельность никак не связана с ИТ. Технических собеседований про приеме на работу нет или их проводить явно слабый специалист… или старичок, который пытается спрашивать о языках программирования сгинувших вместе с перфокартами.

В чем грабли:
В таких компаниях людей у которых можно учиться нет, начальство зачастую не понимает, что и как делать, производственный процесс построен «спроси там у бухгалтеров, им нужно какую-то программку сделать», зачастую программисты и эникейщики в понимании руководства — это почти одно и тоже, и зачастую разработчиков заставляют делать презентации и переустанавливать ОС. Методологии разработки? Нет, не слышали…

Плюсы:
Даже самый средний junior в таком болоте может чувствовать себя крутым специалистом, так как все мало-мальски хорошие специалисты давно оттуда убежали (если вообще когда-то были), кроме того этот самый junior может попытаться разрабатывать приложение сразу во всех ролях, от бизнес-аналитика до тестера.

Минусы:
Учиться чему-либо в такой компании очень сложно, просто потому что не у кого.

Рецепт:
Вообще, сменить работу, но, если невозможно… Учиться самому где угодно и чему угодно.

5. Фриланс

Симптомы:
Вы Junior разработчик, собирающийся постоянно работать только во фрилансе.

В чем грабли:
Фриланс может быть полезен, если вы уже набрали опыта и состоялись как специалист, когда Junior разработчик начинает с фриланса, то начинается фриланс головного мозга, примеров старших разработчиков у него нет, на код заказчику по большому счету плевать, тот код что он видит написан, как правило, такими же Junior-фрилансирами что он сам. Короткие заказы/проекты формируют модель разработки «тут накостылять, тут заплатку сделать, деньги получить и забыть навсегда».

Плюсы:
В качестве дополнительного заработка, во фрилансе нет ничего плохого, так же как если у вас лет 5 промышленного программирования за спиной.

Минусы:
Молодому разработчику очень легко привыкнуть к тяп-ляп и в продакт, от чего потом сложно будет отучиться. Да и реальные работодатели к опыту во фрилансе относятся очень скептически, особенно если опыт только во фрилансе… тут вообще будут сомнения насколько человек способен работать в коллективе в принципе.

Рецепт:
Не уходить полностью во фриланс в начале карьеры или постоянно изучать материалы по написанию правильного кода.

6. Горизонтальный и диагональный рост

Симптомы:
К вам приходит твой начальник и говорит. «а давай ты станешь бизнес аналитиком/project manager’ом/дизайнером/техническим писателем и т.д.» Ура! — кричишь в душе ты, ведь тебя учили что повышение — это всегда хорошо.

В чем грабли:
Если перевести речь начальника в гугл-транслейте с дипломатического на русский, то она звучит так «а давай ты перестанешь быть программистом, выкинешь все годы опыта и диплом и начнешь учиться с нуля новой профессии»? Если вам кажется, что программирование — это как велосипед разучиться невозможно и вы сможете совмещать функции менеджера и программиста — вы ошибаетесь, через полгода-год без программирования ваш уровень упадет очень сильно. Если вам кажется, что менеджеру ничего уметь не нужно, только руководи — вы заблуждаетесь. В целом, менеджер — это совсем отдельная профессия, почти не связанная собственно с программированием, можно быть отличным менеджером проекта и вообще не уметь программировать. Даже совмещать работу программиста и team lead’а без потери для одной из специализаций уже сложно, для менеджера проекта совмещать свою работу и программирование вообще вредно.

Плюсы:
Если новая профессия — это то, о чем вы мечтали всю жизнь — вперед! Если вам надоела старая роль и вы потеряли мотивацию — вперед!

Минусы:
Вы можете потерять опыт прошлой профессии и не суметь быстро научиться навыкам новой профессии. Собственно, как только вы станете менеджером, вы перестанете быть программистом и ещё не факт, что сумеете стать реально хорошим руководителем.

Рецепт:
Или не уходить в менеджеры или если вам предложили, то от чего вы не можете отказаться, заниматься open source/своими личными коммерческими проектами для поддержания навыков программирования.

7. Потеря мотивации к развитию

Симптомы:
Вы работаете от звонка до звонка, вы считаете, что все уже знаете и учиться уже нечему, вас вполне все устраивает на текущей работе.

В чем грабли:
Программист как велосипед, как только он останавливает — падает. Перестав развиваться, программист неизбежно начинает деградировать, превращаясь в робота для написания кода. Проблема обычно в том, что сам он этого, как правило, не замечает, вроде работает и работает, копируя свои старые наработки из проекта в проект. Тут критерий простой, если за год вы не изучили/создали ни одной новой технологии/библиотеки/языка/фреймворка, то у вас с саморазвитием что-то не то.

Плюсы:
Вы в зоне комфорта, деньги есть, стабильная работа есть, у вас все хорошо.

Минусы:
Вы попали в машину времени и оказались в эпохе застоя Брежнева.

Рецепт:
Определитесь действительно ли это то что вам нужно, если нет меняйтесь — меняйте работу, открывайте свое дело, запускайте open source проекты, в конце концов становитесь менеджером.

N. …

А тут каждый может вписать в комментариях свою любимую граблю.

 

Неплохая статья на Хабре

Добавить комментарий