Самообразование

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

Но об этом и так везде написано. Что и как учить?

Основной стек

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

Поэтому я экспериментирую с asyncio, а коллега препарирует V8. Сегодня или завтра эти знания напрямую не пригодятся «в бою», но это увеличивает глубину знания выбранного стека и вводит в курс последних изменений.

А ещё это очевидно — об этом говорят на каждой конференции и пишут в каждой статье с рекомендациями для разработчиков.

Альтернативные стеки технологий

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

Чтобы много знать, нужно много учить — постепенно осваивать новые инструменты, хоть иногда это кажется лишним.

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

Новые области знаний

Разработка ПО, помимо написания кода, включает в себя много других этапов. Сделать дизайн, написать текст, рассчитать бюджет, доказать окупаемость, управлять другими разработчиками. Это — отдельные отрасли, на освоение которых нужно много времени, но несмотря на это, их нужно изучать. Подобные знания уменьшают риски, увеличивают пользу и скорость развития продукта.

Новые области знаний важны для принятия правильных решений и гибкости графика разработки. Жить без этого можно, но правильным разработчиком не стать.

Опыт

Я — фанат самообучения, поэтому внимательно наблюдал за развитиен массовых онлайн-курсов. Среди тех, которые я проходил, были курсы по созданию приложений на Ноде, анатомии, здоровому питанию (ха-ха!), созданию стартапов и философии математики.

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

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

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

Марафон, а не спринт

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

Рутина надоедает. Легко записаться на пять курсов и сдать первое задание по всем пяти. Второе — сложнее. Третье — почти невозможно. Об этом говорит статистика завершения онлайн-курсов — в 2013м сертификат получали только 7% тех, кто курс начинал.

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

Поэтому при составлении плана самообучения лучше быть пессимистичным. Лучше пробежать полумарафон, чем свалиться перед марафонским финишем.

Итого

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