Итак, вы решили подступиться к новой технологии. По своему желанию или волей компании, где работаете. Не успели даже начать обучение, как мозг уже кипит.
На протяжении последних 10 лет я ежегодно встречаю разные ответы на этот вопрос. Прежде всего, не нужно вестись на новые методики обучения, которые гарантируют освоить С++ за 24 часа и PHP за неделю. Вместо этого стоит определиться, что мы хотим узнать о технологии и как в дальнейшем будем её использовать.
Шаг 1. Разбираемся, зачем нам нужна новая технология.
Наш ответ облегчит планирование обучения. Тут может быть два варианта:
Технология нужна для получения новой работы
При поиске или смене проекта часто возникает ситуация, когда необходимо прокачать навыки и освоить новые знания в соответствующих технологиях. В этой ситуации стоит использовать самый простой алгоритм — назовем его «базовым».
В чем его суть:
Со 100% вероятностью на них можно найти обучающие материалы, которых с головой хватит для ознакомления с технологией.
Технология нужна для продвижения по карьерной лестнице
Иногда мы меняем деятельность, чтобы убежать от рабочей рутины.
В этой ситуации список четких требований существует намного реже. Вместо него — высокоуровневое описание проблемы в духе «мне нужен быстрый сайт, намного быстрее чем прошлый». А дальше уже самостоятельно думай, как это сделать.
Тут уже в дополнение к «базовому алгоритму» необходимо заручиться экспертным мнением более опытного коллеги. Принцип тот же самый: некий набор технологий, каждую из них нужно найти, изучить, попрактиковать. Но как раз «некий набор технологий» и является сложным понятием. Векторов изучения в ИТ невероятное множество. Так что если с головой погрузиться в туториалы, то можно затеряться в дебрях информации. А вот ментор, исходя из своего опыта, подскажет, на чем именно стоит сконцентрироваться и где найти наиболее эффективную схему обучения.
Шаг 2. Определяем, насколько глубоко нужно разобраться в тематике
В этом пункте есть важный нюанс — ваш текущий уровень знаний. Для ознакомления с технологией отлично подойдет «базовый алгоритм». Он дает возможность получить актуальную информацию и найти тривиальные задачи для практики. Если есть необходимость освоить более серьезные знания — обратимся к «алгоритму углублений знаний».
Суть заключается в следующем.
Разработчики при создании новых фреймворков и библиотек зачастую пишут к ним подробную документацию, с описанием всего API и практическими примерами использования. На их страницах вы найдете туториалы по созданию первых приложений, которые будут использовать полный арсенал возможностей.
Однако только практика по-настоящему раскрывает все особенности, преимущества и недостатки технологии. Поэтому жизненно необходимо вести проект, например, продвинутый туториал. Лично я предпочитаю собственный проект, который придумываю для того, чтобы потестить все инструменты и комбинации.
Так, реализация всего функционала сайта «Todo List» станет отличной тренировкой нового фреймворка для построения веб-страниц. Другой вариант — реализовать свою версию сайта «TVMaze».
Такие проекты максимально приближены к реальности. Так что при их создании вы, как разработчик, столкнетесь со всеми типичными проблемами и задачами. Как результат — прокачаете уровень владения технологией.
Я показал два алгоритма по изучению новых технологий. Конечно, оба требуют заточки под конкретные условия и возможности человека, который изучает новое. Однако эти алгоритмы являются планом, от которого можно отталкиваться для старта.
Резюмирую сказанное несколькими тезисами по обучению. Распечатайте и положите на видном месте:
— Ключевым фактором для понимания и изучения технологии является практика! Я видел десятки человек, которые отлично жонглировали терминами, но в душе не чаяли, как технология работает на практике. Чтобы не быть этими «теоретиками» очень важно применять знания в прикладной задаче и осознавать реальную необходимость изучения фреймворка.
— «Базовый» алгоритм подразумевает понимание объема технологий/задач/библиотек, которые нужно выучить. Он определяет несколько ключевых источников поиска информации.
— При использовании алгоритма по углублению знаний вам самим нужно сформировать список задач для себя. Хорошим ходом будет найти ментора. Он подскажет достаточный объем туториалов для прохождения и избавит вас от необходимости вечных скитаний по тысячам обучающих статей и видео.
— План действий: определяемся с объемом задач, ищем пару готовых туториалов для каждой технологии, проходим их, закрепляем практикой. Профит!
— Для всех, кто не любит учиться, плохие новости: процесс обучения должен войти в привычку. Технологии меняются с невероятной скоростью. Пример из жизни: список «маст-хев» технологий, который я сформировал для студентов 5 лет назад, выглядит как инструкция по использованию парового двигателя. Всего 5 лет, а тогдашние технологии уже кажутся древними.
— Перечень популярных технологий необходимо обновлять минимум каждый год. А после — специально выделять время для его освоения.
— Людям с опытом в сфере я очень рекомендую комбинировать новые технологии в практических примерах. Допустим, если вы хотите изучать React, то в практической работе используйте еще и весь сопутствующий стек. Таким образом будет формироваться навык работы с технологией не в вакууме, а в реальных условиях работы.