Открытый лекторий Яндекса
7.06–31.07.2024

Программа
Регистрация

Вас ждёт

  • Более 150 лекций в онлайн-формате.
  • Общение с топовыми экспертами из Яндекса, прокачка знаний по востребованным IT‑специальностям и решение сложных бизнес‑кейсов.

Программа рассчитана на начинающих и опытных специалистов в области IT, однако присоединиться к лекторию можно с любым бэкграундом.

Ссылки на онлайн-трансляции будут доступны после регистрации.

Программа лектория

Начало лекций указано по московскому времени
Научим делать надёжные, удобные и быстрые интерфейсы

07.06

— 11.06
Открытие Летних школ

10.06

19:00
— 11.06
Node.js. Бэкенд для фронтендера

Вы узнаете, какие существуют серверные рантаймы, и познакомитесь подробно с Node.js. Обсудим историю и архитектуру платформы, границы применимости и то, как мы используем Node.js в Яндексе.

Андрей Мелихов
ведущий разработчик интерфейсов

13.06

19:00
— 11.06
Асинхронность
Разберемся, как работает асинхронность в JavaScript, посмотрим на цикл событий, выберемся из ада обратных вызовов, изучим промисы и async/await.

Григорий Бизюкин
разработчик интерфейсов

15.06

19:00
— 11.06
Git: как большие команды пишут код вместе

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

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

Сергей Захарченко
руководитель группы

17.06

19:00
— 18.06
Тулинг
Расскажем, как организовать удобный процесс разработки приложений в популярных IDE (WebStorm, VS Code) и в терминале. А также о браузерных инструментах разработчика (Chrome DevTools): что они умеют и как ими пользоваться.

Виктор Хомяков
старший разработчик

19.06

19:00
— 18.06
Типизация

Рассмотрим TypeScript с точки зрения теории множеств, разберем контроль выполнения и дженерики.

Александр Николаичев
руководитель подгруппы

20.06

19:00
— 18.06
Типизация — продвинутый уровень

Рассмотрим TypeScript с точки зрения теории множеств, разберем контроль выполнения и дженерики.

Александр Николаичев
руководитель подгруппы

24.06

19:00

— 25.06
Реакт. Построение приложения (Часть 1)

В предыдущих сезонах «ШРИ» мы уже подробно рассматривали сам React. Теперь пришло время детально поговорить о создании приложения с использованием этой библиотеки. В серии лекций мы подробно изучим экосистему React, рассмотрим различные архитектурные подходы, фреймворки, роутеры, стейт-менеджеры и многое другое, что необходимо для разработки современных приложений.

Тёма Сенюков
старший разработчик интерфейсов

25.06

19:00

— 25.06
Реакт. Построение приложения (Часть 2)

В предыдущих сезонах «ШРИ» мы уже подробно рассматривали сам React. Теперь пришло время детально поговорить о создании приложения с использованием этой библиотеки. В серии лекций мы подробно изучим экосистему React, рассмотрим различные архитектурные подходы, фреймворки, роутеры, стейт-менеджеры и многое другое, что необходимо для разработки современных приложений.

Тёма Сенюков
старший разработчик интерфейсов

26.06

19:00

— 25.06
Реакт. Построение приложения (Часть 3)

В предыдущих сезонах «ШРИ» мы уже подробно рассматривали сам React. Теперь пришло время детально поговорить о создании приложения с использованием этой библиотеки. В серии лекций мы подробно изучим экосистему React, рассмотрим различные архитектурные подходы, фреймворки, роутеры, стейт-менеджеры и многое другое, что необходимо для разработки современных приложений.

Андрей Зубков
разработчик интерфейсов

01.07

19:00

— 02.07
Автотесты. Модульное и интеграционное тестирование интерфейсов

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

Дмитрий Андриянов
руководитель группы
Эдвард Гиголаев
разработчик интерфейсов

03.07

19:00

— 02.07
Доступность интерфейсов

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

Анна Мотошкина
разработчик интерфейсов
Максим Соломахин
разработчик интерфейсов

04.07

19:00
— 19.06
ML на JS: Как? И главное, зачем?

Хотя Python обычно выбирают как главный язык программирования для машинного обучения, стоит учесть и другие варианты. В частности, использование JavaScript для машинного обучения может расширить наши горизонты и предложить инновационные решения в области применения ML. Вместе мы рассмотрим множество крутых вариантов применения ML на JS: таких как распознавание речи, генерация картинок, перевод текста, собственная Алиса в браузере.

Алексей Охрименко
ведущий разработчик интерфейсов

08.07

19:00
— 19.06
Performance

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

Константин Петряев
руководитель группы
Александр Нефедов
ведущий разработчик интерфейсов

10.07

19:00
— 19.06
Сборка

На лекции расскажут о том, когда и как появился процесс сборки веб-приложений. Вы узнаете об архитектурном устройстве webpack: как и зачем в нём появились те или иные абстракции и как эти абстракции увидеть вживую. Обсудим стандартные техники: chunk splitting, innerGraph tree shaking, dynamic imports, minimizers, deadcode ellimination, module concatenation.

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

Лекторы объяснят, почему к сборке стоит относиться как к продуктовой фиче и за какими метриками стоит следить, чтобы вам и вашим пользователям было комфортно.

Владимир Ульянов
разработчик интерфейсов
Соня Волынская
разработчик интерфейсов

15.07

19:00

— 16.07
Инфраструктура (Часть 1)
Поговорим об инфраструктуре для разработки: инструментах и процессах, которые сами по себе не являются разработкой, но необходимы, чтобы процесс разработки шел эффективно. Познакомимся со средствами автоматизации рутинных задач. Поговорим про CI (continuous integration), логирование, секреты, организацию конфигурационных файлов. Обсудим релизы — процесс доставки пользователям новой версии приложения. Бонус: узнаем, что такое vim и как из него выйти.

Дмитрий Андриянов
разработчик интерфейсов

16.07

19:00

— 16.07
Инфраструктура (Часть 2)
Поговорим об инфраструктуре для разработки: инструментах и процессах, которые сами по себе не являются разработкой, но необходимы, чтобы процесс разработки шел эффективно. Познакомимся со средствами автоматизации рутинных задач. Поговорим про CI (continuous integration), логирование, секреты, организацию конфигурационных файлов. Обсудим релизы — процесс доставки пользователям новой версии приложения. Бонус: узнаем, что такое vim и как из него выйти.

Дмитрий Андриянов
разработчик интерфейсов
Александр Николаичев
руководитель подгруппы

17.07

19:00

— 16.07
Продвинутый JS

Разберемся в неочевидных возможностях JavaScript.

Григорий Бизюкин
разработчик интерфейсов

22.07

19:00

— 23.07
Функциональное программирование
Разберем самые важные и полезные концепции из функционального программирования.

Григорий Бизюкин
Разработчик интерфейсов
Александр Иванков
руководитель группы

24.07

19:00

— 23.07
Мультимедиа
На этой лекции мы поговорим о мультимедиа-возможностях, которые нам доступны в вебе: как создавать графические эффекты и анимации при помощи CSS, JS, SVG, Canvas и WebGL, что эффективнее использовать в разных ситуациях. Познакомимся с аудиотегом и Web Audio API для работы со звуком. Рассмотрим API браузера для синтеза и распознавания речи. Поговорим о способах применения видеотега для отображения роликов. Разберем понятия «стриминг», «кодек» и «контейнер». Узнаем, как Стив Джобс повлиял на индустрию стриминга и как плеер выбирает качество для проигрывания.

Григорий Бизюкин
разработчик интерфейсов
Александр Иванков
руководитель группы

31.07

19:00

— 30.07
Интернационализация от i до n
На лекции поговорим:
— о том, как подготавливать проекты к международным запускам;
— как не потерять в качестве разработки;
— как сделать так, чтобы команда разработки не теряла фокусировку на продуктовых задачах.

Познакомимся с базовыми понятиями: локаль, интернационализация, локализация, RTL и пр.

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

Поговорим про миграцию уже существующих проектов и на практике увидим особенности культурного контекста в разных регионах.

Павел Петрухин
ведущий разработчик интерфейсов
Алексей Ершков
разработчик интерфейсов
Научим тонкостям написания кода для высоконагруженных веб-сервисов

07.06

— 11.06
Открытие Летних школ

11.06

19:00
— 19.06
Вводная лекция про бэкенд

В лекции мы рассмотрим путь фичи от идеи до прода. Поговорим о создании продуктовой гипотезы, планировании разработки, построении MVP, выборe архитектуры и технологического стека. Затронем описание процесса разработки с ревью, тестированием и деплойментом в различных окружениях — локальном, тестовом, продовом. Рассмотрим основные наблюдения в мониторинге и на что настраивать аларминг, а также как понять, что фича взлетела и её можно раскатить на весь мир.

Николай Смирнов
Разработчик программного обеспечения в Яндекс Лавке

18.06

19:00
— 19.06
Архитектура кода

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

Дамир Гарифуллин
бэкенд-разработчик Карт Офиса

21.06

19:00
— 19.06
Как проектировать HTTP API

На лекции поговорим про устройство HTTP-протокола, про то, как проектировать REST API, о типичных ошибках и лучших практиках.

Александр Куваев
Руководитель разработки клиентского бэкенда Яндекс.Лавки

25.06

19:00
— 19.06
Базы данных

На лекции обсудим основные понятия и принципы работы с базами данных. Рассмотрим факторы, влияющие на выбор подходящей БД для конкретной задачи. Познакомимся с индексами и их ролью в ускорении запросов. Мы поделимся советами по оптимальному использованию баз данных и рекомендациями для эффективной работы.

Денис Московченко
Тимлид команды разработки инструментов платежной системы

27.06

19:00
— 19.06
Качество кода

На лекции мы поговорим про практики, подходы и инструменты для работы над качеством кода.

Дмитрий Соломонов
Программист группы разработки бэкенда Диска Яндекс 360

02.07

18:00
— 19.06
Работа с БД из приложения и миграции

Рассмотрим протоколы простых и расширенных запросов, соединения в PostgreSQL и их ограничения, то, как устроены пулы соединений и как они позволяют обойти ограничения соединений. Обсудим, до какого порога можно наращивать количество соединений с PostgreSQL и какие проблемы при этом возникают. Как устроены и какую задачу решают прокси-пулеры соединений (PgBouncer, Odyssey и др.). Также рассмотрим масштабирование PostgreSQL, синхронную и асинхронную репликацию. Как разрабатывать отказоустойчивые приложения, как реагировать на переключение мастера и реплик на примере абстракции менеджера пулов.

Александр Васин
руководитель группы в Едадиле

03.07

19:00
— 19.06
Многопоточность

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

Дмитрий Труфанов
руководитель группы разработки Яндекс Взгляда

04.07

19:00
— 19.06
Нагрузочное тестирование

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

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

Григорий Липин
инженер по тестированию

09.07

19:00
— 19.06
Тестирование

На лекции поговорим о том, зачем нужны тесты и как их писать. Рассмотрим способы улучшения качества кода и избавления его от багов с помощью различных инструментов: от линтеров до E2E-тестов. Вы узнаете или вспомните, как использовать flake8, mypy, pytest, fixture, coverage, mock, factory boy, faker и многое другое. В конце посмотрим на примере, как добавить фичу в готовый API и отловить баги с помощью тестов.

Сергей Бочкарёв
старший разработчик группы бэкенда Кванта

11.07

19:00
— 19.06
Асинхронное программирование

На лекции мы познакомимся с асинхронным программированием в Python. Обсудим, в чём проблема синхронных приложений, какие есть решения. Узнаем преимущества и недостатки процессов и потоков в веб-серверах. Рассмотрим, что не так с асинхронными приложениями. Затронем тему выбора между синхронным и асинхронным решениями.

Артем Коноплёв
разработчик группы модерации рекламы

23.07

19:00
— 19.06
Эксплуатация бэкенд-систем в боевом окружении

На лекции поговорим о том, как улучшить «наблюдаемость» своего бэкенда при помощи метрик, логирования и трейсинга. А также как добиться бесперебойной работы сервиса при помощи мониторинга и дежурств.

Кирилл Неевин
разработчик в команде базовой инфраструктуры Yandex Cloud

07.06

— 11.06
Открытие Летних школ

11.06

19:00
— 19.06
Вводная лекция про бэкенд

В лекции мы рассмотрим путь фичи от идеи до прода. Поговорим о создании продуктовой гипотезы, планировании разработки, построении MVP, выборe архитектуры и технологического стека. Затронем описание процесса разработки с ревью, тестированием и деплойментом в различных окружениях — локальном, тестовом, продовом. Рассмотрим основные наблюдения в мониторинге и на что настраивать аларминг, а также как понять, что фича взлетела и её можно раскатить на весь мир.

Николай Смирнов
Разработчик программного обеспечения в Яндекс Лавке

18.06

19:00
— 19.06
Архитектура кода

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

Иван Попков
руководитель службы разработки в B2B Яндекс Маркета

21.06

19:00
— 19.06
Как проектировать HTTP API

На лекции поговорим про устройство HTTP-протокола, про то, как проектировать REST API, о типичных ошибках и лучших практиках.

Александр Куваев
Руководитель разработки клиентского бэкенда Яндекс.Лавки

25.06

19:00
— 19.06
Базы данных

На лекции обсудим основные понятия и принципы работы с базами данных. Рассмотрим факторы, влияющие на выбор подходящей БД для конкретной задачи. Познакомимся с индексами и их ролью в ускорении запросов. Мы поделимся советами по оптимальному использованию баз данных и рекомендациями для эффективной работы.

Денис Московченко
Тимлид команды разработки инструментов платежной системы

27.06

19:00
— 19.06
Качество кода

На лекции мы поговорим про практики, подходы и инструменты для работы над качеством кода.

Дмитрий Соломонов
Программист группы разработки бэкенда Диска Яндекс 360

02.07

18:00
— 19.06
Работа с БД из приложения и миграции

Разбираемся в работе с базой данных из Java-приложений. Поговорим о протоколах запросов в PostgreSQL. Рассмотрим соединения в PostgreSQL и ограничения, связанные с ними. Узнаем, как прокси-пулеры соединений, такие как PgBouncer и Odyssey, помогают решить задачи управления соединениями. Посмотрим, как масштабировать PostgreSQL с помощью синхронной и асинхронной репликации для распределения нагрузки и обеспечения отказоустойчивости. Обсудим ORM и миграции баз данных.

Александр Иванец
разработчик в Толоке

03.07

19:00
— 19.06
Многопоточность

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

Андрей Кириленко

04.07

19:00
— 19.06
Нагрузочное тестирование

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

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

Григорий Липин
инженер по тестированию

09.07

19:00
— 19.06
Тестирование

На лекции мы разберём, как обеспечить качество ПО с помощью различных видов тестов.

Мы подробно рассмотрим JUnit 5, а также не забудем об интеграционном и end-to-end-тестировании. Узнаем, что такое ящики и пирамиды в тестировании, а главное — как получать удовольствие от процесса и делать его эффективным.

Вера Козубяк
руководитель группы разработки процессов комплектации и отгрузки

23.07

19:00
— 19.06
Эксплуатация бэкенд-систем в боевом окружении

На лекции поговорим о том, как улучшить «наблюдаемость» своего бэкенда при помощи метрик, логирования и трейсинга. А также как добиться бесперебойной работы сервиса при помощи мониторинга и дежурств.

Кирилл Неевин
разработчик в команде базовой инфраструктуры Yandex Cloud

07.06

— 11.06
Открытие Летних школ

11.06

19:00
— 19.06
Вводная лекция про бэкенд

В лекции мы рассмотрим путь фичи от идеи до прода. Поговорим о создании продуктовой гипотезы, планировании разработки, построении MVP, выборe архитектуры и технологического стека. Затронем описание процесса разработки с ревью, тестированием и деплойментом в различных окружениях — локальном, тестовом, продовом. Рассмотрим основные наблюдения в мониторинге и на что настраивать аларминг, а также как понять, что фича взлетела и её можно раскатить на весь мир.

Николай Смирнов
Разработчик программного обеспечения в Яндекс Лавке

18.06

19:00
— 19.06
Архитектура кода

Поговорим о парадигмах программирования. Обсудим набор правил SOLID, а также познакомимся с идиомами C++ (RAII, Pimpl, CRTP).

Андрей Иванов
Старший разработчик платформы Яндекс.Еды

20.06

19:00
— 19.06
Вводная лекция про userver

В первой части рассказа мы разберёмся, какие проблемы возникают в высоконагруженных сервисах, как их решать и как при этом не усложнять написание повседневного кода. Во второй части погрузимся в использование одного из таких фреймворков — 🐙 userver. Разберёмся, как писать серверные приложения на HTTP и gRPC, что такое динамические конфиги и компонентная система, и рассмотрим написание тестов.

Антон Полухин
Антон Полухин, Эксперт разработчик C++

21.06

19:00
— 19.06
Как проектировать HTTP API

На лекции поговорим про устройство HTTP-протокола, про то, как проектировать REST API, о типичных ошибках и лучших практиках.

Александр Куваев
Руководитель разработки клиентского бэкенда Яндекс.Лавки

25.06

19:00
— 19.06
Базы данных

На лекции обсудим основные понятия и принципы работы с базами данных. Рассмотрим факторы, влияющие на выбор подходящей БД для конкретной задачи. Познакомимся с индексами и их ролью в ускорении запросов. Мы поделимся советами по оптимальному использованию баз данных и рекомендациями для эффективной работы.

Денис Московченко
Тимлид команды разработки инструментов платежной системы

26.06

18:00
— 19.06
Архитектура микросервисов на userver

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

Николай Кривчанский
Руководитель группы цикла заказа в Яндекс.Лавке

27.06

19:00
— 19.06
Качество кода

На лекции мы поговорим про практики, подходы и инструменты для работы над качеством кода.

Дмитрий Соломонов
Программист группы разработки бэкенда Диска Яндекс 360

02.07

19:00
— 19.06
Работа с БД из приложения и миграции

Вы вкратце познакомитесь с тем, какие БД поддерживает фреймворк userver, более подробно — как работать с PostgreSQL из userver, а также как жить с изменчивой схемой данных.

Илья Балашов
Разработчик подгруппы разработки эффективности Межгород

03.07

19:00
— 19.06
Многопоточность

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

Сергей Конюхов
разработчик бэкенда Яндекс Драйва

04.07

19:00
— 19.06
Нагрузочное тестирование

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

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

Григорий Липин
инженер по тестированию

09.07

19:00
— 19.06
Тестирование

Вы узнаете о том, что такое тестирование, о его разновидностях, о том, как и зачем писать тес