Введение в программирование
Каждому студенту мы открываем курс «Введение в программирование». Курс особенно полезен для новичков без опыта.
Блок 1: Базовые навыки разработчика
Вы изучите базовые навыки разработчика и поймете, как устроено программирование
Блок 2: Основы языков программирования
Вы по шагам разберете основы языков разработки, познакомитесь с циклами, структурами данных и архитектурой кода.
Ступень 1: "Базовые навыки Java-разработчика"
Практика на кейсах реальных компаний, помощь со стажировкой и первыми собеседованиями.
Блок 1 – Основы Java
- Инструменты "поведенческого" тестирования для Java: Cucumber-JVM, Cukes-rest, JBehave
- Переменные и типы данных в Java
- Циклы и языковые конструкции в Java
- Структуры данныхРабота с массивами
Блок 2 – Java: классы, объекты, первая программа
- Классы и объекты: начальный уровень
- Классы и объекты: продвинутый уровень
- Функции / методы
- Обработка исключений
- Строки и регулярные выражения
- Пакеты
- Работа с файлами. Адаптер и декоратор
- Практический воркшоп: работа с файлами
- Первая программа на Java
- Бонусный урок. Дополнительная практика.
Блок 3 – Linux
- Знакомство с Linux
- Продолжение знакомства с Linux
Блок 4 – Java Core: коллекции, потоки, управление памятью
- Знакомство с алгоритмами
- Введение в коллекции: списки, стеки и очереди
- Коллекции: map, set
- Stream api, lambda, optional
- Домашнее задание по коллекциям Java
- Generic-типы. Runtime, wildcards & PECS
- Работа с памятью JVM
Блок 5 – Java Core: работа с сетью, многопоточность, рефлексия
- Сериализация. Взаимодействие сервисов, бинарная сериализация, xml, json, yaml
- Работа с сетью. UPD, TCP/HTTP, OSI
- Практический воркшоп: работа с сетью и API
- Java библиотека NIO. Отличия IO и NIO
- Многопоточное программирование в Java. Синхронизация, классы concurrent.
- Рефлексия в Java. Создание аннотаций
Блок 6 – Инструменты сборки: Git, GitHub
- Системы контроля версий. Версионирование кода, совместная разработка, CSV
- Git & GitHub. Git, Commit, Ветки, слияние веток и разрешение конфликтов, GitHub, Командная работа, Код ревью
- Системы автоматической сборки Java-проектов
Блок 7 – Веб-фреймворк: Spring
- Inversion of control / Dependency Injection
- Что такое Spring framework и зачем он нужен?
- Spring Application Context – от XML до GroovySpring Web. REST-архитектура и контроллеры
- Сервера, TomcatMVC & Spring Boot. Архитектура Веб Сервиса, MVC, Spting Boot
- Основы HTML. Язык разметки страницы
- CRUD приложение. Create, Read, Update, Delete application
Блок 8 – ORM, Hibernate и JDBC
- Spring JDBC. Работа с базой данных и построение запросов
- Spring JDBC. Нестандартные запросы и транзакции
- Hibernate. ORM – нет времени писать запросы
- Spring Data. Тот же Hibernate.. только лучше!Ведение журналов
Блок 9 – SQL
- Введение в блок SQL
- Извлечение и фильтрация данных: введение
- Извлечение и фильтрация данных: advanced
- Преобразование и сортировка данных: введение
- Преобразование и сортировка данных: advanced
- Базы данных, Подключение, запуск instance / JDBC
- Развиваем проект и добавляем в БД (делаем todo)
Блок 10 – SQL и базы данных
- Группировка данных
- Введение в базы данных
- Объединение таблиц
- Подзапросы
- Обновление, добавление и удаление данных
- Создание, изменение и удаление таблиц
- Advanced SQL: Операции с текстом и оконные функции
- Advanced SQL: Ускорение и оптимизация запросов, табличные выражения
- Итоговый проект
- Воркшоп. Реальный Postgres
- Реляционные базы данных
- Транзакции и уровни изоляции. Индексы
Блок 11 - Современные методологии разработки
- Методологии управления: Agile и Waterfall
- Scrum
- Инструменты управления
Ступень 2: «Java advanced»
Много практики и воркшопов. Помощь с подбором вакансий и прохождением собеседований.
Блок 12 - Тестирование приложений на Java
- Введение в тестирование ПО
- Методы и виды тестирования
- Артефакты тестирования
- Документы тестировщика
- Жизненный цикл разработки ПО
- Тестирование исходяших взаимодействий (outcoming). Мокинг: что это и зачем
- Среда тестирования Mockito
- Основы юнит-тестирования
- Инструменты юнит-тестирования для Java: JUnit, TestNG
- Основы интеграционного тестирования
- Инструменты интеграционного тестирования для Java: REST Assured, JMeter
- Основы "поведенческого тестирования"
- Инструменты "поведенческого" тестирования для Java: Cucumber-JVM, Cukes-rest, JBehave
- Инструменты тестировщика Java
Блок 13 - Объектно-ориентированное программирование в Java
- ООП в Java
- Свойства хорошего кода. Abstraction, Composition, Coupling, Cohesion
- Принципы SOLID
- Архитектурные паттерны: шаблоны
Блок 14 – Углубляемся в Backend на Java
- Регистрация, аутентификация и авторизация
- Интеграция с Backend: API, типичные формы интеграции (RPC, REST)CI / CD
- Свойства хорошего кода. Abstraction, Composition, Coupling, Cohesion
- Принципы SOLID
- Архитектурные паттерны (шаблоны)
- Масштабируемость
Блок 15 - Основы DevOps для Java-разработчика
- Зачем Devops Java-разработчику: вводный урок
- Введение в DevOps
- Linux: введение и основные концепты ОС.
- Bash. Базовый инструмент скриптов в Linux
- Жизненный цикл ПО, CI/CD
- Работа с Docker. Контейнеризация. Знакомство с Docker. Упаковка приложений в Docker
- Воркшоп: перенос программы в Docker
- Docker-Compose. Сервисы и взаимодействия
- Управление конфигурациями. Ansible: Основные концепции и команды
- Ansible.Роли и переменные
- Ansible. Разработка ролей
Ступень 3: "Получение специализации"
Продвинутые навыки для Java-разработчика. Углубление во Front-end или Android разработку. Помощь на испытательном сроке.
Специализация 1 — Android-разработчик
Блок 16 – Введение в Android-разработку
Блок 17 – Продвинутая разработка на Android
Блок 18: Chat GPT для разработчика
Дипломная работа
Специализация 2 — Full stack: Frontend
Блок 18. Основы Web-разработки
Блок 19. Расширенные возможности HTML и CSS. Работа с макетом, построение сложных сеток, адаптивная вёрстка
Блок 20. JavaScript: базовый уровень
Блок 21: Chat GPT для разработчика
Дипломная работа