Описание
Курс предназначен для выявления, а затем и устранения "слабых мест" в подготовке участника, желающего пройти Java-сертификацию на уровень «Специалист». Программа курса носит практическую направленность. Еще до начала курса слушатели проходят входное самотестирование, непосредственно на занятиях выполняется разбор выявленных ошибок и параллельно с этим укрепляется теоретическая база. Курс завершается выходным тестом.
Структура учебного плана следует тематике сертификационного теста. Охвачены не только фундаментальные концепции ООП и их Java-имплементация, но и основные фреймворки и инструменты, которыми пользуется типичный Java-разработчик: JUnit, Maven, Hibernate, Spring и Git. Курс активно ссылается на синтаксические и лексические конструкции языка, а также API базовых классов Java® SE11.
Тестирование на входе и выходе курса выполняется слушателем самостоятельно, вне академических часов.
Цели
Целевая аудитория
Предварительная подготовка
- JVA-007 Разработка на платформе Java SE8. Базовые темы
- JVA-010 Владение каркасом разработки Spring Framework 5
- JVA-014 Java Persistence с использованием Hibernate
- JVA-016 Введение в Apache Maven
- JVA-060 Нововведения Java 9
- JVA-067 Владение каркасом модульного тестирования JUnit5
- DEV-007 Введение в систему контроля версий Git
Разбираемые темы
-
0. Вступительные замечания (теория - 0.25 ч, практика - 0 ч.)
- Назначение, характер и структура сертификационного теста, его специфика и “подводные камни”, классификация задач, контекстные допущения.
-
1. Основы языка Java (теория – 0.25 ч, практика – 0.5 ч.)
- Определение области действия переменных; структура класса в Java;
- Создание исполнимых Java-приложений с методом main(); запуск Java-программы с командной строки, в т. ч. вывод в консоль; импорт Java-пакетов.
-
2. Типы данных (теория – 0.25 ч, практика – 0.25 ч.)
- Объявление и инициализация переменных (включая приведение примитивных типов данных);
- Дифференциация между ссылочными и примитивными переменными; чтение и запись полей объектов; жизненный цикл объекта (создание, переприсваивание ссылки и сборка мусора);
- Разработка кода, использующего классы-оболочки, в частности, Boolean, Double и Integer.
-
3. Операторы и структуры ветвления (теория – 0.25 ч, практика – 0.5 ч.)
- Применение операторов, включая переопределение приоритета;
- Проверка идентичности строковых и других объектов с использованием оператора == и метода equals();
- Конструкции if и if-else, а также тернарный оператор; применение оператора switch.
-
4. Создание и применение массивов (теория – 0.25 ч, практика – 0.5 ч.)
- Объявление, создание и применение одномерных и многомерных массивов.
-
5. Работа с циклами (теория – 0.25 ч, практика – 0.25 ч.)
- Создание и применение циклов for (в т.ч. for-each), while и do-while;
- Применение операторов break и continue.
-
6. Методы и инкапсуляция (теория – 1 ч, практика – 3 ч.)
- Создание методов с аргументами и возвращаемыми значениями, в т.ч. перегрузка методов;
- Поведение объектных ссылок и примитивных переменных, передаваемых в методы
- Применение ключевого слова static к методам и полям; модификаторы доступа;
- Реализация принципов инкапсуляции в классе, создание и перегрузка конструкторов, включая влияние на дефолтный конструктор.
-
7. Наследование (теория – 1 ч, практика – 4 ч.)
- Наследование и его преимущества; разработка кода, демонстрирующего полиморфизм, включая переопределение методов и противопоставление объектного типа ссылочному;
- Необходимость в приведении типов;
- Применение ключевых слов super и this для доступа к объектам и конструкторам;
- Применение абстрактных классов и интерфейсов.
-
8. Обработка исключений (теория – 0.25 ч, практика – 0.5 ч.)
- Противопоставление контролируемых исключений неконтролируемым, в т.ч. ошибкам;
- Создание блока try-catch и влияние исключений на штатный алгоритм работы программы;
- Преимущества обработки исключений; создание и вызов метода, возбуждающего исключение;
- Работа с типичными классами исключений (в частности, NullPointerException, ArithmeticException, ArrayIndexOutOfBoundsException, ClassCastException).
-
9. Избранные классы библиотеки Java API (теория – 0.5 ч, практика – 1.5 ч.)
- Манипуляция данными посредством класса StringBuilder и String; создание и манипуляция календарными датами посредством классов из пакета java.time (напр., LocalDateTime и др.);
- Объявление и применение коллекций ArrayList заданного типа;
- Составление простого лямбда-выражения, которое потребляет Predicate.
-
10. Основы git и сборка проектов с помощью Maven (теория – 0.25 ч, практика – 0.5 ч.)
⠀ -
11. Основы баз данных (теория – 0.25 ч, практика – 0.5 ч.)
⠀ -
12. Spring Boot (теория – 2 ч, практика – 4 ч.)
⠀ -
13. Основы JPA / Hibernate и Spring Data (теория – 2 ч, практика – 5 ч.)
⠀ -
14. Spring REST (теория – 2 ч, практика – 5 ч.)
⠀ -
15. Базовые навыки работы с каркасом JUnit (теория – 0.25 ч, практика – 0.75 ч.)
⠀ -
16. Модульная система (теория – 0.5 ч, практика – 1 ч.)
⠀ -
17. Принципы создания безопасного кода (теория – 0.25 ч, практика – 0.5 ч.)
-
Итого: теория – 12 ч. (30%), практика – 28 ч. (70%)
Игорь — преподаватель-практик по программированию на языке Java, сертифицированный Java-разработчик, уполномоченный инструктор корпорации «Оракл», инструктор платформы Udemy, Java-методист c 15-летним опытом, консультант-репетитор по Java-сертификации.
Игорь начал карьеру как физик-экспериментатор, разрабатывая аппаратное и программное обеспечение для одного из самых первых в СССР сканирующих туннельных микроскопов в сфере, которая через 20 лет получила название «нанотехнология».
Один из экспертов-разработчиков проекта Java-сертификации под эгидой IBS.
Лауреат конкурса молодых ученых в области физики твердого тела (Япония, 1990).
Проекты:
-
разрабатывал аппаратное и программное обеспечение для одного из самых первых в СССР сканирующих туннельных микроскопов в сфере, через 20 лет получившей название «нанотехнология»
-
15 лет работал в Токио (Токийский технологический институт, затем Институт статистики ООН), где занимался внедрением технологий автоматической обработки больших массивов данных, в том числе на frontend- и backend-приложениях
-
6 лет работал инженером-разработчиком в Pioneer Co. в Токио.