Курс «Java-разработчик». OTUS
Все, что нужно знать о современной Java разработке
О стоимости
- Полная стоимость: 205 700 ₽
- Стоимость в рассрочку: от 20 570 ₽/мес
Для кого курс
- Специализация подойдет всем желающим, кто хочет освоить новую профессию Java-разработчика с нуля
- Подойдет тем, кто еще не определился с языком программирования
- Для тех, кто работает сисадмином, тестировщиком, аналитиком или специалистом технической поддержки и хочет стать частью команды разработчиков
- Для тех, кто хочет с нуля освоить программирование для решения собственных задач
Программа курса
1 ступень
Основы языка Java
Тема 1: Обзор курса. Введение в программирование на Java
Тема 2: Основы работы в GIT
Тема 3: Основы языка Java. Часть 1
Тема 4: Разбор практических примеров
Тема 5: Основы языка Java. Часть 2
Тема 6: Разбор практических примеров
Тема 7: Основы языка Java. Часть 3
Тема 8: Практический консольный проект
Тема 9: Консультация по ДЗ
Объектно-ориентированное программирование
Тема 1: ООП. Часть 1. Введение в ООП
Тема 2: ООП. Часть 2
Тема 3: Практика ООП. Работа со строками.
Тема 4: ООП. Часть 3
Стандартная библиотека языка Java
Тема 1: Исключения
Тема 2: Коллекции. Часть 1
Тема 3: Коллекции. Часть 2
Тема 4: Разбор алгоритмов
Тема 5: Java IO. Часть 1
Тема 6: Консультация по ДЗ
Тема 7: Работа с сетью
Тема 8: Основы многопоточности. Часть 1
Тема 9: Консольный сетевой чат. Часть 1
Тема 10: Консольный сетевой чат. Часть 2
Тема 11: Реляционные базы данных, SQL
Тема 12: JDBC
Тема 13: Консультация по ДЗ
Тема 14: Обобщения
Тема 15: Java IO. Часть 2
Тема 16: Основы многопоточности. Часть 2
Тема 17: Основы тестирования и логирования
Тема 18: Основы Web. Пишем простой http клиент и сервер. Часть 1
Тема 19: Основы Web. Пишем простой http клиент и сервер. Часть 2
Проектная работа
Заключительный месяц курса посвящен проектной работе. Свой проект — это то, что интересно писать слушателю и можно создать на основе знаний, полученных на курсе. В процессе написания по проекту можно получить консультации преподавателей.
Тема 1: Консультация по ДЗ и проектной работе
Тема 2: Защита проектной работы
Тема 3: Карьерная консультация
Тема 4: Итоговое занятие
2 ступень
Язык и платформа Java
В этом модуле изучаются фундаментальные основы работы Java Virtual Machine (JVM) и “тонкие” аспекты языка Java. В результате обучения студент сможет достаточно подробно рассказать как выполняется Java программа и что проиходит “под капотом”.
Тема 1: Подготовка к курсу
Тема 2: Дополнение к gradle, история изменения языка
Тема 3: QA и тестирование
Тема 4: Контейнеры и алгоритмы
Тема 5: Инструменты для преобразования контейнеров, unsafe, jmh
Тема 6: Аннотации
Тема 7: Lombok
Тема 8: Сборщик мусора
Тема 9: Java в Docker-е
Тема 10: Байт код, class-loader, инструментация, asm
Тема 11: Функциональное программирование в Java
Проектирование
В этом модуле рассматриваются принципы проектирования SOLID и паттерны проектирования GOF. В ходе выполнения Домашних Работ студент сможет на практике научиться применять паттерны проектирования и их комбинации.
Тема 1: Концепты проектирования ООП
Тема 2: Creational patterns
Тема 3: Behavioral patterns
Тема 4: Structural patterns
Работа с окружением
Этот блок посвящен вопросам взаимодействия java-приложения с внешним миром. Рассматриваются операции с файловой системой, механизмы сериализации/десериализации объектов. Большое внимание уделяется работе с реляционными базами данных. Подробно изучаются jdbc и Hibernate. При этом не забываем про noSQL. В качестве примера работы с noSQL рассматривается реактивное взаимодействие с MongoDb. Особое внимание уделяется разработке Web-серверов. Изучаем TomCat как пример контейнера war-приложений и Jetty – как встроенный web-сервер, учимся применять технологию web-сокетов. В качестве примера Dependency Injection изучаем Spring и Spring Boot.
Тема 1: Сериализация
Тема 2: NIO. Логирование
Тема 3: JDBC
Тема 4: Общие вопросы работы с СУБД, архитектура РСУБД
Тема 5: Hibernate
Тема 6: JPQL
Тема 7: Типы ссылок. Кэширование
Тема 8: No SQ
Тема 9: Web сервер
Spring
Модуль посвящен изучению основ Spring Framework. В этом модуле разберемся в принципах DI, IoC, поймем как это используется в Spring. Изучим как на технологиях Spring-а создать Web-приложение с базой данных.
Тема 1: Dependency injection
Тема 2: Spring Boot. Spring MVC
Тема 3: Asynchronous Web applications
Тема 4: Spring Data Jdbc
Многопоточность
Этот модуль посвящен многопоточности в разных ее проявлениях. Начинаем изучение с разбора Java Memory Model, какова цель ее создания, что решается и как это использовать. Заканчиваем Completable Future. Начинаем разрабатывать многопоточные приложения и переходим к разработке многопроцессорных приложений – приложения, отдельные части которых работают на разных хостах. Чтобы понять как объединить такие приложения, изучаем блокирующие и неблокирующие сокеты (NIO).
Тема 1: Thread
Тема 2: JMM
Тема 3: Executors
Тема 4: Потокобезопасные коллекции
Тема 5: Многопроцессные приложения
Тема 6: Применение RabbitMQ
Тема 7: NIO
Тема 8: Netty
Тема 9: Реактивное программирование. Spring Webflux
Тема 10: Применение Kafka
Проектная работа
Заключительный месяц курса посвящен проектной работе. Свой проект – это то, что интересно писать студенту. То, что можно создать на основе знаний, полученных на курсе. При этом не обязательно закончить его за месяц, однако к защите надо разработать действующий прототип, который пояснит идею проекта. В процессе написания по проекту можно получить консультации преподавателей. Для достижения результата работа над проектом организуется в виде недельных итераций. Проект должен стать примером кода, который можно показывать потенциальным работодателям. Студент может самостоятельно выбрать технологии из числа изученных на курсе и/или использовать что-то дополнительно. Примеры тем: – телеграм-бот – распределенный кэш – web сервер (разберите протокол) – socket сервер на NIO (как netty) – свой ORM – кэш для hibernate
Тема 1: Основы CI/CD
Тема 2: Знакомство с Kubernetes
Тема 3: Защита проектных работ
3 ступень
Введение
В данном модуле будут рассматриваться понятия и функциональности, на которых базируются все проекты Spring: Inversion of Control (Spring Context), аспектное программирование (Spring AOP), Spring Expression Language (SpEL). Слушатели смогут правильно и эффективно конфигурировать Spring-приложения различными средствами и способами, а также будет рассмотрена “чёрная магия” Spring Boot – автоконфигурации.
Тема 1: Введение в Spring Framework
Тема 2: Конфигурирование Spring-приложений
Тема 3: ЛикБез – Основы архитектуры ПО
Тема 4: AOP, Spring AOP
Тема 5: “Чёрная магия” Spring Boot
Тема 6: Продвинутая конфигурация (часть 1) – Scopes, Lifecycle
Тема 7: Продвинутая конфигурация (часть 2) – Conditionals, Events, тестирование
Тема 8: Разбор домашних заданий, QnA
Работа с базами данных
В данном модуле будет рассмотрены проекты Spring для работы как с реляционными базами данных, так и с NoSQL базами данных. Spring JDBC, Spring ORM, Spring Data Repositories и, разумеется, работа с транзакциями. Помимо проектов Spring, участники смогут разбираться в особенностях различных баз данных, а также использовать специальные embedded-базы даных.
Тема 1: DAO на Spring JDBC
Тема 2: Основы ORM, JPA, Hibernate как провайдер JPA
Тема 3: JPQL, Spring ORM, DAO на основе Spring ORM + JPA
Тема 4: Транзакции, Spring Tx
Тема 5: “Белая магия” Spring Data: Spring Data JPA
Тема 6: SQL и NoSQL базы данных
Тема 7: Spring Data для подключения к нереляционным БД
Тема 8: Разбор домашних заданий, QnA
Разработка Web-приложений
В данном модуле будут рассматриваться возможности Spring для разработки Web-приложений: Spring MVC и современный Reactive-ориентированный Spring WebFlux. Разумеется, будут рассмотрены популярные технологии View и разработка современных SPA-приложений. И, конечно, различные “плюшки” Spring Boot, максимально ускоряющие разработку Web-приложений.
Тема 1: Введение в Spring MVC, Spring MVC на Spring Boot
Тема 2: Spring MVC View
Тема 3: Современные приложения на Spring MVC
Тема 4: Reactor. Введение в реактивное программирование
Тема 5: Spring WebFlux
“Около” и “Дзен”
В данном модуле рассматриваются продвинутые проекты Spring, решающие специфичные задачи, связанные с авторизацией и аутентификацией, размещением сервисов в облаках и работой с БД, а также облегчающие создание больших монолитов и систем на микросервисной архитектуре.
Тема 1: Вебинар-собеседование
Тема 2: Spring Security: Архитектура
Тема 3: Spring Security: Механизмы аутентификации
Тема 4: Spring Security: Авторизация
Тема 5: Spring Security: ACL
Тема 6: Spring Batch
Тема 7: Монолиты vs. Microservices Round 1, Messaging, Enterprise Integration Patterns (EIP)
Тема 8: Spring Integration: Messages и Channels
Тема 9: Spring Integration: Endpoints и Flow Components
Тема 10: Монолиты vs. Microservices (Round 2), Spring Boot Actuator – must have в микросервисах
Тема 11: REST-клиенты, SOAP, Spring WebServices и клиенты к ним
Тема 12: Docker, оркестрация
Тема 13: Знакомство с Kubernetes
Тема 14: Облака, Mongo DB Atlas cluster, Spring Cloud
Тема 15: Spring Cloud Config, Spring Cloud Bus, Spring Cloud Service Discovery с Eureka, Ribbon и Feign
Тема 16: Zuul, Hystrix Circuit Breaker, Sleuth, Zipkin, Hystrix Dashboard, Secure Configuration Properties
Тема 17: Обзор дополнительных технологий Spring, быстрая разработка приложений
Тема 18: Применение RabbitMQ
Тема 19: Применение Kafka
Тема 20: Комплексный пример использования WebFlux и Kafka
Проектная работа
Заключительный месяц курса посвящен проектной работе. Свой проект – это то, что интересно писать студенту. То, что можно создать на основе знаний, полученных на курсе. При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей. Проект должен стать примером кода, который можно показывать потенциальным работодателям. Проект должен быть сделан на основе Spring Boot, включать работу с DB с ипользованием Spring Data репозиториев и/или Spring JDBC. Проект должен иметь UI построенный на современных принципах разработки Web-приложений (AJAX и/или SPA). Приложение должно содержать механизмы аутентификации и авторизации с использованием Spring Security Асинхронные части могут быть реализованы с помощью Spring Integration. Пектные обработки, утилиты поддержки должны быть реализованы с помощью Spring Batch + Spring Shell. Проект должен быть cloud-ready. Примеры тем: – Онлайн-библиотека – Блог с админкой/регистрацией пользователей
Тема 1: Выбор темы и организация проектной работы
Тема 2: Защита проектных работ №1
Тема 3: Защита проектных работ №2
Диплом о профессиональной переподготовке
OTUS осуществляет лицензированную образовательную деятельность.
В конце прохождения специализации вы получите сертификат OTUS и официальный диплом о получении новой специальности