Мы этого вопроса частично касались выше. Путь предстоит неблизкий.
Какие стадии можно выделить?
Это человек, который только начал изучать программирование или планирует изучить. Мозг у него пока работает по старой схеме – не как у программиста. На этом этапе нужно больше охватывать из разных областей IT и повторять примеры из книг.
Junior должен уметь делать все базовые операции. Знать их хорошо и воспроизводить в реальных задачах. Самый главный навык junior – это декомпозиция и алгоритмизация задачи. Что это значит?
Например, вам надо сделать кнопку Создать заказ. И вы начинаете создавать в голове схему этой процедуры:
Стать Junior можно буквально за 6 месяцев. Все это конечно субъективно, кто-то быстрее, кто-то медленнее – зависит от человека и интенсивности обучения.
Middle может делать практически любые задачи. В отличие от Junior, он мало просит помощи извне. В случае проблем умеет быстро найти нужное решение проблемы в сети.
Junior и Middle не обязательно должны отличаться по ширине стека используемых технологий. Главное отличие – это автономность и меньше задержек на простые типовые проблемы.
Чтобы стать миддлом, необходимо набить достаточное большое количество шишек на лбу. Без большой практики здесь не обойтись. На мой взгляд, это может быть 2-3 года активной разработки.
Рекомендую вам вести лог своего развития как программиста – вы увидите что год назад вы принимали очень сомнительные решения в техническом плане. Особенно на начальных стадиях развития как специалист.
Важный момент – я просто выражаю свое мнение. Кто-то может сказать, что у него совсем другое понимание по вопросу градации работы программистом. Сеньор должен уметь брать большой кусок системы и самостоятельно его пилить, справляюсь со всеми трудностями в одиночку.
Чем сеньор отличается от миддл? Тем, что он полностью самостоятелен, и у него большой багаж разнообразных проектов. Не знания, а именно опыт работы в проектах и опыт решения сложных задач.
Сеньором можно стать через 4-5 лет активной работы в сложных проектах. Если вы делаете простенькие однотипные сайты, это не в счет. Важно, чтобы у вас были новые сложные задачи, которые вы щелкаете как орешки.
Этот специалист по сути является техническим лидером на проекте. Он решает куда мы движемся, что делаем и как делаем.
На мой взгляд, лид-программист должен забирать на себя часть функций по менеджменту проекта и наставничеству других программистов. Не зря же слово lead очень похоже на слово leader.
Потенциально даже Junior может быть при случае Lead программистом. Но в большинстве случаев конечно лучше ставить на эту позицию кого-то из людей поопытнее.
Главные требования к лид программисту – это опыт в выбранных решениях, а также взятие на себя ответственности за принятые технические решения.
Если у вас есть сеньор, который решает внедрять на сверх важный проект новую непроверенную технологию (или которую знает только он один) – это тревожный сигнал.
Мы закончили рассматривать стадии развития программиста, а теперь поговорим про профессиональный рост программиста. Вы можете быть очень крутым лид-программистом на своих проектах, но на других более сложных проектах вы можете быть совсем некомпетентным. Об этом и поговорим.
CRM и сайт компании в одном флаконе.
Личные кабинеты для клиентов и сотрудников вашей компании.
Если вы решили попробовать себя в этой профессии и готовы к обучению, мы предлагаем обучение и работу для начинающих программистов на базе нашей платформы с управлением на SQL.
← Куда расти программисту | Варианты профессионального роста программиста → |