● Занятия проходят 2 раза в неделю в будни с 18:00 МСК● На лекции и практические задания понадобится около 10 часовв неделю● Записи вебинаров, лекции, тесты, тренажёр, презентации и другие полезные материалы хранятся в личном кабинете
Основы Java
Познакомитесь с базой программирования на Java, научитесь создавать свои типы и проектировать программы. В домашних заданиях напишете несколько консольных приложений, включая приложение наполнения корзины товаров в магазине.
- Введение в программирование на Java
- Структура программы
- Условные операторы и циклы
- Типы данных в Java: примитивы
- Типы данных в Java: объекты
-
-- Массивы одномерные
- Массивы многомерные
- Разбор вопросов по занятиям
- Проекты:
-- Планировщик продуктовой корзиныНалоговый помощник для индивидуального предпринимателя
Объектно-ориентированное программирование в Java
Глубже познакомитесь с системой типов и объектно-ориентированным программированием, расширите инструментарий для работы с наборами данных. Попрактикуетесь писать консольные программы и разрабатывать сложные типы данных, включая программу хранения телефонных контактов.
- Модификаторы доступа, наследование
- Полиморфизм
- Абстракции и интерфейсы
- Исключения, Stacktrace
- Разбор вопросов по занятиям
- Generics в коллекциях и методах
- Коллекции List
- Коллекции HashSet и HashMap
- Коллекции TreeMap и TreeSet
- Коллекции Queue
- Разбор вопросов по занятиям
- Проекты:
-- Программа для проверки надёжности пароляСервис расчёта стоимости доставки
- Курсовой проект: Конвертер в текстовую графику
Git — система контроля версий
Научитесь работать с системой Git и с сервисом GitHub. Опубликуете свои домашние работы и уже в процессе обучения сформируете первое портфолио
- Знакомство с системой контроля версий Git
- Работа с локальным репозиторием в Git
- Работа с удалённым репозиторием через GitHub
- Командная работа в Git и GitHub. Часть 1
- Командная работа в Git и GitHub. Часть 2
- Вебинар с ответами на вопросы
Java Core
Java Core — фундаментальные основы языка, которых достаточно для дальнейшей стажировки или работы на junior-специальности. Вы изучите работу с автотестами, что поможет вам проверять свои проекты на ошибки. Начнёте работать с сетями, изучите сетевые протоколы UPD, TCP/HTTP, OSI. Сможете читать файлы разных форматов: txt, json, xml. Научитесь разрабатывать клиент-серверные приложения.Будете работать над первым крупным проектом: чатботом для Telegram.
- Лямбда-выражения и функциональные интерфейсы
- Stream API. Потоки, повторные вызовы, основные методы
- Потоки ввода-вывода. Работа с файлами. Сериализация
- Сборка проектов. Maven и Gradle
- Работа с файлами CSV, XML, JSON
- Тестирование кода и Unit-тесты
- Mockito. Мокирование вызовов, Mock
- Основы работы с сетью. Модель OSI, TCP, UDP
- Протокол HTTP. Вызов удалённых серверов
- JVM. Организация памяти, сборщики мусора, VisualVM
Шаблоны проектирования
Узнаете о разных шаблонах проектирования, научитесь их использовать и писать красивый и понятный код. Такие шаблоны позволяют быстрее решать задачи, используя лучшие решения, а также быстрее понимать чужой код. Знания пригодятся вам во время работы в крупной команде разработки.
- Порождающие шаблоны: Builder, Singleton, Factory Method, Abstract Factory, Prototype
- Структурные шаблоны: Proxy, Decorator, Adapter
- Поведенческие шаблоны: Command, Iterator, Observer, Chain of Responsibility
- Свойства хорошего кода и принцип SOLID
Многопоточное и функциональное программирование
Изучите продвинутые техники программирования, которые позволяют оптимизировать и ускорить работу программы. Освоите техники параллельного программирования, функционального программирования, синхронный и асинхронный вызов (blocking and non-blocking IO).
- Многопоточное (параллельное) программирование. Создание и запуск потоков
- Работа с синхронизацией
- Переменные многопоточной программы
- Коллекции для параллельной (конкурирующей) работы
- Клиент-серверное взаимодействие. Blocking и Non-Blocking IO
- Функциональное программирование
- Методология разработки. TDD, DDD
- Курсовой проект: Сетевой чат
Web, Spring & Spring MVC
Spring — самый популярный фреймворк для работы с Java. Его изучение на курсе будет идти постепенно.Это первый из трёх модулей, посвященных изучению Spring. Здесь вы научитесь работать с Spring MVC, контейнерами Servlet, протоколами HTTP и REST API.
- HTTP и современный Web
- Формы и форматы передачи данных
- JavaScript, AJAX, REST, JSON, CORS
- Servlets Containers
- Dependency Lookup, Dependency Injection, IoC, Application Context
- Spring Web MVC
Spring Boot, deployment и инфраструктура
Продолжите углублять свои знания о работе с фреймворком Spring. Узнаете, из чего состоит Spring Boot и как с ним работать, научитесь разворачивать Spring Boot приложения в Linux, а также упаковывать Spring Boot приложения в Docker-контейнеры.
- Spring Boot: назначение и внутреннее устройство
- REST
- Виртуализация и основы работы
- Разворачивание Spring Boot приложений
- Основы работы с Docker
- TestContainers, Kubernetes, облака
- Курсовой проект: Сервис перевода денег
Spring: хранение данных и организация безопасности
Научитесь работать с реляционными базами данных, освоите JPA и Spring Data JPA и подключите в свои приложения Spring Security.
- SQL: основы работы, DDL, DML
- SQL: вложенные подзапросы, JOIN'ы, агрегирующие запросы
- JDBC API, JdbcTemplate, NamedParametersJdbcTemplate
- ORM, Hibernate, Entity Lifecycle, Embedding, Relationships
- ORM, Hibernate, Entity Lifecycle, Embedding, Relationships
- Spring JPA Repositories, JPQL
- Безопасность в веб-приложениях, Spring Security
- Аутентификация и авторизация