🧔📈 Повышение до тимлида: дорожная карта
Делимся списком из хард- и софтскиллов, которые вам нужно приобрести, чтобы стать тимлидом во фронтенде. Это перевод статьи, автор оригинала Bohdan Balov. Всем привет! Около полугода назад меня повысили до тимлида. Я прошёл долгий путь, чтобы получить эту позицию. И теперь хочу поделиться своим опытом и мыслями. Последние 2.5 года я занимаюсь в основном разработкой фронтэнда. Так что данные приведены с этой точки зрения. Налейте чашечку кофе и вперёд! Как начать планировать двигаться в сторону тимлида? Во-первых, вам нужно быть старшим программистом со стажем приблизительно 2-3 года. Это значит, что вы искушённый программист, который справляется со сложными задачами и ведёт маленькую группу, состоящую из 1-3 разработчиков. Также вам нужно быть проактивным, а не реактивным. Это предполагает, что вы готовы нести бремя ответственности. Вы способны анализировать задачи и общаться с людьми из бизнеса. Каждое ваше предложение подтверждается чёткими обоснованиями. Естественно, вам нужно быть экспертом хотя бы в одной технологии. Компетентность в других технологиях и областях будет большим преимуществом. Это называется «Т-образный человек» – тот, кто обладает глубокими знаниями в своей основной области и имеет некоторые знания вокруг неё. Вы подходите под эти критерии? Тогда вы готовы! Например, я в основном специализируюсь на библиотеке React и всём, что связано с ней. Также у меня есть большой опыт работы с PHP и кое-какой опыт в Node.js. Так что у меня достаточно опыта, чтобы начать новый проект или поддержать уже существующий. Я активный ментор, который помогает ребятам начать карьеру в ИТ с нуля или получить повышение. Также я проактивный член команды, который готов взять ответственность, спланировать процесс разработки и поддержать товарищей по команде. Теперь мы подробно рассмотрим необходимые технические и коммуникативные навыки. Готовы? Что касается меня, то я считаю, что это важнейшие навыки, необходимые для профессионального программиста. Я не хочу недооценивать важность коммуникативных навыков. Но главное, чем должен заниматься программист – создавать высококачественный код, который превращается в ценное для пользователей приложение. Коммуникативные навыки тоже важны. И мы рассмотрим их чуть позже. Объектно-ориентированное программирование. Вы должны быть профи в этой теме. И это касается не только принципов ООП. Вы должны разбираться во многих других вещах: Ознакомьтесь с книгой «Шаблоны проектирования» «банды четырёх (GoF)». Это очень полезная вещь, раскрывающая некоторые из этих тем на хорошем уровне. Вот хороший сайт о шаблонах: patterns.dev. И ещё один ресурс о шаблонах JavaScript. Функциональное программирование. Это экзотика для многих современных разработчиков. Но оно становится всё более и более популярным в последние несколько лет, особенно во фронтэнде. Вот темы, которые вы должны знать как ведущий программист: Я настоятельно рекомендую эту книгу профессора Фрисби. Реактивное программирование. Не очень важное, но настоятельно рекомендуемое знание. Посмотрите RxJS и Akka. Вы должны уметь сравнивать разные решения и выбирать наиболее подходящее, принимая во внимание разные факторы. Здесь особо нечего сказать. Вот набор тем, которые вы должны знать и применять на практике. Как ведущий программист вы ответственны за разработку безопасного приложения. Здесь есть много тем, в которых вы должны иметь опыт. Давайте рассмотрим самые важные: Это важный блок. Пожалуйста, не пренебрегайте им. Эта статья даст вам некоторое понимание данной темы. Потом вы можете использовать эту информацию, чтобы углубить свои знания. Поэтому я не буду погружаться в эту тему. Вот минимальный список того, что вам нужно знать: Вам надо расширить этот список, добавив темы, специфические для вашей среды разработки. Как ведущий программист вы должны уметь подобрать правильный инструментарий. Например, что выбрать: React, Angular или Vue? Или что-то ещё? Это важный момент в создании приложения, так как он может ускорить или замедлить процесс разработки. Вот некоторые критерии, которые вы можете использовать для принятия решения: Вы можете использовать такие сервисы, как Technology Radar и The State of JavaScript. Это большой блок. И невозможно вместить всю ценную информацию в несколько предложений. Я приведу наиболее важные моменты, которые помогут вам начать это увлекательное путешествие: Здесь должна быть куча тем, связанных с инфраструктурой. Так что расширьте этот список, пожалуйста, сами. Вот отличная статья Мартина Фаулера о микро фронтэндах. Невозможно выдать качественный продукт без контроля качества. Ведущий программист должен принимать участие в создании стратегии тестирования. Так что, даже если вы не собираетесь уходить глубоко в область контроля качества, стоит обратить внимание на следующие темы. Этот блок является продолжением предыдущего. Как ведущий программист, вы должны следить за тем, чтобы ваша команда писала качественный код. Для этого вам нужно знать техники и инструменты. Давайте углубимся в следующие темы: Давайте начнём со следующих основных тем: После этого вы можете начать изучать стратегии ветвления кода. Вот некоторые из них: После этого я бы посоветовал вам изучить стратегии выпуска. Это то, что по-настоящему отличает старшего и ведущего программиста. Существует множество старших программистов, которые не интересуются административными задачами. Они могут превосходно писать код. Но одни только технические компетенции не смогут сделать вас хорошей главой компании. Вот поэтому вам нужно знать как: Эта аббревиатура означает «жизненный цикл разработки ПО». Как ведущий программист, вы будете принимать участие в организации процесса разработки. Поэтому вам надо знать, что такое SDLC. Вот какие темы вам нужно освоить в этом блоке: Давайте начнём с методов оценки задач: Также я бы порекомендовал вам изучить «Оптимизацию рисков». Это не обязательно, но было бы отличным пунктом в вашем портфолио. Также я думаю, что было бы уместным добавить следующие темы в этот раздел: На самом деле, это неполный план развития. Вы можете добавить или убрать некоторые темы. И в этом нет ничего страшного! Я решил не перегружать эту статью ссылками, потому что вы можете погуглить и найти любую нужную вам информацию. Удачи! *** Исходные условия
Технические навыки
Парадигмы программирования
Протоколы обмена данными
Безопасность
Проверка прав доступа
Среды разработки
Архитектура
Тестирование
Качество
CI/CD
Коммуникативные навыки
SDLC
Планирование работы
Материалы по теме
- 2 views
- 0 Comment