Всем привет!

Меня зовут Федор Усаков. Я Senior Software Engineer in Athlios and Woodway inc.

Федор Усаков

Senior Software Engineer in Athlios and Woodway inc

Сегодня в этой статье от ProductStar я поделюсь с тобой особенным материалом. Это небольшой свод правил, следовать которым я бы посоветовал Junior-разработчикам. 

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

Немного обо мне:

Программист по призванию, фулл-стек инженер по профессии, адвокат качественного кода и ментор со стажем. 

Опыт в разработке более 10 лет, 8 из которых занимался web-проектами. За это время успел поработать в различных стартапах. Принимал участие в крупных enterprise level коммерческих проектах, занимался наставничеством и популяризацией прогрессивных методов написания кода.

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

Вперед!

Заповедь № 1 — Не переставай учиться

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

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

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

Как прокачать навык обучения?

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

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

  • Читай новости из мира программирования. Подпишись на новостные ленты по своему основному языку и фреймворкам, которые ты изучаешь.

  • Смотри обучающие видео и записи выступлений «рок-звезд» программирования. 

  • Стань частью community разработчиков — присоединяйся к интересным тематическим форумам. 

  • Инвестируй деньги в хорошее платное обучение. Пусть твой день начинается не с кофе, а с кофе и нового онлайн-урока на 20–30 минут. Сделай обучение своей привычкой.

Заповедь № 2 — Поддерживай здоровые отношения

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

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

Нет стоит принимать замечания по поводу качества программного кода на свой счет и обижаться на критику. Нормально, когда в ходе code review другие разработчики оставляют комментарии к твоему pull request. Помни, что критикуют не тебя лично. Чувствовать раздражение и обиду на коллег в ходе процесса — нормально. Но отвечать негативно, спорить и доказывать свою правоту на каждый комментарий неприемлемо. Представь, что ты уже Senior, работающий в паре с Junior’ом, который легко выходит из себя, постоянно спорит и отказывается менять свой код. 

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

Тренируй эмоциональный интеллект, не будь токсичным и не поддерживай конфликты.

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

Не позволяй некоторым ситуациям или людям выводить тебя из себя.

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

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

Если ты начинающий разработчик, то найдется Senior, который будет свято уверен, что он выше, красивее, и в целом, круче тебя. Кодишь для Windows — найдется кодер под Linux, который поливает все остальные платформы грязью. 

Если ты девушка — не удивляйся инфантильному дураку, надутому мизогинией по самые щеки.

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

Полезным инструментом в твоей карьере может оказаться книга Кен Ллойда «Придурки на работе».

Заповедь № 3 — Сфокусируйся

Определи приоритеты для обучения и роста. Твоя задача на перспективу — это экспертное знание языка программирования и основного рабочего фреймворка. 

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

  • Если ты работаешь на фронтенде, выбери один из доминирующих фреймворков:

React, Angular или Vue.js. 

  • Изучай внимательно, отслеживай новые версии и изменения, лучшие практики и паттерны программирования. 

  • Постоянно практикуй язык — Java, Typescript или С#. Они должны стать постоянным объектом изучения и практики. 

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

Фокус экономит время и позволяет расставить приоритеты. 

Освоил экспертно язык, топовый современный фреймворк, unit-тестирование? Можешь претендовать на повышения грейда с Junior до Middle

Заповедь № 4 — Не отказывайся от новых и пугающих задач

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

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

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

Как лучше с работать с такими задачами?

  • Разложить «страшную» задачку на более мелкие подзадачи и шаги составляющие. 

  • Решить те подзадачи, которые кажутся знакомыми и понятными. 

  • Сформулировать пул вопросов. Задай их Google и запости на stackexchange. 

  • Найти несколько вероятных вариантов решения и попробовать все.

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

Заповедь № 5 — Не стесняйся спрашивать

Junior-разработчик, который не задает вопросы — это необычно. Это вызывает ответные вопросы у коллег. От тебя ожидают активной позиции и обращения к коллегам и наставникам. Зачастую получить актуальную информацию о работе backend-архитектуры или узнать особенности внутреннего инструментария можно только из прямого интервью с тимлидом или Senior-разработчиком.

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

Заповедь № 6 — Ошибки в коде не твои

Процесс написания кода можно назвать процессом внесения ошибок. Ошибки нормально делать, находить и исправлять. Так появляется опыт. Не нормально — испытывать чувство вины и работать сверхурочно, потому что в коде  «твоя ошибка».

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

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

Заповедь № 7 — Будь как Windows

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

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

И вся эта работа обнуляется и обесценивается, стоит ответить на какой-то запрос в рабочем чате. Ошибкой является переключение на новую проблему и мысль «быстренько» ее решить. 

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

Заповедь № 8 — Организуй свою экосистему

Твое рабочее окружение формирует победу над задачами и стимулирует эффект «потока». 

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

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

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

Настрой операционку и шорткаты под свои привычки.

На самом деле, про оформление среды разработки можно написать еще одну статью. 

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

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

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

Успехов!

Комментарии (7)


  1. JordanCpp
    17.10.2023 17:50
    +1

    Почему для junior'а? Универсальные советы или практики, подходят для всех. Когда дочитал до - будь как windows, вспомнил старую шутку про многозадачность, Бил Гейтса и его сына:)


    1. FruTb
      17.10.2023 17:50

      НЛО под окнами зависло))


  1. PositiveAlex
    17.10.2023 17:50

    Я считаю, что статья полезная.

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

    Мне понравилось, мысли хорошие, и ещё даже книги советуются.

    Поставил плюсы в статью и карму.


  1. leozack
    17.10.2023 17:50

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


  1. Dormidont239
    17.10.2023 17:50

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


  1. MonsterCatz
    17.10.2023 17:50

    Будь как Windows

    Бсодить после любой ошибки в коде?


  1. cortl
    17.10.2023 17:50

    Не нормально — испытывать чувство вины и работать сверхурочно, потому что в коде  «твоя ошибка».

    Уже, вроде, не джун, но это всё ещё проблема для меня.

    И делай 15-минутный перерыв, прежде чем перейти на новую задачу.

    Это было бы идеально и в ТБ прописано: "каждый час делать перерыв на 15 минут". Как в себе это выработать?

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

    Как-то это не реально звучит. Мне настроиться на работу помогает удалёнка. Офис это х0.5.