В 2012 году трое руководителей разработки, включая меня, решились на авантюру по созданию собственного образовательного проекта. Так появилась Школа разработки интерфейсов. Спустя девять лет и одну пандемию проект живёт, и сегодня я с радостью приглашаю вас в ШРИ 2021. Но тут же должен оговориться: на Хабре я выступаю рупором для ещё нескольких моих коллег, которые курируют школы по своим направлениям. В Школе мобильной разработки будем обучать специалистов по iOS и Android — за это направление отвечает Илья Богин bryunyon, руководитель разработки приложения Яндекс и мобильного Браузера. Школа бэкенда ориентирована в основном на Python, ей заведует Александр Кошелев daevaorn (в Яндексе Саша руководит созданием сервисов для организаций). За Школу дизайна отвечают сразу трое тимлидов — Денис Мосин, Илья Александров и Дима Быков comajumper.
У Яндекса и у меня лично уже был опыт одновременного проведения школ для нескольких специализаций. Возможно, кто-то помнит проект «Мобилизация» 2016-2017 года: тогда тоже запускались сразу четыре школы. Да и в последние годы мы часто объединяли студентов разных направлений в команды для сдачи выпускного проекта. Эта базовая конфигурация сохранится: в первой половине обучения (она же — первая половина лета-2021) будут лекции, семинары и небольшая практика в каждой из школ отдельно, а затем все студенты соберутся в команды, чтобы делать совместный продакшен-проект. В любой команде будет бэкенд-разработчик, дизайнер, а также фронтенд- или мобильный разработчик. Защиты проектов пройдут в самом конце августа.
Чтобы поступить, нужно заполнить анкету. 15 февраля мы опубликуем тестовое задание, ответы на которое будем принимать до 29 марта (возможно, продлим срок на неделю — в зависимости от числа желающих). Вот какие знания нужны для учёбы:
Нужно знать HTML, CSS и JavaScript и иметь опыт разработки интерфейсов — подойдет даже небольшой.
iOS-разработчикам нужно иметь базовые знания Swift. Для Android важен начальный опыт написания мобильных приложений на Java или Kotlin. Опыт программирования на других языках и знание алгоритмов будет плюсом для обоих направлений.
Нужно знать основы Python, понимать, как приложения развёртываются на серверах, уметь делать запросы к базам данных и хотя бы на начальном уровне знать, как создаются веб-приложения.
У Школы есть два направления — дизайн продукта и дизайн коммуникаций. Для поступления в школу продуктового дизайна нужно уметь работать в Figma и иметь хотя бы небольшой опыт в дизайне мобильных приложений или сайтов. Умение собирать динамические прототипы и работать с компонентами будет преимуществом.
Тем, кто хочет заниматься коммуникационным дизайном, понадобится опыт работы в Figma, Photoshop или Illustrator либо навык быстро осваивать новый софт. Опыт работы с брендом и понимание разных каналов коммуникации будут плюсом.
Посмотрим, позволит ли обстановка провести все занятия в офлайне в московском офисе. Если нет — будем встречаться удалённо (возможно — с переходом в офлайн ближе к осени). Студентам из других городов оплатим переезд и проживание.
Я всегда говорил, что ШРИ и другие школы позволяют получить опыт промышленной разработки, релевантный для большой компании. С четырьмя потоками одновременно и богатым набором навыком в студенческих командах будет ещё круче. Желаю вам удачи!
У Яндекса и у меня лично уже был опыт одновременного проведения школ для нескольких специализаций. Возможно, кто-то помнит проект «Мобилизация» 2016-2017 года: тогда тоже запускались сразу четыре школы. Да и в последние годы мы часто объединяли студентов разных направлений в команды для сдачи выпускного проекта. Эта базовая конфигурация сохранится: в первой половине обучения (она же — первая половина лета-2021) будут лекции, семинары и небольшая практика в каждой из школ отдельно, а затем все студенты соберутся в команды, чтобы делать совместный продакшен-проект. В любой команде будет бэкенд-разработчик, дизайнер, а также фронтенд- или мобильный разработчик. Защиты проектов пройдут в самом конце августа.
Чтобы поступить, нужно заполнить анкету. 15 февраля мы опубликуем тестовое задание, ответы на которое будем принимать до 29 марта (возможно, продлим срок на неделю — в зависимости от числа желающих). Вот какие знания нужны для учёбы:
Школа разработки интерфейсов
Нужно знать HTML, CSS и JavaScript и иметь опыт разработки интерфейсов — подойдет даже небольшой.
Полезные ссылки для изучения
Книги
— Кит Грант — CSS для профи
— Николас Закас — JavaScript для профессиональных веб-разработчиков
— Николас Закас — ECMAScript 6 для разработчиков
— Кайл Симпсон — Вы не знаете JavaScript
— Роберт Мартин — Идеальный программист
— Пассиг Катрин, Яндер Йоханнес — Программирование без дураков
Два мощных ресурса про верстку и JavaScript: WebReference и Современный учебник JavaScript
Курсы на Scrimba
— Learn Flexbox
— Learn CSS Grid
— Learn CSS Variables
— Learn CSS Animations
— Introduction to ES6+
— Learn modern JavaScript
— Introduction to TypeScript
— Learn React
— Learn React Hooks
Курсы на Udacity
— Linux Command Line Basics
— Networking for Web Developers
— Software Testing
— Web Tooling & Automation
— Website Performance Optimization
— Browser Rendering Optimization
— Responsive Web Design Fundamentals
— Responsive Images
— Intro to Progressive Web Apps
— Offline Web Applications
Видеоматериалы
— Предыдущая ШРИ
— Канал Академии Яндекса
Попробовать себя в решении задач можно на CodeSignal и Codewars.
— Кит Грант — CSS для профи
— Николас Закас — JavaScript для профессиональных веб-разработчиков
— Николас Закас — ECMAScript 6 для разработчиков
— Кайл Симпсон — Вы не знаете JavaScript
— Роберт Мартин — Идеальный программист
— Пассиг Катрин, Яндер Йоханнес — Программирование без дураков
Два мощных ресурса про верстку и JavaScript: WebReference и Современный учебник JavaScript
Курсы на Scrimba
— Learn Flexbox
— Learn CSS Grid
— Learn CSS Variables
— Learn CSS Animations
— Introduction to ES6+
— Learn modern JavaScript
— Introduction to TypeScript
— Learn React
— Learn React Hooks
Курсы на Udacity
— Linux Command Line Basics
— Networking for Web Developers
— Software Testing
— Web Tooling & Automation
— Website Performance Optimization
— Browser Rendering Optimization
— Responsive Web Design Fundamentals
— Responsive Images
— Intro to Progressive Web Apps
— Offline Web Applications
Видеоматериалы
— Предыдущая ШРИ
— Канал Академии Яндекса
Попробовать себя в решении задач можно на CodeSignal и Codewars.
Школа мобильной разработки
iOS-разработчикам нужно иметь базовые знания Swift. Для Android важен начальный опыт написания мобильных приложений на Java или Kotlin. Опыт программирования на других языках и знание алгоритмов будет плюсом для обоих направлений.
Ссылки
Полезные сайты
— Документация
— Android Weekly
— Fragmented Podcast
— Официальный сайт Kotlin
— Android Development CodeLabs
— Официальный блог разработчиков Android
Книги
— Joshua Bloch — Effective Java
— Marcin Moskala — Effective Kotlin. Best practices
— Brian Goetz — Java Concurrency in Practice
— Dmitry Jemerov, Svetlana Isakova — Kotlin in Action
— The Busy Coder's Guide to Android Development (справочник на все случаи жизни)
Курсы
— Stepik:
Java. Базовый курс
— Udacity:
Developing Android Apps
Android Basics: User Interface
Developing Android Apps
— Udemy:
Become an Android Developer from Scratch
— Coursera:
Android App Development Specialization
Видеоматериалы
— Предыдущая Школа мобильной разработки
— Официальный YouTube-канал разработчиков
— Курс Computer Science Center по Kotlin
— Android Academy Global
— Android Broadcast
Полезные сайты
— Документация
— NSHipster
— Блог Swift Programming на Medium
Блог мобильных Яндекс.Карт на Medium
31 ссылка для тех, кто хочет освоить iOS-разработку
— Статьи по iOS и Swift на raywenderlich.com
Книги
— Нахавандипур Вандад — iOS. Приемы программирования
— Во Ханг — Оптимизация производительности для iOS
— App Development with Swift
— The Swift Programming Language
— SwiftBook
Курсы
— Coursera: iOS App Development with Swift Specialization
— Udacity: Intro to iOS App Development with Swift
Видеоматериалы
— Видео из курса Яндекса по iOS-разработке на Stepic
— Курс Стэнфорда по iOS 13 и SwiftUI
— Курс Стэнфорда по iOS 11 и Swift 4
— Codeforces
Рефакторинг.Гуру
HackerRank
LeetCode
Android
Полезные сайты
— Документация
— Android Weekly
— Fragmented Podcast
— Официальный сайт Kotlin
— Android Development CodeLabs
— Официальный блог разработчиков Android
Книги
— Joshua Bloch — Effective Java
— Marcin Moskala — Effective Kotlin. Best practices
— Brian Goetz — Java Concurrency in Practice
— Dmitry Jemerov, Svetlana Isakova — Kotlin in Action
— The Busy Coder's Guide to Android Development (справочник на все случаи жизни)
Курсы
— Stepik:
Java. Базовый курс
— Udacity:
Developing Android Apps
Android Basics: User Interface
Developing Android Apps
— Udemy:
Become an Android Developer from Scratch
— Coursera:
Android App Development Specialization
Видеоматериалы
— Предыдущая Школа мобильной разработки
— Официальный YouTube-канал разработчиков
— Курс Computer Science Center по Kotlin
— Android Academy Global
— Android Broadcast
iOS
Полезные сайты
— Документация
— NSHipster
— Блог Swift Programming на Medium
Блог мобильных Яндекс.Карт на Medium
31 ссылка для тех, кто хочет освоить iOS-разработку
— Статьи по iOS и Swift на raywenderlich.com
Книги
— Нахавандипур Вандад — iOS. Приемы программирования
— Во Ханг — Оптимизация производительности для iOS
— App Development with Swift
— The Swift Programming Language
— SwiftBook
Курсы
— Coursera: iOS App Development with Swift Specialization
— Udacity: Intro to iOS App Development with Swift
Видеоматериалы
— Видео из курса Яндекса по iOS-разработке на Stepic
— Курс Стэнфорда по iOS 13 и SwiftUI
— Курс Стэнфорда по iOS 11 и Swift 4
— Codeforces
Полезные сайты для обеих платформ
Рефакторинг.Гуру
HackerRank
LeetCode
Школа бэкенд-разработки
Нужно знать основы Python, понимать, как приложения развёртываются на серверах, уметь делать запросы к базам данных и хотя бы на начальном уровне знать, как создаются веб-приложения.
Ссылки
Книги
— Марк Лутц — Изучаем Python
Марк написал эту книгу по мотивам собственных курсов, которые ведёт уже более десяти лет. Здесь всё важное: обзор инструментов, типы объектов, функции плюс описания моделей и инструкции по обработке исключений.
— Антонио Меле — Django 2 в примерах
Книга делает упор на практическое создание приложений для реальных задач. Кроме непосредственной работы с компонентами самого фреймворка, рассматриваются возможности интеграции сторонних инструментов.
— Если вы можете свободно читать профильную литературу на английском, то порекомендуем пару книг о разработке на основе тестов: Harry Percival — Test-Driven Development with Python; Kevin Harvey — Test-Driven Development with Django.
— Тони Гэддис — Начинаем программировать на Python
Видеоматериалы
— Лекции Тимофея Хирьянова по алгоритмам
Тимофей — один из преподавателей МФТИ. Лекций по алгоритмам множество, но эти наглядные. Особенно полезны для новичков, но и разработчику с опытом тоже пригодятся.
— Видеокурс Школы бэкенд-разработки 2019
Посты из Академии Яндекса
— Python для SRE-инженеров и тех, кто хочет ими стать
— Объектно-ориентированное программирование на Python: с чего начать?
— Что точно стоит почитать начинающему Python-разработчику — вне зависимости от сферы?
— Язык Python и интерпретатор СPython
Другое
— Специализация по алгоритмам и структурам данных
— Гайд по разработке бэкенд-сервисов на Python на примере прошлого вступительного задания
— Документация Python 3.9.1
— Классная вводная статья о параллелизме
— О разных типы параллелизма в Go (с гифками)
— Ответ на то, зачем использовать nginx и Gunicorn
— О Docker
— Полный пример того, как задеплоить ML-приложение
— И ещё много материалов здесь и здесь
— Марк Лутц — Изучаем Python
Марк написал эту книгу по мотивам собственных курсов, которые ведёт уже более десяти лет. Здесь всё важное: обзор инструментов, типы объектов, функции плюс описания моделей и инструкции по обработке исключений.
— Антонио Меле — Django 2 в примерах
Книга делает упор на практическое создание приложений для реальных задач. Кроме непосредственной работы с компонентами самого фреймворка, рассматриваются возможности интеграции сторонних инструментов.
— Если вы можете свободно читать профильную литературу на английском, то порекомендуем пару книг о разработке на основе тестов: Harry Percival — Test-Driven Development with Python; Kevin Harvey — Test-Driven Development with Django.
— Тони Гэддис — Начинаем программировать на Python
Видеоматериалы
— Лекции Тимофея Хирьянова по алгоритмам
Тимофей — один из преподавателей МФТИ. Лекций по алгоритмам множество, но эти наглядные. Особенно полезны для новичков, но и разработчику с опытом тоже пригодятся.
— Видеокурс Школы бэкенд-разработки 2019
Посты из Академии Яндекса
— Python для SRE-инженеров и тех, кто хочет ими стать
— Объектно-ориентированное программирование на Python: с чего начать?
— Что точно стоит почитать начинающему Python-разработчику — вне зависимости от сферы?
— Язык Python и интерпретатор СPython
Другое
— Специализация по алгоритмам и структурам данных
— Гайд по разработке бэкенд-сервисов на Python на примере прошлого вступительного задания
— Документация Python 3.9.1
— Классная вводная статья о параллелизме
— О разных типы параллелизма в Go (с гифками)
— Ответ на то, зачем использовать nginx и Gunicorn
— О Docker
— Полный пример того, как задеплоить ML-приложение
— И ещё много материалов здесь и здесь
Школа дизайна
У Школы есть два направления — дизайн продукта и дизайн коммуникаций. Для поступления в школу продуктового дизайна нужно уметь работать в Figma и иметь хотя бы небольшой опыт в дизайне мобильных приложений или сайтов. Умение собирать динамические прототипы и работать с компонентами будет преимуществом.
Тем, кто хочет заниматься коммуникационным дизайном, понадобится опыт работы в Figma, Photoshop или Illustrator либо навык быстро осваивать новый софт. Опыт работы с брендом и понимание разных каналов коммуникации будут плюсом.
Ссылки
Книги для продуктового дизайнера
— Илья Бирман — Пользовательский интерфейс
— Дональд Норман — Дизайн привычных вещей
— Эд Кэтмелл — Корпорация гениев. Как управлять командой творческих людей
— Адам Ватан, Стив Шогер — Рефакторинг пользовательского интерфейса
— Тим Браун — Дизайн-мышление в бизнесе
— Алан Купер — Об интерфейсе
— Кимберли Элам — Графический дизайн. Принцип сетки
Книги для дизайнера коммуникаций
— Майкл Джанда — Сожги свое портфолио! То, чему не учат в дизайнерских школах
— Вилли Кунц — Типографика: макро- и микроэстетика
— Юрий Гордон — Книги про буквы от Аа до Яя
— Пол Рэнд — Дизайн: форма и хаос
— Все книги Эдварда Тафти
— Ян Чихольд — Облик книги
— Эмиль Рудер — Типографика
— Джим Кэмп — Сначала скажите «нет»
— Дмитрий Чернышёв — Как люди думают
— Артемий Лебедев — Ководство
Полезные сайты
— Подобрать сочетающиеся шрифты — Fontjoy
— Найти бесплатные иконки — Flaticon
— Подобрать цветовую гамму — Coolors
— Распознать и скачать понравившийся шрифт — Font Squirrel
— Вдохновиться примерами чужих логотипов — Logobook
— Создать инфографику — Infogram
— Попробовать себя в прототипировании — Figma
Полезные статьи бюро Артёма Горбунова — про элементы и приёмы в дизайне
— Текст
— Якорные объекты
— Точка, линия, прямоугольник
— Внутреннее и внешнее
— Отступы
— Чередование ритма
— Гомогенезация
— Модульность
Видеоматериалы
— Как проектировать интерфейсы для многомиллионной аудитории. Лекция Школы мобильного дизайна
— Разбор тестового задания на стажировку 2019 года
— Илья Бирман — Пользовательский интерфейс
— Дональд Норман — Дизайн привычных вещей
— Эд Кэтмелл — Корпорация гениев. Как управлять командой творческих людей
— Адам Ватан, Стив Шогер — Рефакторинг пользовательского интерфейса
— Тим Браун — Дизайн-мышление в бизнесе
— Алан Купер — Об интерфейсе
— Кимберли Элам — Графический дизайн. Принцип сетки
Книги для дизайнера коммуникаций
— Майкл Джанда — Сожги свое портфолио! То, чему не учат в дизайнерских школах
— Вилли Кунц — Типографика: макро- и микроэстетика
— Юрий Гордон — Книги про буквы от Аа до Яя
— Пол Рэнд — Дизайн: форма и хаос
— Все книги Эдварда Тафти
— Ян Чихольд — Облик книги
— Эмиль Рудер — Типографика
— Джим Кэмп — Сначала скажите «нет»
— Дмитрий Чернышёв — Как люди думают
— Артемий Лебедев — Ководство
Полезные сайты
— Подобрать сочетающиеся шрифты — Fontjoy
— Найти бесплатные иконки — Flaticon
— Подобрать цветовую гамму — Coolors
— Распознать и скачать понравившийся шрифт — Font Squirrel
— Вдохновиться примерами чужих логотипов — Logobook
— Создать инфографику — Infogram
— Попробовать себя в прототипировании — Figma
Полезные статьи бюро Артёма Горбунова — про элементы и приёмы в дизайне
— Текст
— Якорные объекты
— Точка, линия, прямоугольник
— Внутреннее и внешнее
— Отступы
— Чередование ритма
— Гомогенезация
— Модульность
Видеоматериалы
— Как проектировать интерфейсы для многомиллионной аудитории. Лекция Школы мобильного дизайна
— Разбор тестового задания на стажировку 2019 года
Посмотрим, позволит ли обстановка провести все занятия в офлайне в московском офисе. Если нет — будем встречаться удалённо (возможно — с переходом в офлайн ближе к осени). Студентам из других городов оплатим переезд и проживание.
Я всегда говорил, что ШРИ и другие школы позволяют получить опыт промышленной разработки, релевантный для большой компании. С четырьмя потоками одновременно и богатым набором навыком в студенческих командах будет ещё круче. Желаю вам удачи!