Осень 2021

Фронтенд-разработка (web)

Цель курса —
Познакомить студентов с таким направлением ИТ-разработки, как Frontend. Мы даём студентам базовые и продвинутые навыки Frontend-разработки, а также знакомим их со всеми необходимыми принципами, правилами и подходами к разработке современных web-приложений. В результате завершения курса студенты получают все необходимые знания для успешного прохождения собеседования на должность начинающего Frontend-разработчика в любой крупной ИТ-компании

Описание
Существует распространённое мнение о том, что Frontend — это всего лишь вёрстка и больше ничего. Но это большое заблуждение, потому что Frontend — это одна из крупнейших и самая драйвовая и динамичная сфера ИТ.

В течение семестра студенты, разбившись на группы по 2–4 человека, выполняют семестровые проекты. Семестровый проект — это полноценное web-приложение, которое представляет собой мультиплеерную игру, работающую в браузере. Наш курс тесно интегрирован с курсами "Разработка веб-сервисов на Golang" и "Проектирование интерфейсов". Это значит, что один и тот же семестровый проект команды выполняют как на курсе Фронтенда, так и на курсе Golang, так и на курсе интерфейсов. У нас разрабатывается клиентская часть web-приложения, на курсе Golang — серверная.

В курсе делается очень большой упор на изучение JavaScript и программирование на нём. JavaScript — это основной инструмент Frontend-разработчика, и поэтому так важно знать его особенности, нюансы и "подводные камни". Мы рассказываем про последние стандарты ECMAScript, уделяем много времени обсуждению тонкостей языка и учим писать на нём хорошо, знакомим студентов с Node.js. Так же в курсе освещается TypeScript, на нём разрешено разрабатывать семестровые проекты.

Для успешного прохождения курса требуется подготовка: во-первых, студенты должны на базовом уровне знать JavaScript и иметь хотя бы минимальный опыт программирования на нём. Кроме этого студенты должны быть знакомы с HTML и CSS: необходимо уметь верстать. Ещё одно обязательное требование — умение работать с git.
Подробнее
Чему научитесь
В процессе обучения студенты получают теоретические знания о протоколах HTTP/1.1, HTTP/2 и WebSocket, о том как работают браузеры, как десктопные, так и мобильные, о клиент-серверной архитектуре и о архитектуре современных web-приложений.

Теория подкрепляется практикой: в процессе разработки семестровых проектов студенты получают навыки программирования на JavaScript и TypeScript, навыки работы с браузерами (работа с DOM, шаблонизация, работа с сетью, программирование графики и разработка игр в браузере), навыки вёрстки (использование стандартов HTML5 и CSS3, навыки организации продуктивной работы со стилями, использование препроцессоров CSS, CSS-in-JS), навыки работы с git, nginx, docker, навыки использования Node.js.

Мы рассказываем студентам о том, как делать расширяемые и тестируемые web-приложения, как оптимизировать производительность web-приложений, следить за безопасностью пользователей, как улучшать User Experience от использования вашего продукта и, что не менее важно, Developer Experience от разработки вашего продукта, знакомим с практиками DevOps.

В середине семестра мы проводим хакатон в офисе компании Mail.Ru Group. На нём студенты целый день разрабатывают фичу для своих семстровых проектов.
Подробнее