Всем привет. Коллеги недавно писали в этом блоге, что открылась регистрация в следующую Школу разработки интерфейсов в Москве. Я очень рад новому набору, ведь я был одним из тех, кто придумал Школу в 2012 году, и с тех пор постоянно ей занимаюсь. Она эволюционировала. Из неё вышло целое мини-поколение разработчиков с широчайшим кругозором и способностью взять на себя в проектах вообще всё, что связано с фронтендом. Кто-то из выпускников работает в Яндексе, кто-то нет.
ШРИ — как сервис: тоже требует разных форматов взаимодействия, автоматизации и экспериментов. Вот об этом и поговорим сегодня на Хабре. Будут и полезные ссылки для кандидатов.
Не хочу сильно повторяться: вся основная информация про ШРИ 2019 есть на сайте. Только напомню про возможности для ребят из других городов: укажите в анкете, если хотите пройти первую часть (с 7 сентября по 25 октября) заочно. Конечно, тем, кто справится с тестовым заданием, мы не откажем и в очном участии — оплатим хостел и питание.
Мы приглашаем в ШРИ всех, кто интересуется фронтенд-разработкой и испытывает острый недостаток в практике. Во время Школы студенты получают опыт командной разработки, учатся системному мышлению и прокачивают навыки, необходимые для будущей работы в Яндексе и похожих компаниях. Карьерный трек выпускников ШРИ выглядит примерно так: сначала они становятся младшими разработчиками, затем разработчиками и со временем руководителями групп.
Это будет седьмая Школа в Москве и четырнадцатая, если учитывать все города, где её проводили — Симферополь, Минск, Екатеринбург, Санкт-Петербург. У нас гибкий проект. Каждый раз мы прислушиваемся к обратной связи студентов: что-то меняем, убираем, добавляем исходя из их потребностей и изменений в индустрии.
Мы делаем вступительное задание довольно сложным. По смыслу задание для набора в Москве похоже на то, что было в минской ШРИ этого года. Мы дадим задачку на динамическую вёрстку, на написание JavaScript, и нужно будет разобраться в новой предметной области. По нашим подсчётам, на его выполнение уйдёт 5–7 дней, может чуть больше.
После зачисления в Школу участники должны пройти два этапа. На первом из них студенты слушают лекции, выполняют домашние задания и затем разбирают их вместе с преподавателями и другими студентами прямо на занятиях. Получается мощный эффект синергии.
Одна из лекций обязательно проходит в гораздо более интенсивном формате, чем остальные. На ней мы занимаемся алгоритмами: несколько часов подряд учащиеся на практике познают ключевые алгоритмические приёмы.
Во время второго этапа участники объединяются друг с другом в небольшие команды и работают в режиме хакатонов (мы называем их шрикатонами). Весь второй этап студенты работают над реальными проектами под менторством сотрудников Яндекса. В финале — защита проектов. Самые удачные имеют реальный шанс попасть в продакшен.
Так было не всегда.
Впервые мы провели Школу в 2012 году. Изначально идея была в том, что нам самим не хватало специалистов и мы решили их «растить». Но даже тогда мы не ограничивали студентов в том, где им потом работать. Важно решать высокоуровневую задачу — усиливать большую экосистему, возвращая в неё выпускников с приобретённым глубоким пониманием фронтенда. На конференциях и встречах с разработчиками видно, как этот процесс приносит свои плоды.
Раньше были только лекции с домашними заданиями и защитой выпускного проекта. Причём лекции широкие, рассчитанные на базовый уровень знаний студентов. Постепенно мы поняли, что в этом не так много смысла. Вся информация и так доступна в онлайне, важнее смотивировать студентов самим найти нужную информацию, задать им правильный вектор и в целом привить желание обучаться. К тому же за годы проведения ШРИ у нас накопилось много материала по базовым темам, и мы регулярно его обновляем.
Сейчас больше концентрируемся на публичном разборе домашних заданий. Это важная часть образовательного процесса. Совместный разбор самых распространённых проблем в каждой из тем после каждой лекции хорошо помогает на практике закреплять материал.
Когда придумали формат шрикатонов, это придало определённый boost процессу. До того студенты готовили выпускные проекты дома в одиночку. Мы подумали, что было бы эффективнее прокачивать командную работу. Этот скилл как раз сложно получить, если ты начинающий разработчик интерфейсов, который работает в небольшой компании, и тем более если фрилансер. На шрикатонах в каждой команде есть менторы из Яндекса — опытные разработчики, они помогают студентам наладить взаимоотношения и построить рабочий процесс.
Ещё мы пробовали формат объединённых школ, когда работали в контексте «Мобилизации» — образовательного проекта 2017 года по разработке мобильных продуктов. Объединяли в команды одновременно студентов из ШРИ, Школы менеджеров, Школы мобильной разработки и Школы мобильного дизайна.
В этом году хотим повторить что-то подобное: сделаем смешанные команды из ШРИ и студентов из Школы бэкенд-разработки.
Каждый год тестовое задание становится чуть сложнее для поступающих, а его проверка чуть легче для нас. В первую Школу пришли десятки заявок — мы проверяли их тогда вручную. В этом году будет около двух тысяч заявок. Пришлось оптимизировать процесс проверки: мы сделали единый чек-лист и распределили проверку заданий среди большого количества людей. На прошлой ШРИ мы уже пробовали, и на этой будем усилять разные автоматизации и полуавтоматизации проверочного процесса. Например, будем использовать автотесты для более быстрой проверки работ, прежде чем отдать их на экспертную оценку разработчику.
В организации и проведении ШРИ задействованы около ста человек. Это разработчики интерфейсов из всего Яндекса из всех отделов, даже из бизнес-юнитов. Кто-то помогает составлять программу, кто-то проводит лекции или курирует шрикатоны. Так как организаторов много, это не сильно мешает текущим рабочим задачам сотрудников. Для них тут тоже польза: они учатся обучать других, менторить и в целом делать более сложные проекты. Win-win.
Как и в наших вакансиях и стажировках, здесь нет ограничений по возрасту. Мы ждём студентов вузов и специалистов, которые имеют минимальный опыт фронтенд-разработки. Для нас важно, чтобы у человека было желание и способность учиться.
Студент ШРИ находится в пограничном состоянии: он уже что-то знает и умеет, но у него могут отсутствовать системные знания и опыт командной разработки в крупных компаниях, ему не хватает практики. ШРИ не обучает с нуля.
При этом вы можете не быть именно фронтендером, а заниматься, например, дизайном, техническим проектным менеджментом или бэкенд-разработкой. В любом случае если ваших знаний и опыта достаточно для выполнения тестового задания, есть смысл идти учиться в ШРИ. Углубленное знание фронтенда позволит лучше понимать проблематику коллег.
Если бы каждый дизайнер и менеджер, с которыми мы работаем, обладали таким уровнем понимания разработки интерфейсов, всем точно стало бы лучше.
За годы проведения Школы мы заметили, что разработчики, которые приходят работать в Яндекс из ШРИ, показывают отличные результаты на внутреннем ревью.
Мы связываем это с тем, что у ШРИшников правильный образ мышления и архетип ученика. Они смотрят на мир с открытыми глазами, не стесняются спрашивать, если что-то непонятно. Умеют работать самостоятельно и легко объединяются с другими.
Мы привозим студентов со всей России, потому что активная учёба и совместное проживание с единомышленниками создаёт очень интенсивный режим — тем самым вырывая их из домашнего контекста. Это как летний лагерь, студенческое общежитие или популярный нынче формат коливинга. Некоторые участники из Москвы завидуют и просят подселиться к сокурсникам в хостел.
В этом году первый этап с лекциями и домашними заданиями можно будет пройти в заочном режиме, удалённо — прямо из своего города. Но на второй этап необходимо приехать в Москву, так как дальше начинается магия командной работы. Пока мы не знаем, сколько мест будет доступно для удалённого обучения. Здесь важен психологический момент групповой динамики, важно чувствовать сопричастность к группе.
Нам хочется, чтобы студенты, которые учатся на одном потоке, общались друг с другом, становились друзьями. Если половина поступивших будет учиться удалённо, а поток будет слишком большим, например, 100 человек, то возникнет неприятный эффект одиночества в толпе. Поэтому на одном потоке у нас обычно 30–40 студентов.
С каждого потока последних лет мы берём на стажировки и вакансии от 60% до 70% выпускников.
Всего в ШРИ отучились 539 студентов, 244 из них стали сотрудниками Яндекса (не считая тех, кто был только на стажировке). Сейчас в компании работают 163 выпускника.
Со Школ прошлого года мы трудоустроили в компанию 59 человек: 29 стажёров, 30 штатных разработчиков. Выпускники работают в самых разных сервисах Яндекса: Директе, Поиске, Почте, главной странице, Маркете, Геосервисах, Авто, Дзене, Метрике, Здоровье, Деньгах.
ШРИ не завязана на БЭМ. Конечно, если говорить про разработку интерфейсов, мы подразумеваем такую, которая сложилась в Яндексе — то есть большие нагрузки, много пользователей, высокие стандарты качества и внимание к деталям. Даже для создания маленьких региональных сайтов важно понимать фундамент профессии, разбираться, на чём можно сэкономить и почему, а на чём нет. По просьбам студентов мы одну из лекций посвятили БЭМ, так как эта методология много где стала стандартом.
Мы обучаем именно веб-разработке и сопутствующим технологиям, а также мобильной разработке и мобильной вёрстке в контексте веб-технологий, используем гибридный подход к созданию приложений. Поэтому в ШРИ мы не касаемся аспектов нативного программирования на Swift, Objective-C, Cocoa, C++, Java. Также не касаемся разработки под React Native.
В эту среду, 19 июня, в 19:00 мск мои коллеги и я организуем вебинар про Школу — ответим на вопросы тех, кто думает поступать или уже начал делать задание (разумеется, в комментарии к этому посту тоже приду). Вот ссылка на YouTube, можно нажать «Напомнить».
Полезные сайты
— Современный учебник JavaScript
— WebReference
Книги
— JavaScript. Подробное руководство (6-е издание), Дэвид Флэнаган
— Совершенный код, Стив Макконнелл
— Рефакторинг. Улучшение существующего кода, Мартин Фаулер
— Git Book
Курсы на Udacity (ссылка)
— Linux Command Line Basics
— Browser Rendering Optimization
— Website Performance Optimization
— JavaScript
— Networking for Web Developers
— HTML5 Canvas
— Responsive Images
— Responsive Web Design Fundamentals
— Offline Web Applications
— Web Tooling & Automation
— JavaScript Testing
— Intro to Progressive Web Apps
— Software Testing
— Object-Oriented JavaScript
Видеоматериалы
— Канал Академии Яндекса
— Материалы ШРИ
— Скринкаст по Node.js
— Скринкаст по Webpack
— Скринкаст по Gulp
— Основы ES6
— Javascript Tutorial For Beginners
— Javascript Fundamentals
— Modular Javascript
— React JS Tutorials
— Redux Tutorials
— LearnCode.academy
— CodeDojo
— JavaScript.ru
— Google Developers
— Microsoft Developer
— Facebook Developers
— Технострим Mail.Ru Group
— НОУ ИНТУИТ
А попробовать себя в решении задач можно на CodeSignal.
Это не полный список, есть ещё много полезных материалов. Мы скорее хотим, чтобы поступающие обратили внимание на определённые темы, уделили им время. Важно, чтобы студенты сами захотели искать информацию.
ШРИ — как сервис: тоже требует разных форматов взаимодействия, автоматизации и экспериментов. Вот об этом и поговорим сегодня на Хабре. Будут и полезные ссылки для кандидатов.
Не хочу сильно повторяться: вся основная информация про ШРИ 2019 есть на сайте. Только напомню про возможности для ребят из других городов: укажите в анкете, если хотите пройти первую часть (с 7 сентября по 25 октября) заочно. Конечно, тем, кто справится с тестовым заданием, мы не откажем и в очном участии — оплатим хостел и питание.
Мы приглашаем в ШРИ всех, кто интересуется фронтенд-разработкой и испытывает острый недостаток в практике. Во время Школы студенты получают опыт командной разработки, учатся системному мышлению и прокачивают навыки, необходимые для будущей работы в Яндексе и похожих компаниях. Карьерный трек выпускников ШРИ выглядит примерно так: сначала они становятся младшими разработчиками, затем разработчиками и со временем руководителями групп.
Это будет седьмая Школа в Москве и четырнадцатая, если учитывать все города, где её проводили — Симферополь, Минск, Екатеринбург, Санкт-Петербург. У нас гибкий проект. Каждый раз мы прислушиваемся к обратной связи студентов: что-то меняем, убираем, добавляем исходя из их потребностей и изменений в индустрии.
Начало обучения
Мы делаем вступительное задание довольно сложным. По смыслу задание для набора в Москве похоже на то, что было в минской ШРИ этого года. Мы дадим задачку на динамическую вёрстку, на написание JavaScript, и нужно будет разобраться в новой предметной области. По нашим подсчётам, на его выполнение уйдёт 5–7 дней, может чуть больше.
После зачисления в Школу участники должны пройти два этапа. На первом из них студенты слушают лекции, выполняют домашние задания и затем разбирают их вместе с преподавателями и другими студентами прямо на занятиях. Получается мощный эффект синергии.
Одна из лекций обязательно проходит в гораздо более интенсивном формате, чем остальные. На ней мы занимаемся алгоритмами: несколько часов подряд учащиеся на практике познают ключевые алгоритмические приёмы.
Во время второго этапа участники объединяются друг с другом в небольшие команды и работают в режиме хакатонов (мы называем их шрикатонами). Весь второй этап студенты работают над реальными проектами под менторством сотрудников Яндекса. В финале — защита проектов. Самые удачные имеют реальный шанс попасть в продакшен.
Так было не всегда.
Как ШРИ менялась
Впервые мы провели Школу в 2012 году. Изначально идея была в том, что нам самим не хватало специалистов и мы решили их «растить». Но даже тогда мы не ограничивали студентов в том, где им потом работать. Важно решать высокоуровневую задачу — усиливать большую экосистему, возвращая в неё выпускников с приобретённым глубоким пониманием фронтенда. На конференциях и встречах с разработчиками видно, как этот процесс приносит свои плоды.
Форматы и программа
Раньше были только лекции с домашними заданиями и защитой выпускного проекта. Причём лекции широкие, рассчитанные на базовый уровень знаний студентов. Постепенно мы поняли, что в этом не так много смысла. Вся информация и так доступна в онлайне, важнее смотивировать студентов самим найти нужную информацию, задать им правильный вектор и в целом привить желание обучаться. К тому же за годы проведения ШРИ у нас накопилось много материала по базовым темам, и мы регулярно его обновляем.
Сейчас больше концентрируемся на публичном разборе домашних заданий. Это важная часть образовательного процесса. Совместный разбор самых распространённых проблем в каждой из тем после каждой лекции хорошо помогает на практике закреплять материал.
Когда придумали формат шрикатонов, это придало определённый boost процессу. До того студенты готовили выпускные проекты дома в одиночку. Мы подумали, что было бы эффективнее прокачивать командную работу. Этот скилл как раз сложно получить, если ты начинающий разработчик интерфейсов, который работает в небольшой компании, и тем более если фрилансер. На шрикатонах в каждой команде есть менторы из Яндекса — опытные разработчики, они помогают студентам наладить взаимоотношения и построить рабочий процесс.
Один из шрикатонов
Ещё мы пробовали формат объединённых школ, когда работали в контексте «Мобилизации» — образовательного проекта 2017 года по разработке мобильных продуктов. Объединяли в команды одновременно студентов из ШРИ, Школы менеджеров, Школы мобильной разработки и Школы мобильного дизайна.
В этом году хотим повторить что-то подобное: сделаем смешанные команды из ШРИ и студентов из Школы бэкенд-разработки.
Проверка тестовых заданий
Каждый год тестовое задание становится чуть сложнее для поступающих, а его проверка чуть легче для нас. В первую Школу пришли десятки заявок — мы проверяли их тогда вручную. В этом году будет около двух тысяч заявок. Пришлось оптимизировать процесс проверки: мы сделали единый чек-лист и распределили проверку заданий среди большого количества людей. На прошлой ШРИ мы уже пробовали, и на этой будем усилять разные автоматизации и полуавтоматизации проверочного процесса. Например, будем использовать автотесты для более быстрой проверки работ, прежде чем отдать их на экспертную оценку разработчику.
Команда
В организации и проведении ШРИ задействованы около ста человек. Это разработчики интерфейсов из всего Яндекса из всех отделов, даже из бизнес-юнитов. Кто-то помогает составлять программу, кто-то проводит лекции или курирует шрикатоны. Так как организаторов много, это не сильно мешает текущим рабочим задачам сотрудников. Для них тут тоже польза: они учатся обучать других, менторить и в целом делать более сложные проекты. Win-win.
Люди
Как и в наших вакансиях и стажировках, здесь нет ограничений по возрасту. Мы ждём студентов вузов и специалистов, которые имеют минимальный опыт фронтенд-разработки. Для нас важно, чтобы у человека было желание и способность учиться.
Студент ШРИ находится в пограничном состоянии: он уже что-то знает и умеет, но у него могут отсутствовать системные знания и опыт командной разработки в крупных компаниях, ему не хватает практики. ШРИ не обучает с нуля.
При этом вы можете не быть именно фронтендером, а заниматься, например, дизайном, техническим проектным менеджментом или бэкенд-разработкой. В любом случае если ваших знаний и опыта достаточно для выполнения тестового задания, есть смысл идти учиться в ШРИ. Углубленное знание фронтенда позволит лучше понимать проблематику коллег.
Если бы каждый дизайнер и менеджер, с которыми мы работаем, обладали таким уровнем понимания разработки интерфейсов, всем точно стало бы лучше.
За годы проведения Школы мы заметили, что разработчики, которые приходят работать в Яндекс из ШРИ, показывают отличные результаты на внутреннем ревью.
Мы связываем это с тем, что у ШРИшников правильный образ мышления и архетип ученика. Они смотрят на мир с открытыми глазами, не стесняются спрашивать, если что-то непонятно. Умеют работать самостоятельно и легко объединяются с другими.
Из других городов
Мы привозим студентов со всей России, потому что активная учёба и совместное проживание с единомышленниками создаёт очень интенсивный режим — тем самым вырывая их из домашнего контекста. Это как летний лагерь, студенческое общежитие или популярный нынче формат коливинга. Некоторые участники из Москвы завидуют и просят подселиться к сокурсникам в хостел.
Очно-заочное обучение
В этом году первый этап с лекциями и домашними заданиями можно будет пройти в заочном режиме, удалённо — прямо из своего города. Но на второй этап необходимо приехать в Москву, так как дальше начинается магия командной работы. Пока мы не знаем, сколько мест будет доступно для удалённого обучения. Здесь важен психологический момент групповой динамики, важно чувствовать сопричастность к группе.
Нам хочется, чтобы студенты, которые учатся на одном потоке, общались друг с другом, становились друзьями. Если половина поступивших будет учиться удалённо, а поток будет слишком большим, например, 100 человек, то возникнет неприятный эффект одиночества в толпе. Поэтому на одном потоке у нас обычно 30–40 студентов.
Статистика переходов в Яндекс
С каждого потока последних лет мы берём на стажировки и вакансии от 60% до 70% выпускников.
Всего в ШРИ отучились 539 студентов, 244 из них стали сотрудниками Яндекса (не считая тех, кто был только на стажировке). Сейчас в компании работают 163 выпускника.
Со Школ прошлого года мы трудоустроили в компанию 59 человек: 29 стажёров, 30 штатных разработчиков. Выпускники работают в самых разных сервисах Яндекса: Директе, Поиске, Почте, главной странице, Маркете, Геосервисах, Авто, Дзене, Метрике, Здоровье, Деньгах.
БЭМ и гибридный подход к мобильной разработке
ШРИ не завязана на БЭМ. Конечно, если говорить про разработку интерфейсов, мы подразумеваем такую, которая сложилась в Яндексе — то есть большие нагрузки, много пользователей, высокие стандарты качества и внимание к деталям. Даже для создания маленьких региональных сайтов важно понимать фундамент профессии, разбираться, на чём можно сэкономить и почему, а на чём нет. По просьбам студентов мы одну из лекций посвятили БЭМ, так как эта методология много где стала стандартом.
Мы обучаем именно веб-разработке и сопутствующим технологиям, а также мобильной разработке и мобильной вёрстке в контексте веб-технологий, используем гибридный подход к созданию приложений. Поэтому в ШРИ мы не касаемся аспектов нативного программирования на Swift, Objective-C, Cocoa, C++, Java. Также не касаемся разработки под React Native.
Открытый вебинар
В эту среду, 19 июня, в 19:00 мск мои коллеги и я организуем вебинар про Школу — ответим на вопросы тех, кто думает поступать или уже начал делать задание (разумеется, в комментарии к этому посту тоже приду). Вот ссылка на YouTube, можно нажать «Напомнить».
Что почитать для подготовки
Полезные сайты
— Современный учебник JavaScript
— WebReference
Книги
— JavaScript. Подробное руководство (6-е издание), Дэвид Флэнаган
— Совершенный код, Стив Макконнелл
— Рефакторинг. Улучшение существующего кода, Мартин Фаулер
— Git Book
Курсы на Udacity (ссылка)
— Linux Command Line Basics
— Browser Rendering Optimization
— Website Performance Optimization
— JavaScript
— Networking for Web Developers
— HTML5 Canvas
— Responsive Images
— Responsive Web Design Fundamentals
— Offline Web Applications
— Web Tooling & Automation
— JavaScript Testing
— Intro to Progressive Web Apps
— Software Testing
— Object-Oriented JavaScript
Видеоматериалы
— Канал Академии Яндекса
— Материалы ШРИ
— Скринкаст по Node.js
— Скринкаст по Webpack
— Скринкаст по Gulp
— Основы ES6
— Javascript Tutorial For Beginners
— Javascript Fundamentals
— Modular Javascript
— React JS Tutorials
— Redux Tutorials
— LearnCode.academy
— CodeDojo
— JavaScript.ru
— Google Developers
— Microsoft Developer
— Facebook Developers
— Технострим Mail.Ru Group
— НОУ ИНТУИТ
А попробовать себя в решении задач можно на CodeSignal.
Это не полный список, есть ещё много полезных материалов. Мы скорее хотим, чтобы поступающие обратили внимание на определённые темы, уделили им время. Важно, чтобы студенты сами захотели искать информацию.
Andrew_Pinkerton
Зачем yndx-shri-reviewer требует доступ к приватным репам?
dima117
Задание нужно выполнять в приватном репозитории, чтобы другие кандидаты не могли скопировать ваш код.
В этом году мы используем автотесты, чтобы снизить нагрузку на преподавателей, проверяющих задания. Так как автотесты выполняются без участия человека, они не смогут самостоятельно обработать ситуацию, когда кандидатом указаны ошибочные данные (например, опечатка в ссылке на репозиторий).
Чтобы снизить количество ошибок при заполнении формы и отправки заданий на проверку, мы изменили ввод ссылки на репозитории: вместо заполнения текстового поля нужно выбрать репозиторий из списка. Также при отправке заданий на проверку мы автоматически даем пользователю yndx-shri-reviewer доступ к ним. Под этим аккаунтом проверяющие будут смотреть код выполненных заданий.
Авторизовать приложение нужно для того, чтобы:
— мы могли отобразить в интерфейсе список репозиториев для выбора;
— при отправке заданий на проверку автоматически добавить пользователя yndx-shri-reviewer в качестве коллаборатора в репозитории с заданиями.
Выполнение этих двух действий инициирует сам кандидат через интерфейс личного кабинета. Мы не выполняем действий над репозиториями без ведома кандидата. Токен, который мы получаем для операций над репозиториями, используется только приложением и люди (в т.ч. разработчики ЛК ШРИ) не имеют доступа к нему.
Также, если кандидат не хочет давать доступ к своим приватным репозиториям, всегда можно создать отдельный аккаунт на GitHub для выполнения заданий ШРИ.