Місто

Харків

Курс

Java

Початок заняття

набір відкритий

  • icon

    Тривалість курсу 3 місяці

  • icon

    Інтенсивність занять 5 занять на тиждень

  • icon

    Час занять 3 години на день

  • 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

Записатися на курс