Как стать классным разработчиком-джуниором

Перевод статьи «How to Become an Outstanding Junior Developer».

Photo by Hussam Abd on Unsplash

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

А может быть, вы еще не нашли работу, но вам любопытно, как это все будет.

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

Мы рассмотрим следующие темы:

  1. Чего ждать (в первые дни или недели) на работе.
  2. Краткосрочный и среднесрочный план.
  3. Установка на успех.
  4. Как стать замечательным начинающим разработчиком.

Чего ждать на работе

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

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

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

Ваша компания хочет, чтобы вы были успешны

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

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

Вы, безусловно, не чистый лист: кое-что вы уже знаете и умеете. Но есть навыки, которые сложно (если не сказать — невозможно) получить вне среды профессиональной разработки.

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

Ваши первые дни/недели

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

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

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

В первые дни и даже недели у вас только одна цель: учеба.

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

Погружение в реальную кодовую базу

Начиная работать с разными кодовыми базами компании, вы скорее всего будете чувствовать себя, как рыба, выброшенная берег. Это совершенно нормально, ведь писать код куда проще, чем читать.

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

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

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

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

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

Что ожидается от начинающего разработчика

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

Вполне вероятно, что ваш менеджер встретится с вами, чтобы составить план на 30/60/90 дней. Если нет — попросите об этом сами! Любой начальник будет рад, что вы заботитесь о том, чтобы удовлетворить ожидания работодателя.

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

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

Личные установки разработчика-новичка

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

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

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

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

Вместо того чтобы думать:

«Я сегодня 10 раз застрял»,

думайте:

«У меня сегодня было 10 возможностей научиться чему-то новому».

Это очень важное смещение акцентов, которое заметят ваши коллеги, да и на вашей производительности это скажется.

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

А в конце дня отключайтесь от работы. Сбрасывайте ее с себя и, уходя, оставляйте в офисе (если работаете дома — отключайте компьютер). Новый день нужно начинать свежим, отдохнувшим и готовым к новым приключениям.

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

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

Самый важный навык начинающего разработчика

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

То, что вы научились учиться, на самом деле важнее изучения JavaScript, React, Ruby и всего остального. Не забывайте применять этот важный навык в ежедневной работе.

Ваш рост — ваше дело, и больше ничье

Это, возможно, главная заповедь для разработчика любого уровня: ваша карьера — ваше дело. За свой рост отвечаете только вы.

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

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

«Сила маленьких достижений»

https://jamesclear.com/marginal-gains

В одной из моих любимых книг — «Atomic Habits» Джеймса Клира — есть отличная схема под названием «сила маленьких достижений». График там очень простой: он показывает разницу между ежедневным совершенствованием на 1% и деградацией на 1%.

Если вы каждый день будете становиться на 1% лучше, год спустя вы будете практически в 38 раз лучше, чем были в начале года! В этом и заключается сила «маленьких достижений». Эта концепция как нельзя лучше подходит для становления отличного разработчика.

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

Не важно, что именно вы изучите. Но если вы станете лучше всего на 1% (этот показатель вы очень часто будете превышать), ваш рост за первые несколько лет карьеры будет ошеломительным.

Одна страница в день

Однажды в одном дэвэлоперском подкасте я слышал историю о парне, который поддерживал (был мейнтейнером) pg-gem для Ruby. Gem это интерфейс между вашим кодом на Ruby и базой данных Postgresql. Это довольно серьезная штука, которой каждый божий день пользуется большинство Ruby-разработчиков.

Интересной была сама история того, как он стал мейнтейнером этого gem. Он рассказал, что вначале он просто открывал документацию Postgresql и читал по странице — всего одной странице! — в день.

Постепенно он накопил достаточно знаний и стал контрибьютором pg-gem, а некоторое время спустя — и мейнтейнером.

Это прекрасный пример того, как накапливаются маленькие достижения — по одной странице в день. Каждый из нас на это способен, и я советую вам применять эту философию в изучении любого языка или системы, с которыми вы работаете!

«Практика ведет к совершенству!»

Вероятно, вам случалось слышать подобные утверждения. Мой учитель фортепьяно использовал ее в несколько измененном виде: «Хорошая практика ведет к совершенству».

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

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

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

В начале вы будете совершать много ошибок (как и все), но если вы будете сознательно подходить к делу, вы заметите области, в которых можете что-то улучшить. А возможность узнать что-то новое или что-то усовершенствовать — это идеальные моменты для практики.

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

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

Все это о том же — о заботе о собственном развитии и росте.

Т-образные навыки

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

Если вы намерены стать full-stack разработчиком, у вас в списке могут быть HTML, CSS, JS, бэкенд-языки по вкусу, SQL, Git, и многое другое. Знание всего этого легко достижимо, оно буквально лежит на поверхности. Широко раскидывая сеть и впитывая все новые знания, можно получить много пользы.

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

По мере развития вашей карьеры вы начнете превращаться в человека с Т-образными навыками. Горизонтальная черта в букве «Т» обозначает широкие, но поверхностные знания и опыт, а вертикальная — глубокие познания и солидный опыт в одной сфере.

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

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

Упор на поверхностные знания в начале карьеры хорош еще и тем, что позволяет понять, что же вам интересно, и получить общее представление о том, как устроен мир разработки.

Следуйте за своими интересами и не теряйте жажду знаний!

Конец первой части. Во второй части статьи читайте список практических советов для начинающих разработчиков.

[customscript]techrocks_custom_after_post_html[/customscript]

[customscript]techrocks_custom_script[/customscript]

1 комментарий к “Как стать классным разработчиком-джуниором”

  1. Аноним

    Ванильные фантазии. 1.5 года работаю , никто учить не собирается , Аля самообучение в процессе работы.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх