Java Classes

TeamDev Students Program

Група вже набрана та проходить навчання, але ви можете подати заявку на наступний набір

Java Classes —


Java Classes — інтернатура Java для студентів, закоханих у програмування.


мови програмування: Java та JavaScript

місяці full-time лекцій та практики

талановитих студентів в одній групі

випускників інтернатури стають частиною TeamDev


Наші ментори

Oleg Melnik

Досвід комерційної розробки: 20+ років.

Ментор: 10+ років.

Відповідає за: Java.

Dmytro Kalinin

Досвід комерційної розробки: 7+ років.

Ментор: 5+ років.

Відповідає за: JavaScript.

Vasylenko Roman

Досвід комерційної розробки: 10+ років.

Ментор: 5+ років.

Відповідає за: Верстка.

Базова програма


1. Занурення


  • Що таке програмування? Коротко про історію розвитку комп'ютерної техніки та мов програмування.

  • Парадигми програмування. Об'єктно-орієнтоване програмування, критерії відмінності від процедурного підходу.

  • Ознайомлення з функціональним програмуванням.

  • Основні тенденції промисловості на на сьогодні.

2. Фундамент


  • Вступ до Теорії Компіляторів. Що відбувається з кодом після написання.

  • Java як мова програмування. Особливості роботи JVM. Модель пам'яті. Складач сміття.

  • Структура проєкту. Модульність. Залежність. Складання проєкту. Gradle. Continuous Integration.

  • Системи контролю версій Git. GitHub. Branching. Pull Request. Code Review.

  • Колекції. Тонкощі використання з урахуванням витрат пам'яті та швидкодії. Stream API.

  • Оцінка складності коду при роботі з даними.

3. Техніки


  • Основні правила та принципи написання «чистого коду».

  • Об'єктно-орієнтований дизайн. SOLID. Патерни проєктування.

  • Як писати зрозумілий та надійний код. Читабельність коду.

  • API дизайн. Що це таке, і чому це важливо. Bumper-Sticker API Design.

  • Коректна обробка вхідних параметрів Assertions. Google Guava.

  • Як правильно використовувати винятки та не перевантажувати клієнтський код.

  • Документування коду. Javadoc. Як документувати код швидко та по суті.

  • Логування. Як не залипати у наладчику. Flogger.


4. Контроль якості


  • Навіщо потрібно писати тести. Види тестування.

  • Unit Testing. JUnit.

  • Functional Testing. TDD.

  • Google Truth. NullPointerTester.

  • Dummies, Mocks, Stubs, Spies, and mocking libraries.

  • IntelliJ IDEA Inspections. Code Coverage.

  • Статичні аналізатори коду. ErrorProne.

  • Як писати тести так, щоб це пришвидшило розробку, а не навпаки.


5. Злітаємо


  • Що таке Інтернет. Як влаштовані мережі. Прикладний рівень у TCP/IP мережах.

  • HTTP. Request. Response. Session. Cookies. Servlet API. REST API. JSON.

  • Базова архітектура web-застосунків.

  • Основні принципи написання клієнтської частини застосунку.

  • JavaScript. ООП у JavaScript. ES6. Promises. Generators. JSDoc. qUnit. ESLint. DOM. Базові елементи верстки.

  • Вступ до предметно-орієнтованого проєктування.

  • Вступ до Cloud Computing. Особливості написання застосунків.


6. Поліровка


  • Ознайомлення з методологіями розробки проєктів Специфіка agile-методологій. Основні засади SCRUM.

  • Командна праця. Відповідальність результат. Права та обов'язки програміста.

  • Складання резюме. Як зробити своє резюме привабливим для роботодавця, нічого не перебільшуючи.



Вимоги до кандидатів

Ми чекаємо від кандидатів глибокого розуміння та здатності вільно розмірковувати на такі теми:

  • Дискретна математика: булева алгебра, кінцевий автомат, двійкові дерева.

  • Java: синтаксис, особливості ООП, винятки, Generics, Annotations, Stream API.

  • Стандартні структури даних: Array, Collection, List, Set, Map, Queue, Deque.

  • Базові алгоритми: хешування, двійковий пошук, швидке сортування.

  • Досвід використання IntelliJ IDEA та GitHub.

  • Рівень англійської мови Intermediate, бажано вміння спілкуватися голосом.