MIDDLE
JAVA
DEVELOPER

Длительность:
3 месяца
Курс Junior-to-Middle
с дальнейшей стажировкой
в Цифровых привычках
Формат:
Online по Zoom
Старт:
18 июля
MIDDLE
JAVA
DEVELOPER
Длительность:
3 месяца
Курс Junior-to-Middle
с дальнейшей стажировкой
в Цифровых привычках
Формат:
Online по Zoom
Старт:
18 июля
MIDDLE JAVA
DEVELOPER
Длительность:
3 месяца
Курс Junior-to-Middle
с дальнейшей стажировкой
в Цифровых привычках
Формат:
Online по Zoom
Старт:
18 июля
Подробнее о курсе
Как проходят лекции на курсе
Часть лекции JDBC & JPA
Онлайн занятия в группах 10-15 человек с преподавателями по Zoom.

25 лекций и практические занятия с преподавателями, 4 домашних работы, консультции с ментором, Live Coding, а также дополнительные задания и материалы для изучения.
Как проходит обучение
1
Смотришь лекции в удобное время
Изучаешь теорию, которая пригодится на практических занятиях с преподавателями
2
Проходишь практику
На живых семинарах с преподавателями решаешь реальные кейсы и отрабатываешь теорию на практике
3
Домашние задания
Выполняешь практические работы, которые будут проходить код-ревью у ментора
4
Консультации с ментором
На личных консультациях ментор разбирает твои ошибки и сложные темы, дает рекомендации по дальнейшему развитию
5
Live Coding
Практика живого кодирования вместе с ведущим экспертом в области Java
Решаем небольшие задачки по всем канонам ООП и TDD
6
Проходишь аттестацию
Аттестация проходит в формате индивидуальной консультации с преподавателем
Это срез знаний и хорошая прокачка перед техническим интервью
7
Готовишься к собеседованию
Вместе с практикующими экспертами составляешь сильное резюме иготовишься к техническому интервью на Middle позицию
8
Стажировка
По окончании курса ты пройдешь стажировку в нашей компании

Программа обучения

Java Core
    • Основы работ Java программ
    Основы Java, которые часто пропускают. Разберем, что такое classloaders, и как сделать настоящий immutable класс.

    • Домашнее задание №1
    Реализовать программу, которая получает ключевое слово для поиска на Wikipedia, достает из результатов текст, и на основе динамически загружаемых плагинов на выходе формирует отчет и записывает результат в файл.

    • Java Collections Framework
    Подробно разберём внутреннее устройство коллекций, проанализируем алгоритмическую сложность, и научимся грамотно выбирать наиболее подходящую под конкретные виды задач.

    • Stream API
    Освоим навыки работы с потоками: способы их создания, свойства и особенности реализации. И самое главное — научимся решать емкие задачи кратко и лаконично.

    • Garbage collector
    Разберемся, как работают Garbage collectors, какими они бывают, чем отличаются друг от друга. Узнаем, почему может возникнуть утечка памяти и как с ней бороться.

    • Инструменты сборки
    Сравним две популярные системы сборки — Maven и Gradle. Научимся находить и правильно разрешать конфликты транзитивных зависимостей. Покажем, для чего в Gradle нужен wrapper и как написать свои таски.

    • Java Memory Model
    Поговорим об atomicity, visibility и reorderinghappens-before. Разберем фундаментальные вещи, которые вводят энтропию в многопоточный код.

    • Multithreading in Java + дополнительное задание
    Расскажем, как делать правильный многопоточный конвейер и безопасно проводить финансовые операции в конкурентной среде.

    • Домашнее задание №2
    Реализовать построчное чтение файла, многопоточную обработку текста, и запись результата в файл в отдельном потоке.
      Промышленная разработка на Java
      • Docker
      Покажем, из чего состоит docker образ и как его создать. Разберем способы уменьшения размера образа: multistage билды, buildpacks, alpine base images. Покажем, как с помощью docker-compose развернуть десяток микросервисов за пару минут.

      • Практическая работа по Docker
      Написать docker-compose файл, создать образы из исходников и собрать цепочку из двух микросервисов, БД и ui-консоли.

      • Архитектура web-приложений
      Разберемся, как строятся современные промышленные приложения, и научимся правильно соединять крупные компоненты наших систем между собой. Слои, протоколы, коннекторы — это лишь малая часть терминов, которые ты освоишь.

      • Паттерны разработки
      Расскажем, почему шаблоны проектирования — это важный инструмент разработчика, который помогает ему сэкономить время и сделать более качественное решение. Разберем виды шаблонов, как и когда их применять.
          Базы данных
          • Databases
          SQL vs NoSQL vs NewSQL. Расскажем, как разобраться с многообразием баз данных, когда какую использовать. Дадим практические примеры, чтобы ты разобрался в CAP теореме и понял, как она может помочь в жизни.

          • SQL
          Разберем SQL на продвинутом уровне. Расскажем о малоизвестных фичах, которые позволяю писать быстрые запросы. Также поговорим о грамотном проектировании БД.

          • Databases: Optimiation
          Научим оптимизировать базы данных для повышения производительности приложений. Расскажем о методах оптимизации, которые помогут ускорить запросы.

          • JDBC & JPA
          Подключимся к базе данных из Java-приложения. Узнаем, что такое JDBC и чем он отличается от JPA. Разберем, как работать с Hibernate и что такое жизненный цикл entity.
          Spring
          • Spring Core
          С помощью простых и наглядных примеров разберем, в чем преимущество принципа DI, и зачем нужен IoC контейнер. Попробуем три способа конфигурации Spring-приложения и три способа внедрения зависимостей. На практике разберемся с Bean Definitions, Bean Scopes и BeanPostProcessor.

          • Домашнее задание №3
          Реализовать веб-сервер на Spring Boot по работе с сущностями Person и Department. Реализовать базовые CRUD операции над ними, написать unit-тесты и задеплоить его на Heroku.

          • Spring Boot
          Узнаем исторические предпосылки появления Spring Framework и Spring Boot. Поймем, в чем их отличие и секрет успеха. Заглянем под капот Spring Boot и поработаем с автоконфигурацией. Более детально познакомимся с фазами инициализации контекста, жизненного цикла бинов, конфигурацией пользовательских настроек.

          • Домашнее задание №4
          Реализовать загрузку property-файлов из файловой системы и из classpath в общий пул properties Spring.

          • Spring Modules
          Узнаем, как Spring Data делает жизнь разработчика лучше, а Spring MVC ставит написание RESTful сервисов на поток. Мы вместе напишем приложение, которое ответит на эти и многие другие вопросы. А также убедимся на практике, что TDD — не пустой звук, а unit-тесты — неотъемлемая часть процесса разработки.

          • Тестирование + Spring Boot Test
          Уделим внимание теме тестирования в целом и Spring Boot Test в частности. Посмотрим на пирамиду тестирования и определим место Java-разработчика в ней. Поговорим о разных типах тестов и наиболее распространенных ошибках при их написании.
          Инфраструктура
          • Async Java with Kafka
          Рассмотрим плюсы и минусы синхронного и асинхронного подхода, поговорим, когда и что применять. Разберем работу с очередями: какие преимущества они дают, какие сложности возникают при их использовании. Рассмотрим внутреннее устройство Apache Kafka, посмотрим на примере взаимодействие Producer – Consumer с помощью Spring Boot + Spring Kafka Client.

          • Сети
          Поговорим о моделях OSI и TCP/IP, какие протоколы туда входят, и как это поможет разработчику. Подробно разберем HTTP и HTTPS. Также уделим время WebSockets и безопасности в сети: сертификаты, инфраструктура x.509, и как это все работает в Java.

          • Kubernetes (K8S)
          Обсудим предпосылки появления технологии оркестрации контейнеров, поговорим про устройство кластера Kubernetes. Рассмотрим основные абстракции: Pod, Service, Deployment, Volume, Secret и т.д. Разберем, как устроена overlay сеть и как опубликовать сервис "наружу" кластера. Узнаем, зачем нужен Ingress. Рассмотрим примеры деплоя сервисов в Manager кластер Kubernetes на DigitalOcean. В завершении лекции поговорим про шаблонизатор Helm как production-ready средство для работы с кластерами.

          • Istio
          Поговорим про паттерн Service Mesh, обсудим проблемы, которые он решает. Разберем одну из реализаций Service Mesh – Istio, а также обсудим внутреннее устройство и новые типы абстракций: Gateway, VirtualService, DestinationRule и т.д. Как и в прошлой лекции, для демонстрации будем использовать Manager кластер Kubernetes в DigitalOcean, установим в него Istio и рассмотрим примеры настройки.

          • Agile, Scrum, Kanban
          Разберем гибкие методологии. Расскажем, как правильно внедрять и использовать Scrum, Kanban и XP, чтобы это не тормозило разработку, а помогало ей.

          • CI/CD
          Расписание курса
          Лекции
          Лекции
          В удобное время
          Каждую неделю ты смотришь лекции, проходишь тесты и выполняешь домашние задания
          Практика
          Практика
          По субботам
          На семинарах с преподавателями решаешь реальные кейсы и закрепляешь теорию на практике
          Консультации
          Консультации
          Индивидуально
          Ментор разбирает твои ошибки и сложные темы, дает рекомендации по дальнейшему развитию
          На каких проектах работают
          наши выпускники
          СберСпасибо
          Одна из крупнейших программ лояльности в России
            Fynative
            Платформа цифрового банкинга
              KYNN
              Онлайн-платформа для карьерного роста IT-специалистов
                SberWorks
                Управление проектным окружением в DevOps по облачному принципу
                Мобильный банкинг
                Среди наших клиентов Сбер, ВТБ, МКБ и Сетелем
                DigRef
                Платформа для разработки реферальных продуктов и услуг
                Преподаватели
                Победители хакатонов, преподаватели в вузах, руководители отделов разработки
                крупнейших банков страны
                Алексей Романов
                Java Architect, преподаватель МГТУ им. Н.Э. Баумана
                Алексей Мухин
                Senior Java developer в банковской сфере
                Андрей Сундуков
                Senior Java developer в VR Bank, HeadHunter
                Михаил Красильников
                Software Engineer EPAM
                Владислав Казаков
                Java Architect в Цифровых Привычках
                Андрей Сычев
                Middle Java developer в Raiffeisenbank
                ex-разработчик в QIWI, СберБанк, дочерней компании Банка России


                Роман Оборин
                Ведущий разработчик в BNP Paribas
                ex-разработчик в СберБанке, Orion Innovation, ALPOM

                Алексей Степанов
                Ведущий разработчик на проекте ВТБ
                ex-разработчик в Банке Открытие, OBOZ, Regeneron
                Владимир Красильщик
                Senior Java Developer с 17-ти летним опытом
                ex-разработчик в Luxoft, Яндекс, Dino Systems
                Отзывы наших выпускников
                Михаил Галактионов
                Middle Java developer "Цифровые привычки"
                Владимир Годияк
                Middle Java developer "Цифровые привычки"
                Курсы закрепили мои знания по Java core, Spring framework и др., а так же я познакомилась с новыми, для меня, технологиями, например, такими как Kafka и Kubernetes. На каждом занятии сидело 2 – 3 разработчика с большим стажем, так что, помимо теории, было много историй из практики.
                Варвара Ситникова
                Middle Java developer "Цифровые привычки"
                Я сразу устроился на проект и одновременно учился на курсе. Смог объединять работу, учебу в магистратуре и курс. Теория на курсе часто встречается потом на проектах, я часто пересматриваю лекции, чтобы реализовать фичу на проекте, потому что преподаватели делятся именно своим практическим опытом, который потом можно применять
                в жизни.
                Михаил Галактионов
                Middle Java developer "Цифровые привычки"
                Курс помог мне вспомнить основы, а кое-где углубить некоторые знания. Получил много хороших впечатлений от слушания лекций. Узнал некоторые вещи, о которых только слышал краем уха от "старших" коллег. Теперь у меня новая долгожданная работа.
                Алексей Карташов
                Middle Java developer "Цифровые привычки"
                Курс рассчитан на то, что слушатели уже имеют какие-то знания по языку Java и опыт работы. На лекциях преподаватели как повторяют самые основы, так и рассказывают о редко где встречающихся аспектах. Домашние задания были построены таким образом, чтобы охватить и применить на практике как можно больше возможностей языка, поэтому для их выполнения необходимо было самостоятельно дополнительно поразбираться.
                Александр Вдовин
                Middle Java developer "Цифровые привычки"
                Курс помог мне разложить по полочкам базу по Spring'y, очень полезна была лекция по Kubernetes и Kafka. Именно из-за этих лекций я шел на курс, и эти темы объяснили максимально простым и понятным языком, с примерами из практики. Отдельно хочу отметить домашние задания и консультации с преподавателями, они помогли понять, какие темы стоит подтянуть.
                Андрей Дудырев
                Middle Java developer "Цифровые привычки"
                До курса я почти 2 года работал программистом. Для перехода на Middle-позицию мне не хватало теории по микросервисной архитектуре. На курсе мы прошлись по микросервисам, стал увереннее себя чувствовать в этой теме. Мне были очень полезны лекции по Docker, SQL и многопоточке.
                Андрей Стогов
                Middle Java developer "Цифровые привычки"
                На курсе разбираются все самые популярные темы и вопросы собеседований. Причём очень глубоко и системно. Плюс, это все закрепляется крайне полезными мастер-классами по современным технологиям, например kubernetes, istio и др. Короче, это было очень круто, спасибо!
                Дмитрий Кокотов
                Middle Java developer "Цифровые привычки"
                В курсе не было ничего лишнего, и полученные знания помогают мне сейчас на проекте. Из преподавателей хочу отметить Андрея Сундукова. Он грамотно подавал сложный материал, использовал аналогии и подкреплял любую теорию примерами в коде, постоянно взаимодействовал со студентами и не давал заскучать. Круто, что домашние задания составлены таким образом, чтобы ты не терял время и сразу думал над решениями в контексте тематики: в готовых сконфигурированных проектах уже настроены пайплайны для тестов и прочее, остается только применить и отточить полученные на лекции знания.
                Лев Стахеев
                Middle Java developer "Цифровые привычки"
                Курс действительно оказался полезным и полностью оправдал мои ожидания. Он помог мне структурировать теорию и закрепить знания на практике. Наиболее полезными темами для меня были: Нефункциональные требования, Архитектура Web-приложений, VSC и CI/CD. Новые знания помогли мне устроиться на проект Сбера "Монеты и слитки" и быстро влиться в рабочий процесс.
                Бари Валиахмедов
                Systems Analyst "Цифровые привычки"
                Мегаполезными лекциями для меня были по Java Memory Model и многопоточке. Из преподавателей больше всех запомнился Андрей Сундуков. Он доходчиво объяснял сложный материал и давал задания прямо во время лекции, так что учеба была интенсивной и разнообразной.
                Евгений Власов
                Middle Java developer "Цифровые привычки"
                На курсе мы разбирали темы, которые реально пригодились в работе и при прохождении собеседования на проект. Я узнал много нового про работу со Spring, Docker и базами данных.
                Андрей Павлов
                Middle Java developer "Цифровые привычки"
                На курсе я хотел закрепить и структурировать свои знания, а в итоге узнал много нового. Самыми полезными лекциями для меня были по основам Java, где рассматривались тонкости языка, например, правила Happens-before. Также начал работать с новыми для меня технологиями: Kafka и Istio. Из преподавателей мне больше всех запомнился Андрей Сундуков, потому что на лекциях он давал множество инсайтов из своего опыта, интересно было слушать и подмечать что-то для себя.
                Павел Нарижный
                Middle Java developer "Цифровые привычки"
                Самыми полезными лекциями для меня были по TypeScript, и все лекции Александра по React. В практических домашних работах мы применяли все полученные знания, а также было много отдельных небольших упражнений по пройденному материалу.
                Владислав Иванов
                Middle JavaScript developer "Цифровые привычки"
                Лично для меня самыми полезными лекциями были по OpenAPI, архитектуре web-приложений и тестированию. У каждого преподавателя были свои фишки, все понятно объясняли темы и отвечали на вопросы. По тестам была хорошая обратная связь, сразу становилось ясно, где и что я не совсем поняла.
                Надежда Филимонова
                Systems Analyst "Цифровые привычки"
                Курс прокачал мои знания в разных аспектах системного анализа: проектирование БД, разработка базовой информационной модели, нефункциональные требования применимые к бэкендовым системам, API и брокеры очередей. Ну и самое классное – это трудоустройство после курса.
                Лика Кузнецова
                Systems Analyst "Цифровые привычки"
                Отзывы наших новых сотрудников
                Наши преподаватели и выпускники
                Close
                У вас есть вопросы? Напиши нам!
                E-mail
                Имя
                Вопрос
                Я соглашаюсь c политикой конфиденциальности