Итак, вы получили свою первую работу по разработке программного обеспечения, что теперь…

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

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

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

Найти наставников

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

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

Технический наставник

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

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

Карьерный наставник

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

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

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

Практикуйте свои мягкие навыки

Вы, наверное, уже миллион раз слышали, насколько важны межличностные навыки, но позвольте мне повторить еще раз.

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

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

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

Управляй своей судьбой

Это ваша жизнь. Вы владеете им. Вы запускаете его. Вы создаете это.

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

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

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

Тратьте время на обучение

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

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

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

Онлайн-сертификаты — не единственный способ учиться, не забывайте о книгах! Мой личный фаворит — Программист-прагматик. Эту книгу мне рекомендовали несколько человек, и что мне в ней нравится, так это то, что темы книги применимы к любому языку программирования или предметной области. В ней рассказывается о выработке привычек, способов мышления и принятия решений, которые сделают вас более разносторонним программистом.

Понимание бизнеса и его клиентов

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

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

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

Документируйте и делитесь своими знаниями

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

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

Делиться знаниями так же важно, как тестировщики должны проверять функциональность вашей новой функции, если вы им ничего не объяснили? Как остальная команда должна быть продуктивной, когда вы в отпуске, если вы единственный, кто знает, как развертывать в рабочей среде? Как разработчики должны использовать ваш новый конвейер Jenkins, если вы не дали им инструкции?

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

Заботьтесь о своей работе

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

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

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

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