Открываем четыре Школы: разработки интерфейсов, бэкенда, мобильной разработки и дизайна

Блог компании Яндекс Python Разработка мобильных приложений Интерфейсы Промышленное программирование
В 2012 году трое руководителей разработки, включая меня, решились на авантюру по созданию собственного образовательного проекта. Так появилась Школа разработки интерфейсов. Спустя девять лет и одну пандемию проект живёт, и сегодня я с радостью приглашаю вас в ШРИ 2021. Но тут же должен оговориться: на Хабре я выступаю рупором для ещё нескольких моих коллег, которые курируют школы по своим направлениям. В Школе мобильной разработки будем обучать специалистов по iOS и Android — за это направление отвечает Илья Богин bryunyon , руководитель разработки приложения Яндекс и мобильного Браузера. Школа бэкенда ориентирована в основном на Python, ей заведует Александр Кошелев daevaorn (в Яндексе Саша руководит созданием сервисов для организаций). За Школу дизайна отвечают сразу трое тимлидов — Денис Мосин, Илья Александров и Дима Быков comajumper .



У Яндекса и у меня лично уже был опыт одновременного проведения школ для нескольких специализаций. Возможно, кто-то помнит проект «Мобилизация» 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 .

Школа мобильной разработки
iOS-разработчикам нужно иметь базовые знания Swift. Для Android важен начальный опыт написания мобильных приложений на Java или Kotlin. Опыт программирования на других языках и знание алгоритмов будет плюсом для обоих направлений.


Ссылки
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-приложение
— И ещё много материалов здесь и здесь

Школа дизайна
У Школы есть два направления — дизайн продукта и дизайн коммуникаций. Для поступления в школу продуктового дизайна нужно уметь работать в Figma и иметь хотя бы небольшой опыт в дизайне мобильных приложений или сайтов. Умение собирать динамические прототипы и работать с компонентами будет преимуществом.

Тем, кто хочет заниматься коммуникационным дизайном, понадобится опыт работы в Figma, Photoshop или Illustrator либо навык быстро осваивать новый софт. Опыт работы с брендом и понимание разных каналов коммуникации будут плюсом.


Ссылки
Книги для продуктового дизайнера
— Илья Бирман — Пользовательский интерфейс
— Дональд Норман — Дизайн привычных вещей
— Эд Кэтмелл — Корпорация гениев. Как управлять командой творческих людей
— Адам Ватан, Стив Шогер — Рефакторинг пользовательского интерфейса
— Тим Браун — Дизайн-мышление в бизнесе
— Алан Купер — Об интерфейсе
— Кимберли Элам — Графический дизайн. Принцип сетки

Книги для дизайнера коммуникаций
— Майкл Джанда — Сожги свое портфолио! То, чему не учат в дизайнерских школах
— Вилли Кунц — Типографика: макро- и микроэстетика
— Юрий Гордон — Книги про буквы от Аа до Яя
— Пол Рэнд — Дизайн: форма и хаос
— Все книги Эдварда Тафти
— Ян Чихольд — Облик книги
— Эмиль Рудер — Типографика
— Джим Кэмп — Сначала скажите «нет»
— Дмитрий Чернышёв — Как люди думают
— Артемий Лебедев — Ководство

Полезные сайты
— Подобрать сочетающиеся шрифты — Fontjoy
— Найти бесплатные иконки — Flaticon
— Подобрать цветовую гамму — Coolors
— Распознать и скачать понравившийся шрифт — Font Squirrel
— Вдохновиться примерами чужих логотипов — Logobook
— Создать инфографику — Infogram
— Попробовать себя в прототипировании — Figma

Полезные статьи бюро Артёма Горбунова — про элементы и приёмы в дизайне
— Текст
— Якорные объекты
— Точка, линия, прямоугольник
— Внутреннее и внешнее
— Отступы
— Чередование ритма
— Гомогенезация
— Модульность

Видеоматериалы
— Как проектировать интерфейсы для многомиллионной аудитории . Лекция Школы мобильного дизайна
— Разбор тестового задания на стажировку 2019 года

Посмотрим, позволит ли обстановка провести все занятия в офлайне в московском офисе. Если нет — будем встречаться удалённо (возможно — с переходом в офлайн ближе к осени). Студентам из других городов оплатим переезд и проживание.

Я всегда говорил, что ШРИ и другие школы позволяют получить опыт промышленной разработки, релевантный для большой компании. С четырьмя потоками одновременно и богатым набором навыком в студенческих командах будет ещё круче. Желаю вам удачи!)
Теги:
Хабы: