Город

Днепр

Курс

Base course (Java)

Начало занятий

Набор открыт

  • icon

    Длительность курса4 месяца

  • icon

    Интенсивность занятий5 занятий в неделю

  • icon

    Время занятий4 часа в день

  • icon

    Грант на обучениеПокрывает 85% стоимости курса:
    Студент оплачивает 1200 грн/мес

Описание курса

Вы освоите основные концепции программирования, терминологию и синтаксис Java. Кроме того, вы приобретете основополагающие навыки, которые необходимы разработчику программного обеспечения: от разработки алгоритмов до тестирования и отладки ваших программ. Вы получите опыт работы с базами данных, что позволит создавать полноценные программы для решения сложных задач.

Важную часть программы данного курса составляют практические задания, поэтому вы сможете освоить немало примеров написания кода, научитесь писать чистый код используя современные методологии разработки программного обеспечения и получите реальный опыт компьютерного программирования.

Портрет идеального студента
Смело подавайте заявку на курс, если все, что указано ниже — про вас!
Ваши soft skills
  • Гибкость и адаптивность
  • Навыки коммуникации
  • Умение слушать и работать в команде
Что вы знаете и умеете
  • Базовые навыки HTML, CSS и JavaScript
  • Машинная математика и системы счисления
  • Условные и циклические конструкции
  • Методы, рекурсия и массивы
  • Переменные и типы данных
  • Логические операции
Вы идеальный кандидат, если
  • У вас аналитический склад ума
  • Вы сосредоточены на исследованиях
  • Мотивированы и увлечены разработкой
  • Внимательны, ответственны и организованны

Программа курса

  1. 1. Общая характеристика языка Java
    • История языка Java
    • Виртуальная машина Java (JVM)
  2. 2. Типы данных и основные операции с ними
    • Синтаксис языка
    • Комментарии
    • Ключевые слова
    • Типы данных: примитивные/ссылочные
    • Принцип выбора примитивных типов данных
    • Переменные и константы
    • Объявления и инициализация переменных
    • Область видимости и время жизни переменных
    • Операции: арифметические, присваивания, отношения и логические
    • Преобразование и приведение числовых типов
    • Приоритет операций
  3. 3. Условные операторы и циклы
    • Условный оператор и его виды
    • Тернарный оператор
    • Оператор switch
    • Циклы: for, while, do while
    • Бесконечные циклы
    • Прерывание потока управления, метки
  4. 4. Массивы
    • Объявления и инициализация массивов
    • Одномерные, многомерные массивы
    • Итерация по элементам массива (foreach)
    • Массивы и присвоения
    • Поиск в массивах
    • Класс Arrays: заполнение, сравнение элементов и их сортировка
    • Методы: аргументы переменной длины
  5. 5. Строки
    • char
    • Класс String. Иммутабельные объекты
    • Хранение строк в памяти
    • Основные операции класса String (создание, конкатенация, сравнение, поиск символов и подстрок в строках и др.).
    • Преобразование простых типов данных
    • Классы StringBuffer vs StringBuilder
    • Localization and encoding (UTF-8 and other)
  6. 6. Введение в ООП. Объекты и классы
    • Объекты и классы. Объекты. Определение. Состояние. Поведение.
    • Объектная модель. Основные положения: абстракция, инкапсуляция, наследование, полиморфизм.
    • Пакеты. Вложенность пакетов
    • Поля и методы (определение, синтаксис объявления)
    • Модификаторы доступа
    • Поля классов: инициализация явная и по умолчанию, спецификатор final (константы)
    • Методы: параметры и возвращаемые, использование set и get-методов, перегрузки методов, правила перезагрузки
    • Статические поля, методы, блоки инициализации
    • Доступ к полям и методам
    • Конструкторы: конструкторы по умолчанию, вызов одного конструктора из другого
    • Использование this
  7. 7. Unit Testing
    • Необходимость тестирования
    • Подготовка к тестированию
    • Написание теста
    • JUnit
    • TestNG
    • Mocking (PowerMock, Mockito)
    • TDD
  8. 8. Рекурсия
    • Фибоначи + тестирование. Замена циклом.
  9. 9. Наследование, полиморфизм, композиция, агрегация
    • Наследование и полиморфизм как инструмент создания ПО. Суперкласс и подклассы, отношение обобщения, наследование в Java. Вызов конструкторов суперклассов, порядок вызовов. Ключевое слово super()
    • Переопределение методов, правила переопределения. Наследование и статические поля и методы классов. Абстрактные классы и методы, – понятие, вызов конструкторов, реализация методов в классах-наследниках
    • Интерфейсы. «Множественное» наследование (интерфейсы). Определение и реализация интерфейсов. Расширение интерфейсов
    • Внутренние классы.
    • Полиморфизм. Иерархия наследования
    • Преобразование и приведение типов. Использование instanceof. Отказ от наследования: терминальные (final) методы и классы.
    • Импорт: классов, статических методов и полей
    • Композиция
  10. 10. Класс Object
    • Глобальный суперкласс Object, его методы
    • Правила реализации equals() и hashCode(), toString()
  11. 11. Перечисление Enums
    • Перечисление как классы. Методы values(), valueOf(), name(), ordinal().
  12. 12. JVM
    • Рассказать про Heep, Stack.
    • Как и где хранятся разные типы данных (примитивы, массивы, ссылочные объекты и строки)
    • Сбор мусора и удаления объектов
  13. 13. Коллекции
    • Класс Collections: поиск и сортировка элементов, заполнения.
    • Абстрактные типы данных (структуры данных)
    • List
    • Set
    • Map
    • Обход коллекций, цикл «foreach»
    • Компараторы
    • Сырые коллекции и обобщенные коллекции, в чем их разница. (GENERICS)
    • Stream API
  14. 14. Generics
    • Использование Generics
  15. 15. Git
    • Репозиторий
    • Основные команды Git
    • Git flow
  16. 16. Обработка ошибок и исключения
    • Иерархия классов исключений в Java
    • Обработка ошибок
    • Понятие исключения и исключительной ситуации
    • Checked/Unchecked exceptions
    • Генерация исключительной ситуации и оператор throw
    • Объявления контролируемых исключений, ключевое слово throws
    • Throws переопределенных методов
    • Перехват и обработка исключений
    • Повторная генерация исключений
    • Блок finally: освобождение ресурсов
    • StackTrace
  17. 17. Дебагер
    • Способы поиска ошибки
  18. 18. Serialization/Deserialization, JSON/XML
    • Представление обьектов в текстовом виде
  19. 19. IO/NIO
    • Иерархия классов потокового ввода-вывода
    • Потоки ввода/вывода, механизм работы с потоками, иерархия потокового ввода-вывода
    • Субклассы FilterOutputStream и FilterInputStream
    • Байтовые потоки
    • Символьные потоки
    • Класс File
    • Сериализация и десериализация объектов: понятие, назначение
    • try with resources
  20. 20. Многопоточность (Concurrency), JMM
    • Определение потока и процесса.
    • Как JVM реализует запуск нескольких потоков в рамках одного процессорного ядра
    • Класс Runnable и Callable
    • Запуск и остановка потока. Управление потоками.
    • Области видимости потока. Стек.
    • Ключевое слово synchronized. Мютекс и монитор
    • Дедлок
    • Ключевое слово volatile
    • Пример многопоточного приложения
    • Executor
    • Concurrent collections
    • Happens-before
  21. 21. Сборка jar-файлов вручную
    • Структура jar-файла
    • Компиляция и сборка jar-файлов
    • Исполнение jar-файла
    • Параметры запуска java
  22. 22. Сборщики проектов
    • Необходимость сборки проекта
    • Цикл сборки проекта
    • Зависимости
    • Maven, Gradle, (ANT)
  23. 23. Regular expression
    • Использование RegExp
  24. 24. Логирование
    • Назначение логирования
    • Уровни логирования
    • Конфигурирование логера
  25. 25. DB
    • ACID
    • SQL
    • NoSQL
    • JDBC
    • SDK for NoSQL
    • CAP-теорема
  26. 26. Client-Server programming
    • Понятие клиента и сервера
    • Взаимодействие клиента и сервера
    • Сети
    • Уровни OSI
    • Socket
    • REST
    • WebSocket
    • CORS
  27. 27. Java EE
    • Servlet.
    • Servlet containers (Tomcat)
    • Filters
    • JBoss, GlassFish etc.
  28. 28. Project structure
    • MVC
    • MVP
  29. 29. Annotation
    • RetentionPolicy
    • ElementType
    • Наследование Аннотаций
  30. 30. Reflection
    • Доступ к классу его полям и методам
  31. 31. CI/CD
    • Упрощение и ускорение процесса выхода в продакшн
    • TeamCity, Jenkins
  32. 32. Patterns GRASP, SOLID
    • Решение задач при помощи паттернов
    • GRASP. Порождающие паттерны
    • GRASP. Структурные паттерны
    • GRASP. Поведенческие паттерны
    • SOLID
  33. 33. Front-end
    • HTML
    • CSS
    • JS
  34. 34. ORM
    • Hibernate
  35. 35. Основы Spring
    • История
    • IoC/DI
    • Жизненный цикл бинов
    • Config
    • Spring Wev MVC
    • Spring Boot
    • Spring Data JPA

Заполни форму и получи грант на обучение в ближайшем потоке курса!