Вводный модуль
Вы узнаете, где применяется язык Java и как выглядит программный код. Установите среду разработки и напишете первое консольное приложение.
Синтаксис языка
Познакомитесь с основными переменными в языке Java, научитесь использовать операторы сравнения и циклы.
Система контроля версий Git
Научитесь работать с Git: сможете сравнивать, менять и откатывать разные версии кода, научитесь создавать ветки и работать над одним проектом в команде.
Объекты и классы. Часть 1. Методы и классы
Узнаете, что такое объекты, классы и методы в Java. Поймёте, как они работают, научитесь создавать их и использовать.
Объекты и классы. Часть 2. Инкапсуляция
Познакомитесь с принципом инкапсуляции. Узнаете о POJO-классах, геттерах и сеттерах, иммутабельности и копировании объектов.
Объекты и классы. Часть 3. Static, константы и enum
Узнаете, как работают методы и переменные в программном коде. Научитесь создавать константы и поймёте, для чего они нужны.
Примитивы
Поймёте, какими бывают примитивы, чем они схожи с объектами и чем от них отличаются.
Числа и даты
Познакомитесь с различными операциями, которые можно производить над числами: арифметическими, операциями с присвоением, инкрементом и декрементом, а также операциями сравнения.
Строки
Научитесь задавать строки и проверять их длину. Узнаете, как сравнивать строки между собой и объединять несколько в одну.
Массивы и коллекции
Научитесь работать с массивами и их элементами. Сможете искать элементы с помощью HashMap и TreeMap.
Наследование и полиморфизм
Узнаете, как наследовать классы в Java, и научитесь работать с интерфейсами Comparable, Comparator, Map и Set.
Особенности ООП в Java
Изучите объектно-ориентированное программирование в Java и новые методы разработки. Познакомитесь с системой сборки и репозиторием Maven.
Исключения, отладка, тестирование и логирование
Вы узнаете, как возникают исключения и как их «поймать». Научитесь тестировать и отлаживать приложения, писать логи с информацией о приложениях.
Работа с файлами и сетью
Поймёте, как читать файлы с помощью FileInputStream, BufferedReader и класса Files. Научитесь работать с файлами типа HTML и JSON.
Работа с MySQL в Java
Научитесь работать с базой данных MySQL, изменять данные и обращаться к ней с различными запросами.
Многопоточность
Узнаете, что такое многопоточность и как работать с ней в интерфейсе Runnable. Поймёте, как настроить взаимодействие потоков, научитесь блокировать, приостанавливать и прерывать потоки данных.
Протокол HTTP
Познакомитесь с протоколом HTTP, изучите заголовки, тело запроса и ответа. Научитесь работать с PUT, DELETE, OPTIONS, GET- и POST-запросами.
Разработка веб-приложений
Разработаете первое приложение на Spring Boot с созданием контроллера и подключением к базе данных.
Нереляционные базы данных и очереди
Познакомитесь с Redis и научитесь структурам данных. Изучите возможности и агрегацию данных в MongoDB.
Производительность и оптимизация
Узнаете, какие ресурсы нужно экономить для оптимизации приложения. Изучите два способа облегчения приложений и научитесь индексировать и оптимизировать запросы.
Разработка desktop-приложений
Научитесь разрабатывать удобные и функциональные приложения для рабочего стола.
Алгоритмы
Узнаете, зачем нужны алгоритмы, и научитесь работать с алгоритмами бинарного поиска, сортировки, поиска подстроки и другими.
Структуры данных
Изучите хеш-таблицы, очередь и стек, связанные таблицы, бинарное и суффиксное дерево.
Распределённые хранилища и вычисления
Вы узнаете, что такое большие данные, и научитесь работать с файловой системой HDFS. Познакомитесь с фреймворком Spark и научитесь запускать в нём собственные приложения.
Паттерны проектирования
Узнаете, что такое паттерны проектирования, и познакомитесь с Singleton, Factory, Decorator, Adapter и другими паттернами.