Хабрахабр

Курс «Разработка на Java» от Mail.Ru Group на канале Технострим

Уже несколько семестров подряд он читается в рамках образовательного проекта Техносфера, реализуемого компанией Mail. Этой весной мы выложили на канале Технострим запись курса по Java. М. Ru Group совместно с МГУ им. Ломоносова. В. Авторы не углубляются в детали синтаксиса, а сразу берутся за практические задачи: разработку игры с консольным интерфейсом и функционального чата. Курс включает все темы, необходимые начинающему разработчику в мире Java. В конце курса разбираются частые вопросы из собеседований на позиции junior и middle Java-developer.

Записи лекций и материалы курса бесплатны и доступны всем желающим.

Большинство домашних заданий можно выполнить и проверить в репозитории курса.

Для кого

Предполагается, что слушатели не сталкивались с Java, но знакомы с любым современным языком программирования (JS/Python/C#/C/C++) и основами ООП.

Длительность

Курс состоит из 3 частей, включает 13 лекций и 1 хакатон. Продолжительность лекций — 1-2 часа.

Содержание курса

Часть 1. Введение в разработку на Java

Лекция 1. Java intro 1
На первой лекции вы бегло познакомитесь с синтаксисом языка и разберётесь с HelloWorld. Курс построен вокруг Github, поэтому на первом же занятии вы научитесь работать с Git, собирать проект с помощью gradle и делать pull request на Github.

Java intro 2
Знакомство с объектной моделью языка. Лекция 2.

Generics & collections
Знакомство с коллекциями и исключениями. Лекция 3.

Тем, кто проходит курс на Youtube, авторы советуют обязательно выполнить это задание, чтобы разобраться с материалом на практике. ДЗ
По итогу трех лекций вы получите задание: разработать небольшую игру с консольным интерфейсом (bulls and cows). Делать руками — это не видео на Youtube смотреть 😉

Часть 2. Web-сервисы

Java — промышленный язык, который доминирует в сфере больших веб-приложений. Во второй части вы научитесь делать web-сервисы.

Web basics
Вы изучите работу HTTP и узнаете, как делать HTTP-запросы из Curl и Java. Лекция 4.

Spring, Threads, Annotations
Знакомство с популярным фреймворком Spring, который упрощает разработку веб-приложений. Лекция 5.

За ограниченное время нужно разработать чат и сделать его как можно более функциональным. Чтобы студенты попрактиковались в работе со Spring, после пятой лекции пройдёт командный хакатон. Если будете смотреть курс на Youtube, можете самостоятельно сделать чат и поэкспериментировать с ним.

Java + DB, Hibernate
Вы научитесь работать с базами данных. Лекции 6-7. Тем, кто проходит курс онлайн, мы рекомендуем поднять базы локально или использовать in-memory базы данных (H2). В очном курсе мы подняли базы данных для студентов на AWS.

Часть 3. Игра

Вы получите задание по разработке клиент-серверной игры Bomberman. Клиент игры на JS, созданный на основе проекта Мэта Скалы, лежит в отдельном репозитории.

Формальное описание взаимодействия сервисов игры можно найти здесь, а вот наглядная схема.

Full-duplex протокол WebSocket
Для общения клиента и сервера многопользовательской игры гораздо лучше, чем HTTP, подходит full-duplex протокол WebSocket. Лекция 8. К сожалению, на Youtube нет видео этой лекции, но все материалы доступны на Github. Вы научитесь работать с ним и переделаете на WebSocket свой чат, написанный ранее на основе HTTP.

Game architecture
Вы разберётесь в структуре игры и механизме взаимодействия сервисов. Лекция 9.

Часть 4. Продвинутые темы

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

Game threads, Practical concurrency
В лекции 10 на примерах рассматриваются опасности многопоточной разработки, а в лекции 11 — способы их обхода. Лекции 10-11. Обратите внимание на поточную модель игрового сервиса.

Garbage collection
Вы узнаете, как устроен heap и как работает сборка мусора. Лекция 12. При этом для оценки лейаута объектов используются знания об устройстве структур данных.

Interview questions
Последняя лекция курса посвящена разбору самых популярных вопросов на собеседованиях по Java (junior-middle разработчик). Лекция 13.

Общая информация о курсе

Все материалы курса: https://github.com/rybalkinsd/atom

Клиент игры Bomberman: https://github.com/rybalkinsd/atom-bomberman-frontend

Канал курса в Telegram — здесь можно получить ответы на все вопросы, связанные с курсом.

Сделайте pull request в ветку лекции. Обратите внимание, что в конце некоторых лекций есть описание домашнего задания, а в коде лекций есть тесты. Если тесты на travis горят зеленым — вы выполнили задание верно.

Тем не менее, вы можете свободно делать pull request’ы в проект и смотреть, успешно ли проходятся тесты на travis. ДЗ студентов, проходящих курс онлайн, не проверяются. Авторы очень ценят обратную связь, особенно в виде pull request’ов с предложениями и исправлениями. Кроме того, любые вопросы по курсу вы можете задать в чате.

Авторы


Александр Помосов, Senior Engineer в Alibaba


Сергей Рыбалкин, Principal Engineer в Alibaba

Пообщаться с другими участниками и задать вопросы преподавателям можно в комментариях под плейлистом курса и в чате в Telegram. Напомним: курс доступен всем желающим на нашем образовательном канале Технострим.

Сделайте свой проект, поэкспериментируйте с ним, и вы получите не только опыт, но и много удовольствия! Программирование — это инженерия, гораздо более открытая к экспериментам, чем другие области инженерии.

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»