Скачать Менторинг Java разработчик [Тариф Базовый] [Николай Панюков]

Vendetta

Администратор
Регистрация
16 Сен 2015
Сообщения
187.441
Реакции
425.873
Складчина: Менторинг Java разработчик [Тариф Базовый] [Николай Панюков]



Освой навыки middle+ Java-разработчика и получи оффер от 200.000₽ за 4 месяца
Всё, что необходимо знать современному middle+ Java-разработчику для трудоустройства и работы

Длительность: 4 месяца

Формат группового обучения:

1. База знаний
Все ученики получают доступ к общему каналу, где собраны записи лекций, презентации и все необходимые материалы.


2. Групповые созвоны
2 раза в неделю проходят живые созвоны с разбором тем, домашних заданий, обсуждением сложных моментов с ответами на все вопросы.

3. Практика на кейсах
Под каждую тему выдаются домашние задания, основанные на реальных кейсах, чтобы закрепить материал на практик. Все ДЗ проверяются вручную с подробной обратной связью от ментора.

4. Доведение до оффера*
Подготовке резюме, самопрезентации, помощи в прохождении собеседований и доведения до оффера.
При выборе услуги доведения до оффера*


Кому подойдет обучение?

1. Junior-разработчики
Которые хотят дорасти до уровня Middle+ и получить оффер на 200+К

2. Разработчики после курсов или университета
Которые хотят получить знания, опыт и составить резюме из реальных проектов обучения, чтобы получить работу

3. Специалисты из смежных профессий
Аналитики, тестировщики, сотрудники сопровождения, которые хотят перекатиться в разработку и найти работу

4. Middle-разработчики
Которые хотят закрыть пробелы в ключевых темах и укрепить знания современного стека технологий


Программа курса

Модуль 1. Основы
1. Установка ПО. Создание первого проекта
2. Основы Java
3. Продвинутая Java
4. Паттерны GoF

Модуль 2. Spring
1. Основы Spring
2. Жизненный цикл bean'ов в Spring
3. Spring Properties. Основы Web
4. Spring WebMVC. Контроллеры, валидация, исключения
5. Spring Data JPA, Liquibase
6. Spring AOP. Spring Boot starters
7. Spring WebMVC. Исходящие REST запросы

Модуль 3. Многопоточность
1. Основы многопоточности
2. Инструменты для работы с многопоточностью
3. Паттерны многопоточности

Модуль 4. Базы данных
1. Hibernate основы и проблемы
2. Индексы. Оптимизация запросов в PostgreSQL
3. Hibernate. Наследование в базах данных. Связи
4. Транзакции и блокировки

Модуль 5. Сопутствующие технологии
1. Системы сборки: Gradle, Maven
2. Docker, Kubernetes, Openshift
3. Git
4. CI/CD
5. Очереди сообщений. Kafka
6. Тестирование

Модуль 6. Микросервисы
1. Паттерны микросервисов
2. Логирование и трассировка
3. Мониторинг
4. Нагрузки, профилирование
5. Безопасность

Модуль 7. Собеседования
1. Алгоритмическая секция
2. Состав команды и процессы
3. Резюме. Заключительное


Обо мне ✍️

Меня зовут Николай и я:

6-ой год в коммерческой разработке на Java
2 года нахожусь на позиции Техлида и управляю командой разработчиков
Провёл 120 технических собеседований на позиции Middle+
Каждый месяц прохожу собеседования и получаю офферы >400 тыс. рублей
С июня 2024 года веду групповой менторинг, потоками по 4 месяца, обучение прошли 40 учеников, из которых:
-- 13 человек получили офферы на 100-470 тыс. рублей

-- 9 вышли на рынок и находятся в поиске работы

-- 18 человек остались на тех же местах, кто-то получил повышение, кто-то готовиться к выходу на рынок





Спойлер: Программа курса подробно
Модуль 1. Основы

1. Установка ПО. Создание первого проекта
На этом занятии вы научитесь устанавливать необходимое программное обеспечение для разработки на Java
Узнаете о различиях между JVM, JRE, JDK и JIT, а также о том, как происходит запуск и исполнение Java кода
В ходе занятия вы создадите свой проект на Spring Boot и загрузите его на GitHub

2. Основы Java
На этом занятии вы повторите основы Java, а именно:

Примитивы и объекты
Массивы
Методы класса Object, включая работу с wait() и notify()
Условные операторы
Циклы
Модификаторы доступа
Ключевые слова final и static
Функции
Классы, абстрактные классы, интерфейсы, enum'ы
DTO
Generic'и
Иерархию исключений
Иерархию коллекций, в том числе посмотрите на различия в реализации ArrayList и LinkedList
Особое внимание уделяется тому, что могут спросить на собеседованиях

3. Продвинутая Java
На этом занятии вы изучите:

Функциональные интерфейсы
Лямбды
Stream API
Optional API
Интерфейсы Compareable и Comparator
Сериализацию и десериализацию
Создание и использование собственных аннотаций
В завершение занятия вы научитесь понимать, как применяются принципы SOLID на практике

4. Паттерны GoF
На этом занятии вы узнаете какие паттерны Gang of Four применяются в реальных проектах, а какие можно смело игнорировать
Освоите практическое применение следующих паттернов: Strategy, Chain of Responsibility, Template Method, Proxy, Observer
Узнаете, на что стоит обращать внимание в коде, для применения каждого из паттернов


Модуль 2. Spring

1. Основы Spring
На этом занятии вы познакомитесь с основами Spring, узнаете об истории его появления и причинах популярности
Узнаете устройство Spring Boot, как он упрощает разработку Spring приложений и что из себя представляют Spring Boot Starter'ы
Изучите принцип Inversion of Control, поймете что такое Bean, как он связан с паттерном Proxy и по каким признакам Spring понимает из каких классов создавать Bean'ы
Научитесь настраивать подстановку bean'ов с помощью аннотаций @Autowired и @Qualifier

2. Жизненный цикл bean'ов в Spring
Вы изучите различные скоупы bean'ов
Детально разберетесь в процессе запуска Spring Boot приложений, узнаете как создается и настраивается Application Context
Научитесь создавать собственные BeanPostProcessor'ы, получите представление о механизмах DynamicProxy и CGLib

3. Spring Properties. Основы Web
На этом занятии вы изучите, как управлять настройками в Spring приложениях, какие есть способы простановки настроек при запуске вашего приложения на сервере, как использовать Spring профили

Вы узнаете об основах Web:

как устроен HTTP протокол, его историю
что такое REST и RESTful на практике
Напишете Spring WebMVC контроллеры для обработки входящих HTTP запросов

4. Spring WebMVC. Контроллеры, валидация, исключения
Вы узнаете каким образом происходит маппинг HTTP запросов на запросы контроллеров в Spring WebMVC
Научитесь валидировать входящие REST запросы, реализуете кастомную валидацию
Изучите как правильно выполнять обработку исключений на уровне контроллеров в реальном проекте

5. Spring Data JPA, Liquibase
На этом занятии вы узнаете что из себя представляет Spring Data JPA
Научитесь подключаться к базам данных
Рассмотрите пример управления миграциями с помощью Liquibase, по аналогии с тем, как это выполняется на коммерческом проекте
Изучите, как использовать JpaRepository для работы с сущностями, как создавать HQL и Native SQL запросы, как правильно добавлять поля для аудита данных
В завершение узнаете, как реализовать метод поиска по фильтру с произвольной фильтрацией, пагинацией и сортировкой

6. Spring AOP. Spring Boot starters
Вы узнаете о том, как устроено Аспектно Ориентированное Программирование (AOP), какие виды аспектов бывают
Изучите Best Practices использования аспектов
Создадите собственный Spring Boot стартер с аспектом внутри и подключите его в проект в качестве библиотеки

7. Spring WebMVC. Исходящие REST запросы
На этом занятии вы изучите какие проблемы могут возникнуть при взаимодействии микросервисов по сети
Научитесь использовать RestTemplate, RestClient, Feign для внешних HTTP вызовов
Посмотрите, как можно использовать interceptor'ы для логгирования исходящих запросов
Узнаете о лучших практиках написания REST клиентов не реальных проектах
Разберетесь, как тестировать REST клиенты с помощью wiremock


Модуль 3. Многопоточность

1. Основы многопоточности
Вы изучите, как создавать потоки в Java и как ими управлять
Узнаете, что такое Java Memory Model, поймете когда и как следует обеспечивать потокобезопасность
Разберетесь как работает Garbage Collector и какие GC бывают
В завершение занятия вы узнаете, как правильно создавать immutable объекты

2. Инструменты для работы с многопоточностью
На этом занятии вы узнаете что такое состояние гонки и в каких случаях оно возникает
Поймете принцип работы synchronized и volatile
Узнаете, когда возникает deadlock и как его не допустить
Изучите инструменты пакета java.util.concurrent: Atomic'и, CompletableFuture, синхронизаторы
Узнаете, какие есть потокобезопасные коллекции, как они устроены и в каких случаях их стоит применять
В ходе занятия выполучите представление о лучших практиках по использованию указанных инструментов в реальных проектах

3. Паттерны многопоточности
Вы узнаете что такое пулы потоков и для чего они нужны
Поймете какие пулы потоков предоставляются фабрикой Executors в Java, в чем достоинства и недостатки каждого из них

Изучите паттерны многопоточности и узнаете как их применять на реальном проекте:

Запуск асинхронного процесса по сигналу
Параллельное выполнение задач без ожидания результата
Выполнение Scheduled задач
Параллельное обращение к разным источникам, с последующим объединением результатов
Ограничение количества потоков для вызова внешнего сервиса
Контекст

Ожидание асинхронного ответа

Модуль 4. Базы данных

1. Hibernate основы и проблемы
На этом занятии вы разберетесь как соотносятся: JDBC, JPA, ORM, Hibernate и Spring Data
Узнаете каким требованиям должны соответствовать сущности в Hibernate и причины возникновения данных требований
Вы научитесь использовать основные аннотации для сущностей, поймете почему зачастую применяется UUID в качестве первичного ключа, как использовать составной первичный ключ
Освоите жизненный цикл Entity и как он связан с кешом первого уровня Hibernate
Разберетесь в принципах работы кешей второго и третьего уровней

2. Индексы. Оптимизация запросов в PostgreSQL
На этом занятии вы узнаете всё необходимое об индексах в базах данных: что из себя представляют, для чего они нужны, какие издержки накладывают, какие виды бывают
Научитесь правильно создавать и подбирать индексы под конкретную ситуацию для повышения производительности SQL запросов
Научитесь смотреть и расшифровывать план запроса в PostgreSQL
Узнаете как создавать индекс не блокируя таблицу
Поймете, как работают процессы vacuum и autovacuum

3. Hibernate. Наследование в базах данных. Связи
Вы изучите стратегии наследования в JPA и как они реализуются в коде: Table Per Class, Single Table, Join Table
Узнаете как правильно настраивать связи между таблицами: OneToOne, ManyToOne/OneToMany, ManyToMany
Разберетесь как работают параметры fetchType и cascade
Научитесь обнаруживать и исправлять проблему N + 1
Освоите лучшие практики по наследованию и связям таблиц в реальных проектах

4. Транзакции и блокировки
На этом занятии вы узнаете, какие проблемы могут возникнуть при взаимодействии с базой данных
Разберетесь с принципами ACID, уровнями изоляции транзакций, поймете когда необходимо менять уровень изоляции на реальном проекте
Узнаете как работает аннотация @Transactional в Spring Data, как настраивать параметры timeout, propagation и isolation
Освоите CAP теорему
Изучите как работают оптимистические и пессиместические блокировки, поймете когда их необходимо использовать на коммерческом проекте

Модуль 5. Сопутствующие технологии

1. Системы сборки: Gradle, Maven
Вы изучите основные понятия Gradle и Maven, научитесь создавать и собирать проекты с их помощью
Узнаете, как управлять зависимостями, использовать плагины, подключать внешние репозитории
Освоите жизненные циклы сборки и научитесь работать с переменными и профилями в pom.xml и build.gradle
Напишете основу своей библиотеки, опубликуете ее в удаленном репозитории, импортируете библиотеку в ваш проект

2. Docker, Kubernetes, Openshift
Вы изучите основные понятия виртуализации, поймете разницу между виртуальной машиной и контейнером
Научитесь создавать и управлять контейнерами с помощью Docker и Docker Compose
Узнаете, что из себя представляет Kubernetes, какие в нем есть компоненты. Поймете, чем отличается Openshift от Kubernetes
Развернете свой микросервис сначала в Docker, а затем в Kubernetes в нескольких экземплярах с балансировкой нагрузки

3. Git
Вы изучите основные практические сценарии работы с Git в реальном проекте
Посмотрите как правильно разрешать конфликты, использовать ветвление, сравнивать состояния и откатывать изменения
Узнаете какими операциями лучше пользоваться, а каких избегать, чтобы случайно не потерять и не испортить код
В завершение занятия вы получите представление о семантическом версионировании и ведении GitFlow на реальном проекте

4. CI/CD
Вы узнаете, что из себя представляет CI/CD и как происходит автоматизация процесса развертывания приложений на реальном проекте
Научитесь разворачивать приложение на удаленном сервере
Настроите Jenkins pipeline'ы для сборки и деплоя вашего приложения на удаленный сервер по git tag'у

5. Очереди сообщений. Kafka
Вы узнаете для чего нужны очереди сообщений, поймете почему большинство компаний отдают предпочтение Kafka
Изучите основные понятия: broker, zookeeper, message, topic, partition, producer, consumer
Узнаете, как Kafka обеспечивает отказоустойчивость и масштабируемость
Рассмотрите политики доставки сообщений: at most once, at least once, exactly once
Подключите kafka к приложению, посмотрите как происходит распределение партиций между Consumer'ами
В заключительной части узнаете про паттерн Dead Letter Queue и как он реализуется в Spring Kafka

6. Тестирование
Вы узнаете почему необходимо писать тесты

Изучите, как использовать:

JUnit
Mockito
Параметризированные тесты
Spring Boot Tests для тестирования с поднятием контекста
mockMvc для тестирования контроллеров
Testcontainer'ы для поднятия PostgreSQL
Узнаете Best practices по написанию тестов


Модуль 6. Микросервисы

1. Паттерны микросервисов
На этом занятии вы узнаете достоинства и недостатки монолитной и микросервисной архитектур
Изучите основные паттерны микросервисной архитектуры: LoadBalancer, API Gateway, Service Discovery, CQRS, 2PC, Saga, Transactional Outbox и другие
Поймете в каких случаях применяется каждый из них
Разберетесь с чем чаще всего сталкиваются разработчики на практике
Узнаете что такое распределенные lock'и и как ими правильно пользоваться

2. Логирование и трассировка
На этом занятии вы узнаете о разнице между функциональными и нефункциональными требованиями
Научитесь работать с логами в Java, настраивать их ротацию и архивирование
Узнаете, как использовать MDC контекст для добавления дополнительных параметров
Познакомитесь со стеком ELK для централизованного управления и хранения логов, подключите ваше приложение к ELK
Узнаете, что такое трассировка, запустите Jaeger и настроите отправку трейсов

3. Мониторинг
Вы научитесь мониторить и управлять вашим приложением с помощью Spring Boot Actuator
Развернете локально Prometheus и Grafana
Научитесь создавать собственные метрики и дашборды для мониторинга бизнес-сценариев
Узнаете, как настраивать алерты и получать уведомления о проблемах в работе приложения

4. Нагрузки, профилирование
Вы научитесь проводить нагрузочное тестирование и определять требования к производительности
Освоите инструменты профилирования: VisualVM, IntelliJ IDEA Profiler
Подадите нагрузку на приложение с помощью JMeter, найдете bottleneck с помощью профилирования и исправите проблему
Научитесь анализировать Heap Dump и обнаруживать утечки памяти

5. Безопасность
На этом занятии вы изучите основные принципы безопасности в реальных системах
Узнаете о типичных атаках, уязвимостях и способах их предотвращения
Изучите как применяются следующие технологии: SSL/TLS, Цифровая подпись, Сертификаты, mTLS, OAuth, SSO, m2m, token, JWT, Роли
Рассмотрите схему безопасности реального проекта


Модуль 7. Собеседования

1. Алгоритмическая секция
Вы узнаете, как проходит алгоритмическая часть собеседования и как к ней готовиться
Научитесь определять алгоритмическую сложность в Big O нотации
Посмотрите пример прохождения алгоритмической секции на собеседовании, для понимания того, как стоит себя вести

2. Состав команды и процессы
На этом занятии вы узнаете о структуре команды разработки и ролях в ней
Получите представление об основных церемониях Scrum (Agile), научитесь оценивать задачи в Story Points
Поймете, как правильно рассказывать про опыт работы в команде
Узнаете о бизнес-процессе разработки от возникновения идеи до поставки продукта клиенту

3. Резюме. Заключительное
Вы узнаете о текущей ситуации на рынке Java разработки и процессе подбора кандидатов
Научитесь составлять сильное и эффективное резюме, избегая типичных ошибок
Узнаете о способах повышения шансов на успешное трудоустройство

Цена 78000 руб




СКАЧАТЬ КУРСЫ
 
Сверху