Java Classes
TeamDev Students Program
Хоча набір зараз закінчено, ви можете подати заявку і ми повідомимо вас про пошук студентів у нову групу.
Java Classes —
інтернатура Java для студентів, закоханих у програмування.
місяці full-time лекцій та практики
талановитих студентів в одній групі
випускників інтернатури стають частиною TeamDev
Наш ментор
Oleg Melnik
Досвід комерційної розробки: 20+ років.
Ментор: 10+ років.
Відповідає за: Java.
Базова програма
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.
Як писати тести так, щоб це пришвидшило розробку, а не навпаки.
Вимоги до кандидатів
Ми чекаємо від кандидатів глибокого розуміння та здатності вільно розмірковувати на такі теми:
Дискретна математика: булева алгебра, кінцевий автомат, двійкові дерева.
Java: синтаксис, особливості ООП, винятки, Generics, Annotations, Stream API.
Стандартні структури даних: Array, Collection, List, Set, Map, Queue, Deque.
Базові алгоритми: хешування, двійковий пошук, швидке сортування.
Досвід використання IntelliJ IDEA та GitHub.
Рівень англійської мови Intermediate, бажано вміння спілкуватися голосом.
Ми пропонуємо
Високу стипендію за результатами співбесіди.
Програма навчання, що включає сучасні практики міжнародних продуктових компаній.
Лекції та майстер-класи від провідних розробників із досвідом програмування понад десять років.
Практику на проєктах у доменних галузях інтернет-безпеки та телекомунікації, біоінформатики, штучного інтелекту.
Хоча набір зараз закінчено, ви можете подати заявку і ми повідомимо вас про пошук студентів у нову групу.