Java Classes
TeamDev Students Program in Kharkiv and Kyiv
Дата старта группы в Харькове — май 2022 года.
Дата старта группы в Киеве — май 2022 года.
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, желательно умение общаться голосом.