Описание
Это фундаментальная программа, с примерами и предоставлением кодовой базы, и занятиями с преподавателем, в рамках которой вы сможете вместе разобрать в деталях практические задачи.
Программа состоит из 7 курсов, содержащих теорию, видео-разборы и задачи. По окончанию каждого курса вы будете отрабатывать навыки на онлайн встречах с преподавателем.
Обучение проходит в смешанном формате:
-
Самостоятельное изучение материалов курсов в системе дистанционного обучения (СДО). По окончании теоретической части каждого курса программы участникам будет предложен тест для проверки и подтверждения уровня знаний.
-
Практические сессии с преподавателем для обсуждения вопросов по практической части курса и реализации задач.
Баланс теории и практики - 40\60, что позволяет сосредоточиться на практических аспектах и сформировать востребованные навыки у выпускников программы.
1. Курс: ООП и функциональная парадигма
Специфические особенности внутренних классов, статических компонентов, а также обобщенных типов (Generics) и коллекций из Java Collections Framework, которые, являясь обязательными элементами подготовки любого Java-разработчика, служат фундаментом данного учебного блока, чье внимание сосредоточено на ФП, т.е. функциональном программировании: современной парадигме решения вычислительных задач, внедренной в 8-й версии Java.
Благодаря ФП повышается не только производительность приложений, но и качество создаваемого кода, т.к. облегчается его написание, модификация и последующее сопровождение. В учебных модулях данного блока прослежен генезис, связи и различия между ФП и ООП, подробно представлены встроенные функциональные интерфейсы, на детальном уровне и со множеством примеров рассказано о лямбда-выражениях во всех их формах, т.е. не только канонических, но и сокращенных, в т.ч. через ссылки на методы.
Упор при освоении Stream API сделан на решении заданий лабораторного практикума, которые охватывают все принципиально важные аспекты ФП: от базовых операций типа filter/map/reduce до collect-агрегирования и конвейерных интерфейсов со специализацией по примитивам. Предпоследний модуль посвящен разбору наиболее существенных нововведений, осуществленных после выхода JDK8 (до 11-го релиза включительно). В заключительном модуле блока рассмотрены широко востребованные шаблоны проектирования, не вошедшие в учебный материал курса базовой подготовки. Следует также отметить, что данный блок почти в полном объеме включен в тематику сертификационного экзамена.
2. Курс: Spring Framework
Данный курс является основополагающим для работы со Spring. Он познакомит вас с основами Spring и Spring Boot - основного фреймворка для разработки бизнес-приложений на Java. Начинается он с описания концепции внедрения зависимостей. Далее мы поговорим о видах бинов и способах их создания и конфигурирования, рассмотрим области видимости бинов, настройку бинов с помощью application.properties, использование профилей, различные аннотации, используемые для внедрения бинов и конфигурирования приложения. Данный курс подойдет для подготовки к сертификационному экзамену по теме Spring Boot
3. Курс: Работа с базами данных
Данный курс познакомит вас с очень важной темой: работой с реляционными Базами Данных из Java/Spring приложений. Начинается он с базовых понятий баз данных, таких как отношения, первичные и внешние ключи, язык SQL. Далее рассматривается работа с Базами Данных из Java.
Мы познакомимся с подключением и настройкой драйверов баз данных. Далее изучим мэппинг объектно-ориентированной модели на таблицы БД, поймем, почему он необходим, в чем его преимущества и сложности применения, включая знаменитую проблему N+1. Поговорим про спецификацию JPA, ее отличия от Hibernate.
Завершается этот блок самым мощным на сегодня инструментом для работы с БД - Spring Data. Вы узнаете, как работать с базами данных из Spring приложений, используя доменную модель и реляционную базу данных. Данный курс подойдет для подготовки к сертификационному экзамену по теме Основы БД, JPA/Hibernate, Spring Data.
4. Курс: Архитектура REST
В этом курсе изучается архитектура REST. Вы познакомитесь с принципами проектирования REST API, моделью зрелости REST-сервисов. Курс начинается с введения в протокол HTTP, его методы и часто используемые заголовки. Далее рассматривается реализация REST-сервисов с помощью Spring контроллеров.
Затем вы познакомитесь с уровнями зрелости REST-сервисов, включая самодокументирующиеся сервисы с применением HATEOAS. Финальная часть курса затрагивает инструменты Swagger и спецификацию OpenAPI, которые стали стандартом де-факто для документирования REST API. Данный курс подойдет для подготовки к сертификационному экзамену по теме Spring REST.
5. Курс: Вспомогательные инструменты
Данный учебный блок представляет собой комплект модулей, каждый из которых посвящен конкретному инструменту, входящему в тулкит современного Java-разработчика. В разделе "Сборщики проектов" разобраны продвинутые возможности Maven / Gradle, не вошедшие в рамки курса базовой подготовки.
Docker-модуль посвящен практическим приемам контейнеризации приложений, что позволяет запускать их на любой платформе, не требуя заранее создавать специфическое окружение. В разделе CI/CD рассматривается технология автоматизации процессов интеграции нового кода с уже развернутым приложением на примере популярнейшего Jenkins.
Что касается фреймворка Lombok, без него уже трудно представить себе труд Java-разработчика, поскольку этот инструмент принимает на себя времязатратные операции по созданию необходимого, но все-таки шаблонного кода, что не только упрощает его создание и чтение, но и ведет к снижению процента ошибок, а значит, и к повышению производительности труда разработчика в целом. Отметим, что раздел о сборщиках проектов входит в тематику сертификационного экзамена.
6. Курс: Продвинутые аспекты применения Java
Данный блок представляет собой комплект семантически автономных модулей. Так, в первом из них рассмотрены продвинутые аспекты механизма обработки исключений, в частности, конструкции multicatch, передача внешних ресурсов в try-блок, особенности финализации, а также тонкости проверки инвариантов модели через assert'ы.
Модуль про дженерики и коллекции объясняет особенности применения ключевых слов extends/super, интерфейсных пересечений и ряда специфических структур данных, таких как PriorityQueue, BlockingQueue и др.
Заключительный модуль блока посвящен основополагающим концепциям. лежащим в основе работы значительного числа классов и интерфейсов в Java Collections Framework. Отметим также, что весь материал данного блока входит в тематику сертификационного экзамена.
7. Курс: Стандартная библиотека Java II
Блок объясняет различные аспекты создания многопоточных приложений, от фундаментальных механизмов на базе класса Thread и интерфейса Runnable вплоть до динамически подгружаемых пулов подпроцессов в связке с объектами ExecutorService; также рассмотрены готовые библиотечные решения для целого ряда более специализированных, но в то же время широко распространенных задач (синхронизаторы, потокозащищенные прокси-коллекции, атомарные классы и т.д.).В модуле по локализации разобраны вопросы создания интернационализируемых (I18N) приложений, в т.ч. ресурсов с привязкой к социокультурным и экономическим особенностям целевого региона. Date/Time API, реализованный в Java 8, позволил устранить целый комплекс проблем, присущих старым, мутирующим хроноклассам, и переход на этот новый механизм является одним из канонических приемов модернизации кодовой базы типичного промышленного приложения.
В заключительном модуле рассмотрены современные приемы работы с файловой подсистемой ввода-вывода, реализованные в 7-ом релизе Java (NIO.2); отметим, что владение этой тематикой является обязательной предпосылкой к изучению асинхронной Java, которая тесно связана с парадигмой т. н. реактивного программирования, рассматриваемого на дальнейших этапах программы профподготовки современного Java-разработчика.
Материал данного учебного блока полностью входит в тематику сертификационного экзамена.Java-разработчики с опытом
от 2 лет, разработчики на С-подобных языках с опытом от 3 лет, тестировщики с уверенным знанием Java и с опытом разработки от трех лет.
удостоверение о повышении квалификации государственного образца
Целевая аудитория
Предварительная подготовка
Разбираемые темы
-
1. Курс: ООП и функциональная парадигма
- Углубленный дизайн классов
- Дженерики и коллекции (Часть I)
- Лямбда-выражения и функциональные интерфейсы. Stream API
- Шаблоны проектирования
- Проект и живая практика с преподавателем
Итого 38 часов: теория – 12 ч. (32%), практика – 26 ч. (68%) -
2. Курс: Spring Framework
- Основы Spring
- Spring Boot
- Проект и живая практика с преподавателем
Итого 30 часов: теория – 8 ч. (27%), практика – 22 ч. (73%) -
3. Курс: работа с базами данных
- Основы работы с базами данных
- Основы JPA. Hibernate
- Spring Data
- Проект и живая практика с преподавателем
Итого 34 часа: теория – 12 ч. (35%), практика – 22 ч. (65%) -
4. Курс: архитектура REST
- HTTP, REST, принципы проектирования REST API
- Основы Spring REST
- Richardson Maturity Model
- Swagger/OpenAPI
- Проект и живая практика с преподавателем
Итого 34 часа: теория – 12 ч. (35%), практика – 22 ч. (65%) -
5. Курс: вспомогательные инструменты Java-разработчика
- Сборщики проектов: Maven/Gradle
- Docker
- CI/CD
- Lombok
- Проект и живая практика с преподавателем
Итого 34 часа: теория – 12 ч. (35%), практика – 22 ч. (65%) -
6. Курс: продвинутые аспекты применения Java
- Инварианты и продвинутая обработка исключений
- Generics и коллекции
- Алгоритмы и структуры данных
- Проект и живая практика с преподавателем
Итого 38 часов: теория – 12 ч. (32%), практика – 26 ч. (68%) -
7. Курс: стандартная библиотека Java II
- Многопоточность
- Локализация
- Java 8 Date/Time API
- NIO - операции с файлами
- Проект и живая практика с преподавателем
Итого 42 часа: теория – 16 ч. (38%), практика – 26 ч. (62%) -
8.Бонус-курс: Разработка на Java и Spring с помощью Chat GPT: от составления ТЗ до модульного тестирования
На курсе вы научитесь, как с помощью Chat GPT можно разработать приложение Spring промышленного уровня, включающее анализ предметной области, построение UML-диаграмм, генерацию и модификацию доменной модели, подключение к базе данных при помощи JPA и Spring Data, реализацию бизнес-логики, генерацию REST-контроллеров, разработку тестов.
Научитесь экономить время и усилия с помощью ИИ. Получив навык использования ИИ на примере чата GPT, в будущем вы сможете легко адаптироваться к использованию других генеративных языковых моделей.
Итого на курс 42 часа: теория – 16 ч (38%), практика – 26 ч (62%)
-
Итого 250 часов: теория – 84 ч. (34%), практика – 166 ч. (66%)
Примечание
Игорь — преподаватель-практик по программированию на языке Java, сертифицированный Java-разработчик, уполномоченный инструктор корпорации «Оракл», инструктор платформы Udemy, Java-методист c 15-летним опытом, консультант-репетитор по Java-сертификации.
Игорь начал карьеру как физик-экспериментатор, разрабатывая аппаратное и программное обеспечение для одного из самых первых в СССР сканирующих туннельных микроскопов в сфере, которая через 20 лет получила название «нанотехнология».
Один из экспертов-разработчиков проекта Java-сертификации под эгидой IBS.
Лауреат конкурса молодых ученых в области физики твердого тела (Япония, 1990).
Проекты:
-
разрабатывал аппаратное и программное обеспечение для одного из самых первых в СССР сканирующих туннельных микроскопов в сфере, через 20 лет получившей название «нанотехнология»
-
15 лет работал в Токио (Токийский технологический институт, затем Институт статистики ООН), где занимался внедрением технологий автоматической обработки больших массивов данных, в том числе на frontend- и backend-приложениях
-
6 лет работал инженером-разработчиком в Pioneer Co. в Токио.