Введение в программирование
Каждому студенту мы открываем курс «Введение в программирование». Курс особенно полезен для новичков без опыта
Блок 1: Базовые навыки разработчика
Блок 2: Основы языков программирования
Базовые навыки Java-разработчика
Научитесь бегло писать код на Javа, изучите важные фреймворки, сможете работать с базами данных и системами контроля версий. Отправитесь на стажировку и начнете брать небольшие платные проекты на фрилансе.
Ступень №1
Блок 1 – Основы Java
Знакомство с языком Java и инструментами
Базовый синтаксис Java
Переменные и типы данных в Java
Циклы и языковые конструкции в Java
Работа с массивами
Структуры данных
Блок 2 – Java: классы, объекты, первая программа
Классы и объекты: продвинутый уровень
Методы и поля классов
Обработка исключений
Строки и регулярные выражения
Первая программа на Java
Бонусный урок. Дополнительная практика
Блок 3 – Java Core: коллекции, потоки, управление памятью
Обзор коллекций в Java
Коллекции: ArrayList и LinkedList, HashMap
Коллекции: HashSet, LinkedHashMap, LinkedHashSet
Коллекции: TreeMap, TreeSet
Stream api, lambda, optional
Домашнее задание по коллекциям Java
Generic-типы. Runtime, wildcards & PECS
Работа с памятью JVM
Блок 4 – Java Core: работа с сетью, многопоточность, рефлексия
Работа с файлами. Адаптер и декоратор
Практический воркшоп: работа с файлами
Сериализация
Практический воркшоп: работа с сетью и API
Java библиотека NIO. Отличия IO и NIO
Многопоточное программирование в Java
Рефлексия в Java. Создание аннотаций
Блок 5 – Инструменты сборки: Git, GitHub
Системы контроля версий
Git & GitHub
Системы автоматической сборки Java-проектов
Блок 6 – Web-фреймворк: Spring
Inversion of control. Dependency Injection
Что такое Spring framework и зачем он нужен?
Spring Application Context – от XML до Groovy
Spring Web. REST-архитектура и контроллеры
Servlets
Архитектура web-сервиса, MVC, Spring Boot
Основы HTML. Язык разметки страницы
CRUD-приложение. Create, Read, Update, Delete application
Блок 7 – ORM, Hibernate и JDBC
Spring JDBC: работа с базой данных и построение запросов
Spring JDBC: нестандартные запросы и транзакции
Hibernate. ORM – нет времени писать запросы
Spring Data: тот же Hibernate, только лучше
Ведение журналов
Блок 8 – SQL
Введение в блок SQL
Извлечение и фильтрация данных: введение
Извлечение и фильтрация данных: advanced
Преобразование и сортировка данных: введение
Преобразование и сортировка данных: advanced
Группировка данных
Базы данных. JDBC
Развитие проекта. Создание to-do
Блок 9 – SQL и базы данных
Введение в базы данных
Объединение таблиц
Подзапросы
Обновление, добавление и удаление данных
Создание, изменение и удаление таблиц
Advanced SQL: операции с текстом и оконные функции
Advanced SQL: ускорение и оптимизация запросов, табличные выражения
Практический проект LEGO
Воркшоп: реальный Postgres
Реляционные базы данных
Транзакции и уровни изоляции. Индексы
Блок 10 – Современные методологии разработки
Методологии управления: Agile и Waterfall
Scrum
Инструменты менеджмента
Java advanced
Углубитесь в программирование на Java, освоите ООП и научитесь тестированию. Совместно с Карьерным центром составите резюме и начнете подготовку к собеседованиям. Большая часть студентов находят работу Junior-специалистом как раз на этом этапе
Ступень №2
Блок 1 – Тестирование приложений на Java
Введение в тестирование ПО
Методы и виды тестирования
Артефакты тестирования
Документы тестировщика
Жизненный цикл разработки ПО
Тестирование исходяших взаимодействий: outcoming. Мокинг
Среда тестирования Mockito
Основы юнит-тестирования
Тест-раннеры юнит-тестирования для Java: JUnit, TestNG
Основы интеграционного тестирования
Инструменты интеграционного тестирования для Java: REST Assured, JMeter
Основы "поведенческого тестирования"
Инструменты "поведенческого" тестирования для Java: Cucumber-JVM, Cukes-rest, JBehave
Инструменты тестировщика Java
Блок 2 – Объектно-ориентированное программирование в Java
ООП в Java
Свойства хорошего кода. Abstraction, Composition, Coupling, Cohesion
Принципы SOLID
Архитектурные паттерны: шаблоны
Блок 3 – Углубляемся в Backend на Java
Регистрация, аутентификация и авторизация
Интеграция с Backend: API, типичные формы интеграции - RPC, RES
CI / CD
Многопоточность advanced
Масштабируемость
Блок 4 – Основы DevOps для Java-разработчика
Зачем Devops Java-разработчику: вводный урок
Введение в DevOps
Linux: введение и основные концепты ОС.
Bash. Базовый инструмент скриптов в Linux
Жизненный цикл ПО, CI/CD
Работа с Docker. Контейнеризация. Знакомство с Docker.
Упаковка приложений в Docker
Воркшоп: перенос программы в Docker
Docker-Compose. Сервисы и взаимодействия
Ansible: Основные концепции и команды
Ansible.Роли и переменные
Ansible. Разработка ролей
Специализации
Освоите специализацию Frontend или Android — одну или обе на ваш выбор. Получите дополнительные навыки, которые выгодно выделят вас среди других специалистов и дадут больше возможностей для роста
Android-разработчик
Специализация №1
Блок 1 – Введение в Android-разработку
Что дает специализация Android для Java-разработчика. Пути развития
Android Studio, SDK, эмулятор и первое приложение
Основные компоненты Android-приложения
Жизненный цикл Activity
User Interface
User Interface: Responsive UI
Основы Kotlin
Организация навигации: перемещение между Activity
Отображение списков Recyclerview
Fragments, FragmentManager
Работа с файлами, воспроизведение музыки
Работа в фоне
Networking
Persistence
RX
Архитектура современных приложений
Блок 2 – Продвинутая разработка на Android
Автоматизация сборки: Gradle
Многопоточность: потоки, проблемы общих данных
Сетевые запросы: Main Thread & Background
Конфидициальность и защита данных
DI: внедрение зависимостей
Загрузка и отображение изображений
Основы клиент-серверного взаимодействия
Работа с камерой и мультимедиа
Jetpack Compose
Full stack: Frontend
Специализация №2
Блок 1 – Основы Web-разработки
Что дает специализация Frontend. Fullstack-разработчик
Структура web-страницы, базовый HTML
Базовый CSS, селекторы и каскад
Продвинутый CSS, адаптивность и кроссбраузерность
Основы языка, инструменты для разработки и отладки
Объекты, массивы, функции
DOM-модель и работа со страницей
Обработка событий
Взаимодействие с сервером
Блок 2 – Расширенные возможности HTML и CSS. Работа с макетом, построение сложных сеток, адаптивная верстка
Git и GitHub: Настраиваем репозиторий для проекта
Формы HTML: построение, валидация, доступность
Flex или Grid? Основы создания макетов
Адаптивная и кроссбраузерная верстка
Основы тестирования верстки. DevTools
Улучшаем пользовательский опыт (UX) с помощью CSS-анимаций
Идеальная верстка: делаем Pixel Perfect по макету в Figma
Блок 3 – JavaScript: базовый уровень
Введение. Переменные и работа с числами. Константы
Строки, boolean и условные операторы. Преобразование типов и нестрогие сравнения
Массивы и циклы. Объекты
Функции. Области видимости и замыкания
Обработка событий и пользовательский ввод
Подключение библиотек
Регулярные выражения. Форматирование. Работа с датами
Mикро и макротаски. Цикл событий
Анимации и CSS-фреймворки
Структуры данных и алгоритмы
Искусственный интеллект в разработке
Искусственный интеллект для разработчика
Дипломная работа
Работа над дипломным проектом для портфолио
Рост в тимлида
Финальная защита и консультации