Привет. Меня зовут Лев, и я разработчик в HeadHunter. Хотите узнать, как я им стал? Пожалуй, начну с самого начала — когда мои юношеские прыщи по количеству могли сравниться лишь с часами, проведенными за игрой в плейстейшен. Какими-то силами вселенной (мам, пап, спасибо:) я стал работать в инвестиционном банке и торговал валютами, акциями, облигациями (да-да, как в фильме “Волк с Уолл-стрит”).

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

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

Стало ясно, что знаний не хватает и нужно учиться. Я пошел на известные ресурсы в поисках знаний, прошел несколько курсов на coursera.org, даже закончил специализацию Fundamentals of Computing. Но мне этого было мало, хотелось общения с реальными людьми из индустрии IT, и тут на глаза попался пост о наборе в Школу программистов HeadHunter 2014/2015, в которую я успешно поступил.


Примерно такие темы пришлось изучать во время школы.

Отмечу самые полезные, на мой взгляд, лекции.

Методологии разработки


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

Инженерные практики


На лекциях и домашних заданиях по инженерным практикам я получил практические навыки по рефакторингу кода, TDD, unit-тестированию в целом, CI и, конечно, ревью кода. Данные навыки помогли успешно справиться с командным проектом.

Командная строка


Одна из самых первых лекций оказалась для меня довольно сложной, поскольку до этого я никогда не работал в консоли. Материала оказалось много, да и bash не самый очевидный язык, но практические задания помогли немного освоиться и начать использовать консоль как удобный инструмент.

После курса лекций последовал командный проект — мы делали Slack для HR, который сильно интегрирован с API HeadHunter. В ходе проекта мы все проявили себя с хорошей стороны и каждому поступил офер на работу в hh.ru, который я с радостью принял и вышел на работу.
В первый же год работы в HeadHunter я пошел помогать родной школе, участвовал в собеседовании новичков в школу. Интересный был опыт — смотреть, как думает человек, успокаивать его, помогать ему искать варианты, а не нервничать и впадать в ступор из-за трудной задачки. Ведь главное, на что мы смотрим на собеседованиях, — это мышление: если не знаешь как решить задачу, надо задавать вопросы, рассуждать, двигаться вперед, а там, глядишь, и вылезешь к ответу. Конечно, без основных знаний, к примеру, что такое O(n) или стэк, пройти практически нереально, но это лишь основа, на которой надо строить свое мышление.

В следующей школе 2016/2017 я провел первую лекцию по инженерным практикам. Выступать публично нелегко, и это все знают. У нас был внутренний семинар, на котором всех начинающих лекторов учат, как выступать. Мы тренировались, как правильно стоять и жестикулировать, в каком ритме говорить и как удержать внимание аудитории. Тренинг сильно помог в подготовке к лекции и в самом выступлении. Все начинаешь понимать еще лучше, детальнее и точнее, когда рассказываешь другим. Страшно конечно, но оочень интересно) Получил фидбек, в этом году лекция будет еще лучше и их будет больше, приходите!

Как я уже писал, обучение в школе делится на два этапа: лекции и практические задания.
В школе 2016/2017 мне повезло стать куратором одного из проектов. Куратор проекта — довольно размытая позиция, тут каждый выбирает, какую роль в команде играть: product-менеджера, project-менеджера или тимлида.

Product-менеджер


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

Project-менеджер


Занимается организацией работы команды, налаживает процессы — стендап, ретро, демо и т. д. Помогает решать организационные вопросы.

Тимлид


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

Я выбрал вторую роль и немного первую, отдав роль тимлида в саму команду. Наша команда занималась проектом с кодовым именем Проверятор. Главная цель была в автоматизации проверок вступительных заданий от абитуриентов Школы программистов. В команде было 5 человек и я, менеджер :) Своих заказчиков мы нашли среди людей, которые больше всего времени уделяли школе. Работа со школой начинается задолго до ее открытия — это списки лекторов, работоспособность сайта, маркетинговая поддержка и многое другое. Но еще больше усилий требуется, чтобы проверить анкеты поступающих, выдать им тестовые задания и прособеседовать. Мы собрали эти активности, проанализировали боли, приоритизировали, декомпозировали на отдельные этапы и задачи и начали работать. Я постарался внедрить в работу все основные практики из hh.ru (код ревью, стендапы, декомпозиция задачи и ее оценка, личная ответственность за дату выпуска, демо, ретро). У нас получилось нечто вроде Scrum с 4-недельными итерациями и демо после них.

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



Большое спасибо ребятам, которые реально росли, становились крутыми разработчиками. Очень здорово, что вся моя команда дошла до конца и мы все вместе теперь работаем в hh.ru!



Наш проект станет первым проектом за 7 лет школы, который дойдет до прода, теперь новые заявки будет проверять робот с частичкой бывших студентов, так что он не очень злой и суровый))

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

Мы начинаем новый набор 2017/2018. В этом году мы ждем 30 студентов, приходите!

Комментарии (16)


  1. Nikobraz
    06.09.2017 13:17
    +5

    Я по-прежнему учусь в нашей школе. Поначалу я был в ней студентом, помогал собеседовать ребят, стал лектором, потом менеджером проекта и сейчас я куратор.

    Но обращу внимание на тот факт, что программистом вы так и не стали.


    1. djika
      06.09.2017 13:25
      +4

      Полагаю, это все же его дополнительная работа, в самом начале он пишет: «Привет. Меня зовут Лев, и я разработчик в HeadHunter».


      1. Sladkozub
        07.09.2017 11:33

        Я бы сказал даже хобби. Как сказал бы Дмитрий Анатольевич: «Учитель — это призвание».


    1. Nikobraz
      07.09.2017 04:43
      -1

      Плюсиков наставили, а в карму насрали. Ну что за люди?


    1. llev Автор
      07.09.2017 11:34
      +1

      выше правильно ребята ответили, что Школа программистов — это дополнительная общественно полезная нагрузка. моя основная работа — java backend.


    1. panferova1992
      07.09.2017 11:34

      стал)


    1. KeyJoo
      07.09.2017 11:34

      Но Лев в заголовке написал: войти в IT. Это же не означает, что в Ай-Ти только программисты...


  1. Germanets
    06.09.2017 20:05

    Эх, заинтересовали вы людей записью, а тут оказывается, что обучение можно проходить только оффлайн и в Москве…


    1. gotoxy
      07.09.2017 11:35

      На хабре всё просто: видишь слово «курсы» и сразу вспоминаешь, в каком городе находишься. Если это не Москва и не Питер, то можно со спокойной душой листать дальше.


    1. llev Автор
      07.09.2017 11:36
      +1

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


  1. Sevensenn
    07.09.2017 11:37

    30 мест, 1000 заявок, конкурс 33.3 человека / место. Неслабо так.
    Вопрос такой: во второй круг (где очные собеседования) проходят только те, кто успешно прошел первый, то есть все задачи решил правильно, верно? Или вы отсматриваете все заявки?


    1. llev Автор
      07.09.2017 11:38
      +1

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


      1. Sevensenn
        07.09.2017 12:06
        +1

        А можно немного статистики, каков процент людей, которые преодолевают первый круг?


  1. dmrt
    07.09.2017 13:04

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


  1. Maccimo
    08.09.2017 18:13

    Набор в «школу программистов», а вопросы как на школьной олимпиаде по математике.
    При устройстве к вам на работу вы такие же нерелевантные вопросы на собеседовании задаёте?


    1. djika
      08.09.2017 18:36

      можете уточнить, какие вопросы вам кажутся нерелевантными?