Рубріки: КарьераОпыт

Что бы я сказал себе в начале карьеры: три главных совета от разработчика с 14-летним стажем

Олександр Панченко

Как начать карьеру в IT, если со всего перечня необходимого у вас только желание, Google и приблизительное понимание будущей специальности из того пятиминутного видео на YouTube?  

Старт карьеры в IT — нелегкий путь. И даже если все можно погуглить и набросать для себя ориентировочный план действий, все равно это не заменит опытного знакомого (ментора), который за кофе поделится картой точного расположения «граблей» и лазейками, чтобы эта дорожка кое-где, но была менее тернистой. 

Я подумал, какие советы я дал бы себе 14 лет назад в начале своей карьеры Java Developer. И я решил поделиться ими с вами. Надеюсь, что они будут полезны и помогут вам не совершать моих ошибок 🙂

Let’s go!

1 Закладывай железобетонный фундамент с самого начала! Фокусируйся на самом важном!

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

Тогда новичок будет хвататься за все нагуглившиеся книги или статьи, или те, которые посоветуют более опытные члены команды, будет пытаться их «съесть» максимально быстро, все сразу, иногда даже жертвуя выходными или сном. Это приведет к спаду мотивации, эффективности, уменьшению удовольствия от процесса работы и обучения, и в конце концов джун неизбежно столкнется с выгоранием. С этим сталкивался и я. Много раз.

Поэтому у меня есть такое правило: «Максимально фокусируйся на двух-трех вещах одновременно, и не больше» .

Хочу остановиться на некоторых важных пунктах:

Хороший уровень владения одним языком программирования

Важно овладеть основным языком программирования, который используется разработчиком на проекте для решения поставленных задач. Также важна и сертификация (например, OCAJP для Java), а именно подготовка к ней помогает изучить или вспомнить основные базовые темы по технологии, закрыть пробелы по смежным темам, которые не изучал до этого.

Но это только один из вариантов — возможно, кому-то лучше подойдет:

Здесь уже дело вкуса 🙂

Знакомство и работа с фреймворками

Важно знать основы фреймворков, которые используются на текущем проекте, чаще всего это Spring и Hibernate. Без этого трудно будет выполнять поставленные задачи (а иногда и совсем невозможно).

Основательное знание структур данных и алгоритмов

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

Здесь важно сразу пробовать применять полученные знания на практике (на текущем проекте или потренироваться на собственном pet-проекте).

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

Развивайте свои коммуникативные навыки

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

Уверенное владение английским языком

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

2 Копай вглубь!

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

Минимум изучайте глубже:

  • язык программирования;
  • структуры данных;
  • алгоритмы;
  • фреймворки;
  • модульные и интеграционные тесты.

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

3 Смотри шире — обогащай собственную экспертизу

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

В 2022 году полноценный Software Developer — это специалист, участвующий в дизайне, программировании, сборке, деплое и поддержке software, над которым он (или команда) работает.

А для этого нужно иметь широкий спектр скиллов. 

Приведу несколько примеров: 

  • Soft skills — коммуникация внутри команды и с клиентом критически важна, нужно ее постоянно развивать.
  • Архитектура и system design — это мастхев, здесь нужно знать хотя бы основы архитектуры и ее распространенные типы, их плюсы и минусы, где могут быть подводные камни, которые есть best practices.
  • Аналитическое мышление — способность проанализировать задачу, оценить ее, понимать tradeoffs, pitfalls и как твоя логика будет скейлиться.
  • Если позволяет проект и время, то изучайте хотя бы на базовом уровне один-два дополнительных языка программирования. Например, если сейчас пишете на Java, я бы еще взглянул в сторону Kotlin и Python (Python будет полезен для написания скриптов).
  • DevOps я думаю, что Software Developer должен четко и ясно понимать, как написанный им сервис доставляется на тестовые энвайрменты или продакшен, какие проблемы возникают с его сервисом и как они решаются. Во многих командах, особенно маленьких — выделенного DevOps нет, и все чаще клиенты ожидают, что Software Developer знает, как доставить проделанную работу на продакшен и поддерживать ее в стабильно рабочем состоянии в течение длительного времени. В последнее время популярно введение культуры DevOps в маленьких, средних и даже больших командах, поэтому эти знания не будут лишними.

Last but not least

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

Keep going!

If you have found a spelling error, please, notify us by selecting that text and pressing Ctrl+Enter.

Останні статті

Токсичные коллеги. Как не стать одним из них и прекратить ныть

В благословенные офисные времена, когда не было большой войны и коронавируса, люди гораздо больше общались…

07.12.2023

Делать что-то впервые всегда очень трудно. Две истории о начале карьеры PM

Вот две истории из собственного опыта, с тех пор, когда только начинал делать свою карьеру…

04.12.2023

«Тыжпрограммист». Как люди не из ІТ-отрасли обесценивают профессию

«Ты же программист». За свою жизнь я много раз слышал эту фразу. От всех. Кто…

15.11.2023

Почему чат GitHub Copilot лучше для разработчиков, чем ChatGPT

Отличные новости! Если вы пропустили, GitHub Copilot — это уже не отдельный продукт, а набор…

13.11.2023

Как мы используем ИИ и Low-Code технологии для разработки IT-продукта

Несколько месяцев назад мы с командой Promodo (агентство инвестировало в продукт более $100 000) запустили…

07.11.2023

Университет или курсы. Что лучше для получения IT-образования

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

19.10.2023