Обучение Java программированию от преподавателей онлайн-школы школы Skillbox. Ведут программисты с 15-летним опытом разработки.
Курс включает два уровня - изучение теории, основ java-программирования и интенсивную практику в команде. В процессе обучения слушатели освоят java разработку и соберут портфолио проектов. В качестве практических интенсивов вас ждёт работа, максимально приближенная к «полевым» условиям java-разработки. На защите дипломных проектов не будет скучного выступления перед комиссией, вы разработаете в веб-интерфейсе блоговый движок.
Мы изучаем:
Начинающему разработчику курс поможет углубить навыки Java-программирования. Вы освоите правильное структурирование кода и отработаете синтаксис.
Начинающим с нуля программистам поддержка опытных разработчиков быстрее поможет овладеть тонкостями кодинга.
Нулевой или начальный уровень подготовки в Java. Желание профессионально развиваться в IT-разработке.
Опытные преподаватели-практики, разработчики
Вы будете работать под руководством опытного тимлида в составе команды из 5–7 человек. Создадите собственный проект за 3 месяца по ТЗ от реального заказчика. Такая практика — это максимально приближенный к реальным условиям опыт.
Виды программ. Сферы применения языка. Код. Среда программирования. Редактура кода приложения. Текстовая консоль ввода/вывода. Создание авторского приложения.
Файлы, коммиты, версии. Ветвление. Разрешение конфликтов в системе. Практика.
Теоретические основы. Работа с объектами. Использование внешних библиотек. Файловые архивы Java. Аннотации и операции в Lombok. Анонимные функторы.
Объекты. Примитивные и числовые типы. Работа с числовыми операциями. Работа со строками: склеивание, сравнение. Работа с подстроками, регулярные выражения. Отметки по дате и времени.
Работа со списками, очередями, стеками. Множества элементов HashSet, TreeSet. Классы TreeMap, HashMap. Функциональный подход к работе с коллекциями в Java Stream API.
Наследование. Полиморфизм. Интерфейсы. Проектирование. Цикл forEach. Работа с потоками в Stream API. Сортировка данных. Модель MapReduce. Статистические и Default-методы интерфейсов. Обобщения в Java программировании, дженерики. Инструмент автоматической сборки проектов Maven. Аннотации и Lombok.
Исключения, поиск багов, отладка. Обработка и типы исключений. Debugging приложений. Юнит-тестирование. Интеграционная и функциональная тестировка. Изоляция в тестировании. Java Logging.
Структурирование баз данных. Работа с таблицами, соединениями, подзапросами.
MySQL. Соединение с БД. Таблицы, записи, поля. Объектно-реляционное отображение. Добавление, обновление, удаление. Сортировка, группировка данных.
Процессы и потоки. Критические секции. Синхронизация. Безопасность. Взаимоблокировка, deadlock. Stream API.
Технология JavaServer Pages. Проект Spring Boot. MVC-концепция. Конфигурирование маршрутизации. DI-процесс. Jetty подход.
Хранение данных в памяти, работа с Redis. Отличия REmote DIctionary Server от MySQL. База по СУБД Redis. СУБД MongoDB, необходима база и продвинутые запросы.
Оценка производительности приложения. Оптимизация по времени, памяти. Профайлер. Коллекция Non-blocking I/O.
Система хранения файлов HDFS. Модель распределённых данных MapReduce. Apache Spark. Программная платформа Spark. Запуск и тестировка приложения. Кластерная ОС YARN.
Библиотека RxJava. Расширение языка Oracle, PL/SQL, сохраняемые процедуры. Разбор ЯП Kotlin и Scala. Android-разработка. Разработка desktop приложений.
HTTP-протокол. Алгоритмы, структуры данных. 9 шаблонов проектирования.