Курс молодого бойца для Spark/Scala
Хабр, привет!
Команда Retail Rocket использует узкоспециализированный стек технологий Hadoop + Spark для вычислительного кластера, о котором мы уже писали обзорный материал в самом первом посте нашего инженерного блога на Хабре.
Готовых специалистов для таких технологий найти довольно сложно, особенно, если учесть, что программируем мы исключительно на Scala. Поэтому я стараюсь найти не готовых специалистов, а людей, имеющих минимальный опыт работы, но обладающих большим потенциалом. Мы берем даже людей с частичной занятостью, чтобы было удобно совмещать учебу и работу, если кандидат — студент последних курсов.
Как происходит отбор стажеров в Retail Rocket?
Всегда первый раз звоню по Skype или телефону и задаю простые вопросы, начиная от того как вы нас нашли (находят наши вакансии часто через поиск в Google), заканчивая элементарными вопросами про машинное обучение.
Для прохождения собеседования с нами очень желательно пройти курс от Coursera по машинному обучению. Этот курс очень фундаментальный и учит понимаю, а не зазубриванию формул и использованию готовых библиотек в Python. Это для нас очень важно, так как часто приходится писать алгоритмы руками.
Если ответы меня устраивают, то приглашаю на очное собеседование, на котором мы уже ближе знакомимся с кандидатом, вопросы уже задаем посложнее, но не на зубрежку, а на понимание. В заключении, как правило на дом, мы даем задание изучить научную статью с конференции RecSys, «закодить» алгоритм и прогнать его через тестовый набор данных.
Что происходит после того, как человека выбрали?
Мы используем онлайн-курсы для повышения квалификации новых аналитиков, чтобы затратить минимум усилий для обучения новых сотрудников. До перехода к нам рекомендуется пройти серию очень коротких курсов от Big Data University с тестами:
- Hadoop — 4 часа. Простой курс про компоненты Hadoop.
- Spark 1 — 3 часа. Про Spark, RDD, Api на Java, Python, Scala, создание простых приложений, Spark SQL, MLLib, Spark Streaming, Graph X.
- Spark 2 — 4 часа. Продвинутый курс про создание приложений на Spark.
Затем с первого дня работы аналитик должен успешно изучить и сделать задания следующих курсов:
- Курс по азам языка программирования Scala, очень легкий и понятный. Из кандидатов Scala почти никто не знает, поэтому этот курс помогает очень быстро влиться в процесс.
- Курс по рекомендательным системам. Рекомендательные системы — это одна из ветвей Machine Learning, достаточно узкая тема. Для работы у нас этой темой нужно владеть в совершенстве. От кандидатов не требуется знаний и опыта построения рекомендательных систем. Этот курс для нас большая помощь, чтобы втянуть человека в основную часть работы.
Успешное прохождение этих двух курсов прописано в трудовом договоре, как необходимое условие успешного прохождения испытательного срока. Как правило, трех месяцев хватает, чтобы изучить эти курсы и выполнить задания.
Опциональный, но очень важный для нас курс после прохождения испытательного срока, который я бы рекомендовал — принципы реактивного программирования, где объясняются нетривиальные подходы при программировании на функциональных языках программирования на примере Scala: Монады, Futures, Actors и т.д. Задания в этом курсе довольно сложные, но жутко интересные.
Эта система успешна внедрена в Retail Rocket в течение последних полутора лет и показала себя очень хорошо.
P.S. Рекомендую совсем свежий и всеобъемлющий курс по Scala и Spark.
P.P. S. Мы всегда рады новым членам команды и у нас открыто сразу несколько вакансий на позицию ».NET Разработчик». Наш технологический стек и уровень задач можно оценить в самом первом посте на Хабре. Резюме можно прислать на почту avchizh@retailrocket.ru (HR-ов у нас нет, общаться будем сразу напрямую).