Обложка канала

Хекслет

3227 @hexlet_ru

Хекслет - это образовательная платформа для изучения языков программирования и является одной из ведущих онлайн-школ (второе место по популярности по данным карьерного портала Мой круг). Мы обучаем профессиям JS-frontend, JS-backend, PHP-программиста, Pyt

Хекслет

3 года назад
Открыть в
Недавно я писал пост, как поднимал IT-целину в Ульяновске. В этом посте я хочу чуть более конкретно рассказать, как мне удалось обучить под сотню Ruby-программистов за несколько лет и создать крупнейший кластер рубистов в отдельно взятом городе. Многие из тех рубистов сейчас уже являются техническими директорами и владельцами своих компаний. Исходные данные: ребята из компании Undev, в которой я работал в Москве, связались со мной и попросили помочь выстроить техническое представительство в Ульяновске. Мне предстояло собрать большую команду Ruby-разработчиков, так как именно Ruby был основным языком в компании. Засада была в том, что во всем городе было ровно 3 Ruby-разработчика. Было понятно, что для планируемого роста нужно искать перспективных ребят из других компаний, переманивать их и растить. Почти все ребята, которые ко мне попадали, приходили из маленьких компаний, в основном веб-студий, где они работали от нескольких месяцев до нескольких лет. Были и студенты последних курсов местного политеха, правда с опытом работы. С одной стороны, это уже какой-то уровень. С другой — даже те, кто работал год-два в веб-студиях, с точки зрения наших запросов, были очень слабыми. Это типичная история для студий, где тогда в основном работали с битриксом и другими CMS. Был один случай, когда человек в такой студии разрабатывал внутреннюю систему тикетов, которая хранилась в одном файле на 35 000 строк кода. Кстати, этот парень потом стал одним из лучших и сейчас руководит разработкой одного американского стартапа. Обучение я строил так. Первые две-три недели было изучение самого языка + сопутствующих технологий — например, Git, командная строка и так далее. Для этого были подобраны книги, интернет-ресурсы и различные обучающие сервисы. Не курсы, скорее это были либо специализированные тренажеры, либо Kata Почему на язык так мало времени? Тут все прост: в отличие от студентов на курсах, эти ребята пришли работать работу, и если задержать обучение, то резко падает мотивация. Им хочется быстрее переходить к задачам, и эти люди в целом способны находить проблемы и самостоятельно их решать. Поэтому доучивать язык в процессе для них совершенно естественно. Самое интересное — это то, что происходило во время этого обучения. Фактически я проводил 70% своего времени с этими ребятами, которых могло одновременно обучаться до 15 человек. Два раза в день я проверял, что происходит, направлял, подсказывал с настройкой окружения, давал дополнительные задания, если надо. Если у них были общие вопросы или какие-то затыки, мы собирались у доски и вместе разбирались с этими вопросами в бурных обсуждениях с рисованием. Как только заканчивался этот этап, мы начинали погружаться в Ruby on Rails — наш основной рабочий фреймворк. Ребята делали тестовое приложение, которое постепенно обрастало разными функциями. Здесь мы часто работали в парах и проводили время у доски. Обычно они изучали возможности фреймворка через онлайн-туториалы, затем мы обсуждали концепции и после этого приступали к реализации. Помимо этого, раз в несколько недель мы проводили воркшопы, где я учил ребят проектированию и архитектурным вещам вне фреймворка. Здесь мы за день создавали веб-сервер, event loop, тестовый фреймворк, тесты которого написаны на нем же. Вся эта работа велась только в парах, что значительно увеличивало эффективность работы и обучения. Примерно через четыре месяца они были готовы погрузиться в реальные проекты компании. Я передавал их руководителям проектов, но при этом продолжал полностью ревьювить весь код, который они писали. Это продолжалось примерно еще пару месяцев после окончания основного обучения.
What is Kata? | The Codewars Docs

On Codewars, kata are code challenges focused on improving skill and technique. Some train programming fundamentals, while others focus on complex problem solving. Others are puzzles meant to test your creative problem solving, while others are based on real world coding scenarios.

Codewars