+380 67 826 62 92

Основна ідея курсу - дати студенту спочатку грунтовні знання з Computer Science, потім мовну специфіку (Java 8 SE).
При такому підході, по закінченню отримуємо спеціаліста-початківця, який володіє базовими принципами (призначення та архітектура різних структур даних, оцінка ефективності алгоритмів, робота в мережі, створення та взаємодія з базами даних, використання потоків та процесів тощо) та мовним інструментарієм для їх реалізації.Тобто, випускник здатний функціонувати самостійно.


Цим даний курс відрізняється від інших "мовних" курсів (та деяких університетів), де після вивчення мовної специфіки (тобто по закінченню курсу) студент нічого не розуміє і або йде на інші курси "програмування" або на цьому зупиняється і, не маючи достатніх знань щоб працевлаштуватися, полишає свою мету.

Іншою специфікою курсу є мінімізація теоретичної частини: нікому давно вже не цікаво дивитись "мертві" презентації та слухати нудні лекції - засвоюваність такого матеріалу крайньо низька. Тому ми займаємося виключно практикою: спочатку викладач проводить демонстрацію "наживо", потім студенти задають питання та отримують завдання на задану тематику. Правило тут таке: ви винесете з аудиторії лише те, що зробили самі.


Задач буде багато. Частину ви вирішите прямо в аудиторії, частину - дома. Спочатку буде важко, потім - ... теж важко. Такий він, шлях девелопера.
Студенти будуть підключені до спеціального Slack-чату, де вони (під час самостійної роботи та безпосередньо на занятті) зможуть отримати відповіді на свої питання, посилання на потрібну статтю, документ.

Додаткова інформація

Навчальний план

1
Основи(С)
Вивчати Java ми почнемо... з С. Чому? С - достатньо проста і показова функціональна мова програмування. Можливість ручного керування пам'яттю дозволить відповісти на питання: що таке змінна? що таке функція? та, в подальшому, привідкрити завісу таємниці над принципами влаштування і роботи об'єктно-орієнтованої моделі програмування, суттю примітивних типів даних, посилань та об'єктів, різницю між ними. Цього не можна зробити засобами Java.
2
Структури даних(С)
Ви познайомитесь із основними структурами даних, що використовуються не лише в Java, а й у більшості інших мов програмування: масив та динамічний масив, списки, стек, черга, графи та дерева тощо. До речі: тут і далі "познайомитесь" - значить напишете їх під керівництвом викладача.
3
Алгоритми(С)
Познайомитесь (див. вище) із найбільш поширеними алгоритмами сортування (мердж, вставками тощо) та пошуку (бінарний, Дейкстри тощо).
4
ООП(C/C++/Java)
Що таке об'єкт і що таке клас? Демонстрація та практика принципів ООП: інкапсуляція, успадкування, поліморфізм. Чим метод відрізняється від функції? Призначення модифікаторів доступу. Особливості статичних методів та змінних. Навіщо потрібні і як правильно використовувати абстрактні класи і інтерфейси? Що таке функціональні інтерфейси? Модифікатори final і default. Генерики. Принципи обробки надзвичайних ситуацій: checked та unchecked exceptions.
5
Патерни проектування(Java)
Класика: GoF + SOLID. Що таке патерн проектування? Навіщо вони потрібні і як їх використовувати? Знов-таки, все на практиці.
6
Багатопоточність і паралелізм(Java)
Навіщо потрібна багатопоточність і що таке паралелізм? Процеси і потоки: що спільного, що відмінного? Стани потоків та переходи між ними. ThreadScheduler. Взаємодії між потоками та проблеми, що при цьому виникають. Засоби керування потоками: м'ютекси, семафори та ще чого душа забажає. Асинхронні потоки.
7
Сокети і робота в мережі(Java)
Інтернет - це не тільки ВК та ФБ, а ще й IPv4/IPv6, OSI, TCP/IP, HTTPS... Тобто огляд протоколів і рівнів обміну даними в мережі, написання простого месенджеру з використанням сокетів.
8
Робота з базами даних(Java)
Практика синтаксису SQL. JDBC: створення бази даних та застосунку, що зберігає там дані.
9
Юніт тестування(Java)
Написання юніт-тестів до одного із існуючих застосунків засобами JUnit. Об'єднання TestCase'ів у TestSuit.
BONUS
1. Підготовка до співбесіди:
- Розгляд та аналіз питань, що найчастіше зустрічаються (cheat-set або як проходити співбесіди навіть ніфіга не відстрілюючи у програмуванні)
- Як правильно себе поводити? (якщо хочеш отримати офер, звичайно)
- Пробні співбесіди (побудь дурнем тут, щоб не бути дурнем там)

2. Огляд деяких технологій Java:
- Android
- UI: AWT, Swing
- Java 8 SE new features: Stream API + Lambdas (Functional programming)

3. Розгляд теми за бажанням студентів
По закінченню курсу видається сертифікат LITS та рекомендації до топових ІТ компаній Львова.

Рекомендована базова підготовка

Розуміння математики на рівні середньої школи.
Здатність абстрактно мислити.
Наявність власного ноутбука.
Англійська мова - бажано, але не обов'язково.
Який-небудь досвід програмування - бажано, але не обов'язково.

Поширені запитання (FAQ)

1
Як зареєструватись на курс?
На сторінках діючих курсів є кнопка "Стати студентом", яка дозволяє Вам залишити заявку. Як тільки заявка буде надіслана, Ви отримаєте листа на Вашу електронну скриньку з подальшими інструкціями, і наш адміністратор незабаром з Вами сконтактує в телефонному режимі.
2
А що, як я не отримав лист-підтвердження?
Якщо таке сталося, Ви, мабуть, неправильно заповнили форму. Зателефонуйте до адміністратора за номером +380 67 675 24 50, і це питання ми обов’язково вирішимо першочергово.

ОЛЕКСАНДР ГУРБИЧ

Викладач курсу "Java Base:Intensive"