Содержание
- Программа
- Основной блок
- Вводный модуль
- Синтаксис языка
- Система контроля версий Git
- Объекты и классы
- Числа, строки, даты
- Массивы и коллекции
- Наследование и полиморфизм
- Особенности ООП в Java
- Исключения, отладка, тестирование и логирование
- Работа с файлами и сетью
- Работа с MySQL в Java
- Многопоточность
- Разработка веб-приложений
- Нереляционные базы данных и очереди
- Производительность и оптимизация
- Распределённые хранилища и вычисления
- Заключительный модуль
- Бонусные курсы
- Универсальные знания программиста
- Английский для IT-специалистов
- Дипломные проекты
- Индивидуальный проект: блоговый движок
- Командный проект: разработка соцсети
- Что получит слушатель по окончании
- Ваше резюме после обучения
- Профессиональные навыки:
Программа
22 темы, разработанные на основе требований работодателей методологами-практиками программирования. Без «воды», только важная информация.
Основной блок
Вводный модуль
- Какие бывают программы.
- Где и для чего применяется Java.
- Как выглядит программный код.
- Установка среды разработки.
- Исправляем готовое приложение.
- Пишем консольное приложение.
Синтаксис языка
- Что вообще бывает в коде.
- Переменные в Java.
- Boolean, операторы сравнения и условные операторы.
- Циклы.
- Разбираем сложный код.
Система контроля версий Git
- Версии программного кода.
- Установка Git.
- Индекс и частичные коммиты.
- Сравнение версий.
- Отмена изменений и откат версий.
- Репозитории и коллективная работа.
- Ветки: создание и управление.
- Слияние и разрешение конфликтов.
- Полезные инструменты.
- Правила работы с Git.
Объекты и классы
- Понятие класса и объекта.
- Метод, параметры, return.
- Статические методы и переменные.
- Константы и Enum.
- Создание объектов и конструктор.
- Инкапсуляция, геттеры и сеттеры.
- Копирование объектов.
- Внешние библиотеки классов.
- Создание JAR-файлов.
Числа, строки, даты
- Объекты и примитивы.
- Зачем нужны объекты и примитивы.
- Значения по умолчанию.
- Boxing и unboxing.
- Какие бывают числа.
- Биты и байты.
- Числа int и double.
- Точность чисел с плавающей точкой.
- Преобразование чисел разных типов.
- Преобразование строки в число и обратно.
- Какие бывают операции с числами.
- Инкремент и декремент.
- Класс Math.
- Символы и кодировки.
- Специальные символы.
- Методы класса String.
- Конкатенация строк.
- Сравнение строк.
- Регулярные выражения.
- Календарь и метка времени.
Массивы и коллекции
- Создание массивов.
- Перебор элементов массивов.
- Обход массивов в обратном порядке.
- Массивы массивов.
- Списки элементов.
- Наборы уникальных элементов.
- HashMap и TreeMap.
- Поиск и сортировка.
Наследование и полиморфизм
- Наследование классов Java.
- Доступ к методам и переменным.
- Абстрактные классы.
- Интерфейсы.
- Полиморфизм.
- Интерфейс Comparable.
- Интерфейс Comparator.
- Краткая реализация интерфейсов.
- Интерфейсы Map и Set.
Особенности ООП в Java
- Лямбда-выражения.
- Указатели на методы.
- Метод forEach.
- Способы получения Stream.
- Sorted, max, min.
- Map reduce.
- Static- и default-методы в интерфейсах.
- Generics.
- Система сборки Maven.
- Репозиторий Maven.
- Аннотации и Lombok.
Исключения, отладка, тестирование и логирование
- Возникновение исключений.
- Отлов исключений.
- Типы исключений.
- Отладка приложений.
- Виды тестирования ПО.
- Модульное тестирование.
- Логирование в консоли.
- Логирование с помощью log4j2.
Работа с файлами и сетью
- Класс File.
- Чтение файлов с помощью FileInputStream.
- Чтение файлов с помощью BufferedReader.
- Чтение файлов с помощью класса Files.
- Запись в файл.
- Табличные файлы.
- Структура XML и HTML-файлов.
- Парсинг HTML-файлов.
- Формат JSON и парсинг JSON-файлов.
- Конфигурационные файлы.
Работа с MySQL в Java
- Установка MySQL.
- Подключение через JDBC.
- Запросы без ResultSet.
- Hibernate: подключение и настройка.
- Hibernate: изменение данных в базе.
- Связи ManyToOne и OneToMany.
- Связь ManyToMany.
- Hibernate query builder.
- Ленивая загрузка данных.
- Where и OrderBy.
- HQL.
Многопоточность
- Зачем нужна многопоточность.
- Класс Thread.
- Интерфейс Runnable.
- Состояние гонки и критические секции.
- Атомарные переменные.
- Ключевое слово Volatile.
- Synchronized-методы.
- Synchronized-блоки.
- Взаимодействие потоков — методы Wait и Notify.
- Потокобезопасные классы.
- Взаимная блокировка — Deadlock.
- Интерфейс Callable.
- Executors, Executor и ExecutorService.
- Метод Shutdown.
- ThreadPoolExecutor.
- SheduledExecutorService.
- Приостановка и прерывание потоков.
- ForkJoinPool и RecursiveTask.
Разработка веб-приложений
- Создание Maven-проекта.
- Создание приложения на Spring Boot.
- Создание первого контроллера.
- Концепция MVC.
- RESTful API и CRUD.
- Создание контроллера.
- Request, response и статусы ответов.
- Подключение к БД и создание сущности.
- Репозиторий и добавление элементов в БД.
- Получение данных из БД.
- Изменение и удаление данных в БД.
- View и подключение шаблонов.
- Параметры конфигурации.
- Упаковка приложения в JAR-файл.
Нереляционные базы данных и очереди
- Введение.
- Основы Redis, простейшие команды.
- Сложные структуры данных в Redis.
- Сравнение Redis и MySQL.
- Базовые возможности MongoDB.
- Агрегация данных в MongoDB.
Производительность и оптимизация
- Факторы производительности.
- Преждевременная оптимизация.
- Что нужно оптимизировать.
- Длительность конкатенации строк.
- Буферизация.
- Два принципа оптимизации по времени.
- Какую память нужно экономить.
- Память можно не экономить.
- Память и разные структуры данных.
- Чем меньше запросов, тем лучше.
- Multiinsert.
- Утечка памяти.
- Индексация и оптимизация запросов.
- Кэширование запросов.
- Хранение данных.
Распределённые хранилища и вычисления
- Что такое большие данные.
- Файловая система HDFS.
- Практическая работа с HDFS.
- Концепция MapReduce.
- Фреймворк Apache Spark.
- Установка Spark.
- Запуск в Spark собственного приложения.
- Запуск приложения обработки текста.
- Модуль YARN.
Заключительный модуль
- Desktop-приложения: создание интерфейса.
- Desktop-приложения: события и их обработка.
- Desktop-приложения: кастомизация интерфейса.
- Android-приложения.
- Язык программирования Scala.
- Язык программирования Kotlin.
- Реактивное программирование. RxJava.
Бонусные курсы
Универсальные знания программиста
- Как стать первоклассным программистом
- Вёрстка email-рассылок. Советы на реальных примерах
- The state of soft skills
- Как мы создавали карту развития для разработчиков
- Как общаться по email и эффективно работать с почтой?
- Повышение своей эффективности
- Спор о первом языке программирования
- Саморазвитие: как я не усидел на двух стульях и нашёл третий
- Data-driven-подход к продуктивности — инсайты из данных миллиона людей
- Протокол HTTP
- Введение в алгоритмы
Английский для IT-специалистов
- IT Resume and CV
- Job interview: questions and answers
- Teamwork
- Workplace communication
- Business letter
- Software development
- System concept development and SRS
- Design
- Development and Testing
- Deployment and Maintenance
Дипломные проекты
Индивидуальный проект: блоговый движок
- Вы разработаете систему управления контентом на примере habr.com: самостоятельно реализуете работающий блог с регистрацией, публикацией постов, лайками, модерацией и статистикой.
Командный проект: разработка соцсети
- Под руководством опытного тимлида вы в составе команды из 5–7 человек создадите собственную социальную сеть за три месяца. Фактически эта часть программы приравнивается к стажировке. Вам выдадут ТЗ и дизайн проекта. Все процессы, через которые вы пройдёте, — это максимально приближенный к боевым условиям опыт. Именно так создаётся коммерческое ПО в фирмах-работодателях.
Что получит слушатель по окончании
- Диплом Skillbox
- Портфолио
- Помощь в трудоустройстве
Ваше резюме после обучения
- Должность: Java-разработчик
- Зарплата от: 100 000 ₽
Профессиональные навыки:
- Администрирование и деплой пилотных работ
- Знание принципов ООП
- Умение ставить и соблюдать сроки
- Привычка писать комментируемый и строго форматированный код
- Разработка веб-приложений на Java
- Разработка веб-приложений на фреймворке Spring
- Навыки написания запросов к реляционным базам данных
- Умение разбираться в чужом коде
- Работа с системой контроля версий Git
Отзывы
Отзывов пока нет.