hero

Как стать разработчиком

Сборник материалов и вопросов для самостоятельного изучения

Начать знакомство →

Не относитесь к кодингу как к хобби

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

Начните с простого

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

Определитесь, на каких технологиях следует фокусироваться

Определите, что интересует вас больше всего. Хотите ли вы разрабатывать пользовательские интерфейсы? Если да, значит вы должны фокусироваться на frontend-технологиях. Или же вы хотите узнать, как работает серверная часть? Тогда концентрируйтесь на backend-технологиях.

# Важно !

Cоздано для личного использования и как личный трекинг результатов обучения на основе карты developers-roadmap (opens new window) от FSD (opens new window) . Я не предоставляю никаких услуг обучения.

# Градации

Ниже приведены наши субъективные представления стандартных уровней мастерства разработчиков.

# Junior frontend developer

  • Умеет решать локальные задачи, которые хорошо декомпозированы и укладываются в принятые в проекте соглашения и архитектурные принципы.
  • Хорошо знает основной инструментарий — html, css, javascript.
  • Уверенно владеет React.JS на уровне, который позволяет решать абсолютное большинство стандартных задач, связанных с интерфейсами.
  • Умеет ясно излагать свои мысли в письменной и устной форме, понимает важность проактивности для командной работы.

# Middle frontend developer

  • Отлично знает инструментарий, включая React.JS.
  • Имеет навыки проектирования и знает основные принципы разработки поддерживаемого продукта, т.е. владеет ООП, ФП, понимает DDD и SOLID.
  • Умеет спроектировать небольшого и среднего размера стандартные проекты (интерфейс для проекта до ±100k строк с командой до ±10 участников).
  • Умеет эффективно решать задачи в рамках заданной архитектуры (например, следуя парадигме от React+Redux).
  • Знает, как решить нетривиальные локальные задачи, чаще всего не связанные с интерфейсами напрямую, например, написать небольшую библиотеку для удобного API по работе с URI.
  • Понимает бизнес-ценность своей работы, может предложить пересмотр требований задачи для лучшего достижений этих ценностей, может предложить убрать задачу из бэклога, аргументировав возможными альтернативами или даже доказав её низкий приоритет.
  • Умеет декомпозировать и довольно точно оценить объем работ для небольших работ (до 2-х человеко-месяцев). Умеет явно увидеть области риска при оценке, сузить их наименьшими усилиями и явно фокусировать внимание команды на них.
  • Проявляет эмпатию, не перебивает, умеет выслушать, понять точку зрения оппонента и предложить аргументированные альтернативы.

# Senior frontend developer

  • Отлично понимает весь контекст проекта, включая пользователей (и их цели), бизнес, всю команду разработчиков.
  • Понимает бизнес-ценности всего продукта и всей команды.
  • Может помочь ясно сформулировать требования к задаче, учитывая стратегические цели компании.
  • Может спроектировать верхнеуровневую архитектуру продукта учитывая весь контекст (пользователи, бизнес, 3rd party services etc).
  • Сам может выбрать необходимый стек для всего комплекса решений, который может состоять из нескольких больших проектов.
  • Умеет самостоятельно эффективно разбираться в неизвестных и достаточно объемных областях, применять изученное для решения поставленных проблем там, где это эффективно (например, быстро изучить meteor.js и предложить создавать проект на нем, если он действительно лучше подходит).
  • Умеет давать оценки даже для существенного объема работ, запросить все необходимые требования, доработать их при необходимости, заложить риски.