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