Три пути развития карьеры программиста. Важен ли английский язык

  • 24.03.2024

Оглядываясь вкруг себя, я размышляю о том, что не так уж часто, мне кажется, люди остаются программистами много-много лет. Чаще всего постепенно переходят в менеджеры, на протяжении нескольких лет, поначалу еще продолжая писать код, но потом все больше и больше начальственные обязанности занимают все время. Часто уходят в Product Management. Некоторые, реже, в маркетинг. Многие уходят в мир стартапов и становятся сами себе бизнесменами - даже если они продолжают писать код, это уже работа на себя. Обратное передвижение, из других профессий в программисты, почти никогда не случается в середине карьеры, только в начале (из математиков, физиков, инженеров, просто кого угодно еще, если есть склонность к этому делу).

Программисты за 50 в обозримом пространстве есть, но их довольно мало. Как объяснить, почему? - потому ли, что в основном люди уходят в менеджмент и другие профессии? - или скорее потому, что профессия все еще очень бурно расширяется, и 30 лет назад намного меньше людей учились на программистов и входили в профессию, вот их теперь и мало в общей массе? Наверное, оба объяснения верны, но, может, одно из них намного важнее? Не знаю.

Мне 37, и если не считать несколько подростковых подработок, я зарабатываю на жизнь программированием чуть более 20 лет. Большую часть этого времени - в компаниях, где я сам себе не хозяин. До сих пор я сознательно противился подводному течению, которое влечет программистов в менеджмент, по двум причинам. Мне кажется, что мне это меньше нравится, и мне кажется, что у меня это не очень хорошо получится. До сих пор я не жалел об этом решении. Но что я буду делать еще через 20 лет, предполагая, что буду жив, относительно здоров, и все еще буду работать? Многое еще может измениться; но если я не буду специально стараться и трепыхаться, закон инерции жизни говорит, что и в 57 лет буду нажимать на клавиши и вводить ключевые слова в текстовом редакторе в какой-то компании. Будут ли хорошие, интересные возможности и проекты для 57-летнего меня в индустрии, какой она станет через 20 лет? Сейчас в нашей индустрии, повторюсь, программисты за 50 есть, но их довольно мало...

Недавняя дискуссия в HN ("What happens to older developers?") подстегнула мои мысли по этому поводу, и, хоть не дала конкретного ответа, предложила много возможных. Верхний комментарий там хорошо подытоживает разные варианты развития, которые я описал в выше: идти в менеджеры, оставаться программистом и углублять свое мастерство, идти в бизнесмены-стартаписты, уходить в совсем другую профессию. Есть в комментариях там немало таких, как я, предпочитающих пока что при всех равных зарабатывать ключевыми словами в редакторе. Те из них, кому за 50, пишут чаще, что коль скоро сохраняют технические знания и идут в ногу со временем, не затрудняются найти работу - хоть это в основном американские мнения, в других странах может быть по-другому. Но неясно, сколько таких осталось из тех, кто хотели того же, но обнаружили, что им трудно поменять место работы в пожилом возрасте, или что им трудно принять тот факт, что все сверстники обошли их по иерархическим лестницам, или что просто надоело.

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

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

Какими именно способами они могут реализовать наработанный опыт?

Горизонтальная карьера в должности программиста-исполнителя

Лучший выбор для гика — (то есть, целенаправленное повышение квалификации без изменения должностного статуса). Программист, который постоянно совершенствуется — ценный сотрудник.

Его вряд ли обидят при распределении фонда оплаты труда. Он станет достойным кандидатом на место в какой-нибудь более солидной компании, вплоть до организаций международного уровня.

Совет на заметку:

Быть в IT универсалом нереально. Чтобы быстро продвигаться по горизонтали, выберите конкретное направление (базы данных, C++, java и др.) и попытайтесь стать в нём лучшим.

Продвижение в качестве эксперта

Достигнув определённого уровня, вы поймёте, что готовы делиться опытом. На этом этапе перед вами открывается новая перспектива — самореализация в роли консультанта.

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

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

Управленческая работа

Если вы выросли до ступеньки эксперта, но вам не хочется регистрировать ИП, попробуйте построить вертикальную карьеру в авторитетной фирме.

Вам поручат планировать и контролировать работу других специалистов.

По сути, вы будете начальником. Следовательно, развивайте в себе лидерские качества , учитесь мотивировать людей.

Собственный стартап

Ещё один вариант карьеры — пожалуй, самый сложный — воплощение в жизнь собственного проекта (допустим, запуск какого-нибудь оригинального платного сервиса).

Стартапы удаются только у тех программистов, которые имеют предпринимательскую жилку или находят бывалого бизнес-партнёра.

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

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

Книга “Карьера программиста” основана на опыте практического участия автора во множестве собеседований, проводимых лучшими компаниями. Это квинтэссенция сотен интервью со множеством кандидатов, результат ответов на тысячи вопросов, задаваемых кандидатами и интервьюерами в ведущих мировых корпорациях. Из тысяч возможных задач и вопросов в книгу были отобраны 189 наиболее интересных и значимых.
Шестое издание этого мирового бестселлера поможет вам наилучшим образом подготовиться к собеседованию при приеме на работу программистом или руководителем в крупную IT-организацию или перспективный стартап. Основную часть книги составляют ответы на технические вопросы и задания, которые обычно получают соискатели на собеседовании в таких компаниях, как Google, Microsoft, Apple, Amazon и других. Рассмотрены типичные ошибки, которые допускают кандидаты, а также эффективные методики поготовки к собеседованию. Используя материал этой книги, вы с легкостью подготовитесь к устройству на работу в Google, Microsoft или любую другую

Понравилась статья или книга? Поделись с друзями:

Все книги представленные на сайте только в ознакомительных целях. Любое их использование Вами допускается только в ознакомительных целях. Если Вы планируете их использовать в дальнейшем, то Вы обязаны приобрести их у правообладателей. Администрация сайта не несет ответственность за их использование Вами

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

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

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

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

Этап 1: Junior Developer

Именно с этого этапа начинают работу в качестве программиста большинство людей. В числе главных требований, предъявляемых к соискателям:

  • Знание основ как минимум одного востребованного языка программирования.
  • (студент или обладатель диплома о высшем образовании). Как альтернатива – курсы программирования + неплохое портфолио.

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

Этап 2: Developer

Основные требования:

  • Владение востребованными языками программирования.
  • Достаточные знания в программной инженерии.
  • Понимание работы ОС, веб-сервисов и управления БД.
  • Образование: в крупных компаниях обязателен диплом программиста, в небольших – далеко не всегда. Но дальше строить карьеру без диплома просто не получится.

Обязанности программиста на этом уровне расширяются, ему начинают доверять работу над существующими проектами и разработкой новых.

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

Этап 3: Senior Developer

Среди дополнительных требований, выдвигаемых к претендентам на данную должность:

  • Участие в серьезных проектах коммерческого характера.
  • Опыт профессиональной работы не менее 2 лет.

В область профессиональных задач, которые стоят перед ведущим разработчиком, входят непосредственно программирование, детальное проектирование компонентов и их стартовое тестирование. Не сложно догадаться, что наибольшие перспективы карьерного роста будут у тех Senior Developer, кто умеет грамотно выстроить и контролировать командную работу.

Этап 4: Team Leader

Самые важные требования, которые предъявляются к соискателям на эту должность, сводятся к хорошим управленческим навыкам и наличию опыта управления командой программистов минимум из 2 человек.

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

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

Этап 5: Project Manager

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

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

Дальнейший путь возможен в нескольких направлениях и выбор зависит в первую очередь от личных предпочтений и интересов. Можно стать IT-директором, можно перейти в более масштабный или интересный проект, можно основать собственный.

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

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

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

Направления, связанные с обучением и кураторством, могут принимать самые разные формы, например:

  • Курирование небольшого коллектива из 2-3 программистов при сотрудничестве в рамках проекта, когда куратор совмещает управленческую работу с проектной и решает, исходя из своего опыта, определенные проблемы. При этом можно быть частью команды разработчиков в одном проекте, а во втором – курировать других.
  • Управление командой в проекте, где исполнители территориально отделены друг от друга. Здесь может пригодиться знание иностранных языков и хорошая коммуникабельность. В арсенале задач такого сотрудника введение новых членов команды в рабочий процесс, координация удаленных работников между собой и в целом ответственность за результат. Это удобный вариант развития для тех, кто хочет, не меняя локации и возможно даже должности, участвовать в масштабных международных проектах.
  • Исполнение обязанностей тренера-куратора для клиентов, которым нужна какая-либо поддержка.
  • Участие в работе учебного центра, специально созданного в рамках крупного или среднего предприятия для обучения новых и действующих сотрудников.

Горизонтальный рост часто связан с периодическими командировками. Изучение незнакомого языка, получение личного опыта непосредственно от лидеров сферы, детальное изучение работы компании работодателя - все это тоже способствует профессиональному росту.

Таким образом, трудно выделить универсальную схему профессионального движения в горизонтальном направлении. Но в любом случае человек получает опыт обучения, управления, профессиональное развитие (возможно, также в смежных сферах). И также может через время претендовать на руководящие должности, в том числе, технического директора.

Сегодня на рынке существует огромное количество возможностей и путей, по которым может пойти интересующийся IT человек. Нужно только определить для самого себя, хочется вам развивать свой функционал и постоянно узнавать что-то новое, делиться знаниями с другими, или же расти до руководящих позиций и брать на себя ответственность за людей и осуществление конкретных проектов. Выбирайте и двигайтесь к цели!

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


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

Приоритеты

При выборе работы я определил для себя следующие приоритеты.

  1. Размер получаемого денежного дохода. Все просто.
  2. Комфорт рабочего пространства. Это то, насколько может быть удобно или неудобно то, что вас окружает на работе: удаленность от дома, люди в кабинете, производительность рабочего компьютера, погода у рабочего места, камера наблюдения вам в монитор, ваш монитор стороной к проходу, отношение с руководством, штрафы за опоздание и тому подобное.
  3. Возможность вашего профессионального развития. Сюда входит получаемый вами опыт на работе. Это изучение новых для вас технологий, оттачивание ранее изученного, приобретение новых полезных вам навыков. Все, что делает вас опытнее в профессиональном плане.

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


Некоторые стесняются произнести вслух, но, деньги - первый и главный фактор выбора места работы. Если вы хорошо получаете, то вам не придется подрабатывать и перерабатывать, а значит, у вас будет больше времени, чтобы наслаждаться жизнью. Моя точка зрения такая: если вы программист с опытом работы более 3 лет, и вы чувствуете, что хотели бы получать больше, начните этого добиваться, не откладывая на потом. Скорее всего, нет у вас никаких оснований не получать больше, если есть возможность.

Как повысить себе зарплату

Существует мнение, что можно просто попросить этого у вашего руководства. Может и сработать. Но я предлагаю для начала выяснить, сколько вам готовы платить другие работодатели. Если у вас нет готовых предложений работы, то нужно начать искать вакансии самостоятельно. Рассматривайте те варианты, которые соотносятся с вашим опытом и окладом, выше вашего текущего. Будьте готовы делать тестовые задания, проходить Skype-интервью или очные собеседования. Рассматривайте это как потенциальную прибыль, не отгораживайтесь своим самомнением.


Рассматривайте не только работодателей в вашем городе, но и удаленную работу. Много есть статей о недостатках удаленной работы, но если вы сами еще не пробовали, то рассмотреть такие варианты все равно можно. Помните, что удаленная работа – это не обязательно работа из дома. С зарплатой программиста можно снимать офис или подселиться в коворкинг.


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


Если перед собеседованием в какую-либо компанию вам кажется, что вы точно не пойдете туда работать – всё же отнеситесь к этому собеседованию серьезно, потому что в результате могут открыться новые подробности, которые сделают этого работодателя привлекательнее. Всегда стоит помнить, что вы выбираете себе новую работу, несмотря на то, что начиналось все с цели повышения зарплаты.


Если вам начинает казаться, что вы воспринимаете предстоящее собеседование слишком серьезно и из-за этого сильно волнуетесь, то совет обратный предыдущему: воспринимайте работодателя не как потенциального, а как просто средство увеличения зарплаты на текущей работе, зная, что если не получится, то просто ничего не изменится. Но найдите баланс, чтобы выглядеть профессионалом, а не нахальным типом с завышенным самомнением.


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


Если у вас нет идей, как набраться решимости попросить себе повышения зарплаты, то я предлагаю вам следующее. Начинайте для себя делать акцент на всех недостатках текущего места работы: как вам не нравится, что в обед постоянно кто-то греет рыбу, что кондиционер работает прямо над вашей спиной, как вас бесит штраф за опоздание на рабочее место на одну минуту, как вы устали от реализации фич, которые на самом деле никому не нужны, как вам надоел текущий стек используемых технологий, как вы давно уже не изучали что-то новое. Но самое главное, представьте, что вы могли бы получать +X% денег, но не получаете их из-за вашего работодателя. Нравится вам, что работодатель оставляет ваши деньги себе? Нет? Вот идите и поговорите с ним об этом. Только не нужно ходить по работе обиженным, кое-как делать свою работу, надеясь, что руководитель это заметит и сам что-нибудь предложит. Это непрофессионально.


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

Сверхурочная работа

Работа на полный рабочий день подразумевает, что вы работаете 40 часов в неделю. Если вам предлагают поработать больше этого, то помните, что работа и так забирает у вас около трети всей вашей повседневной жизни. Если у вас кроме работы и сна ничего больше в жизни нет, то можно убивать время и работой. Иначе же задумайтесь над своими приоритетами. Не соглашайтесь на сверхурочную работу, если она недостаточно оплачивается. Но даже в этом случае может оказаться, что вам просто некогда тратить вашу зарплату. Вы можете думать, что вот сейчас подкопите на квартиру, потом на машину, потом на отдых для семьи, а потом пойдет жизнь. Но жизнь уже идет, а вы стареете. Попробуйте, все-таки, начать зарабатывать больше за те же 40 часов в неделю, а не переработками. Тратьте свободное время на то, что приносит вам удовольствие, и на изучение чего-то нового, чтобы не отстать от трендов вашей профессии.

Домашние проекты

Распространено мнение, которое выглядит примерно так: «Я и так весь день программирую, у меня не остается сил, чтобы приходить домой и разрабатывать pet-project или коммитить в open source». Я понимаю, что не все большие любители программировать ради процесса, и для них вышеупомянутое мнение справедливо. Но для некоторых предположу причину в том, что они просто не пробовали программировать что-нибудь интересное для себя. Возможно, просто не придумали, что интересного можно создать, а, возможно, даже не пробовали подумать.



Может показаться, что у вас не будет времени на это. Но разработка домашних проектов имеет гораздо большее отношение к творчеству, чем основная работа программистом. А про время на творчество есть отличный комикс . Суть в том, что программируя в удовольствие, вы попадаете в раш, из-за чего тяжело остановиться, даже чтобы поесть или поспать. Но помните, что кроме программирования в жизни есть и другие интересные штуки, ищите свой баланс.