Программист на Java занимается разработкой ПО. Участие в данном курсе позволит вам приобрести экспертные знания в области языка программирования, опыт работы с фреймворками и библиотеками Java, навыки взаимодействия с базами данных, понимание HTML, CSS, JavaScript, а также практический опыт работы с веб-серверами и клиент-серверной архитектурой.
Вы освоите принципы объектно-ориентированного программирования, узнаете, как работать с интеграционными и тестировочными инструментами (Maven, JUnit, Jenkins), сможете наработать себе профессиональное портфолио и практиковаться.
Курс создан для разработчиков с как минимум двухлетним опытом работы. После этого курса вы сможете браться за более трудновыполнимые задачи.
В данной теме вы узнаете о различиях между разными версиями Java (11, 17, 21), а также о различиях между OpenJDK и OracleJDK. Будет рассмотрено, как выбрать подходящую версию для вашего проекта.
Здесь вы погрузитесь в мир байткода: промежуточного кода, который генерируется компилятором и выполняется виртуальной машиной Java (JVM). Вы узнаете, как проверять и оптимизировать байткод.
Instrumentation позволяет встраивать агентов в приложения для мониторинга и изменения их поведения. Вы узнаете, как использовать Instrumentation и Agent для различных целей, например, профилирования приложений.
Здесь рассматривается управление памятью в Java Virtual Machine (JVM). Вы изучите структуру в JVM и различные типы, такие как heap и stack.
Вы исследуете различные алгоритмы сборки мусора (Garbage Collection) в JVM, такие как SerialGC, ParallelGC и CMS GC. Вы узнаете, как они работают и как выбрать подходящий алгоритм для вашего приложения.
Вы продолжите изучение алгоритмов сборки мусора в JVM, сосредотачиваясь на алгоритмах G1 и ZGC. Вы узнаете их особенности и сравните их с другими алгоритмами GC.
Вы узнаете, как создавать и анализировать дампы памяти (Memory Dumps) в JVM, чтобы выявлять утечки и другие проблемы производительности.
Вы разберётесь, в чём заключается использование off-heap, что позволяет обойти ограничения heap и улучшить производительность приложения.
Вы пройдёте разбор Class Data Sharing (CDS), технологии в JDK, которая позволяет уменьшить время запуска приложения и использование за счет предварительной загрузки и кэширования классов.
Вы узнаете о модульной системе (Project Jigsaw), которая позволяет разделять приложения на модули и управлять зависимостями между ними.
Вы погрузитесь в использование различных инструментов JDK, таких как jconsole, jvisualvm, jmc и другие, для мониторинга и отладки приложений.
На последнем занятии будет организована сессия вопросов и ответов, где вы сможете задать все интересующие вас вопросы и уточнения по изученным темам.
Вы узнаете о библиотеке Microbenchmark Harness, которая позволяет проводить микробенчмаркинг и измерять производительность кода. Вы выполните практическое задание по работе с этой библиотекой.
Вы изучите инструмент JMeter и научитесь организовывать нагрузочное тестирование. Вы выполните задание по созданию тестовых сценариев и анализу результатов.
В этой теме будет рассмотрено использование различных классов из пакета, таких как Atomics, HashMap и SkipListMap, для обеспечения потокобезопасности в приложениях.
Здесь будет углубленное изучение темы с блокировками посредством классов Locks, ReadWriteLock и ReentrantLock из пакета java.util.concurrent. Вы узнаете, как правильно использовать и управлять блокировками в многопоточных средах.
В теме будет рассмотрены различные механизмы синхронизации и координации потоков из пакета, такие как CountDownLatch, Semaphore и Phaser. Вы узнаете, как использовать их для организации совместной работы потоков.
Здесь будет изучено профилирование приложений с использованием инструментов Thread dump и Flight Recorder (JFR). Вы выполните задание по анализу производительности.
В этой теме вы продолжите изучение, работая с инструментами jvisualvm и asyncProfiler. Вы выполните задание по анализу и оптимизации.
В данной теме будет рассмотрено как улучшить производительность на HotSpot JVM путем оптимизации кода, настройки JVM и других методов. Вы узнаете о советах и лучших практиках по повышению производительности.
Здесь вы узнаете о NIO (New Input/Output), альтернативном и более эффективном подходе к работе с сетевыми операциями.
В этой теме будет рассмотрено реактивное программирование с использованием библиотеки Reactor. Вы изучите основные концепции и принципы реактивного программирования и выполните задание по работе с Reactor.
Здесь вы узнаете о методах оптимизации производительности, написанных с использованием реактивного программирования на библиотеке Reactor.
На последнем занятии будет проведена сессия вопросов и ответов, где вы сможете задать любые вопросы по изученным темам и уточнить неясности.
В данной теме вы вспомните основные понятия и возможности Docker, такие как контейнеризация, создание образов, работа с контейнерами, сети и томами данных. Выполним практическое задание по работе с Docker.
Здесь вы погрузитесь в мир Kubernetes и изучим основные концепции, такие как поды, сервисы, неймспейсы, деплойменты и многое другое. Вы узнаете, как использовать Kubernetes для оркестрации и управления контейнеризированными приложениями.
В этой теме рассмотрите инструмент Helm, который позволяет управлять установкой, обновлением и удалением приложений в Kubernetes с помощью шаблонов. Вы выполните практическое задание по созданию и установке Helm-чартов.
Здесь вы изучите важность сбора и анализа метрик в микросервисной архитектуре. Вы узнаете о различных типах метрик, их сборе, агрегации и визуализации для мониторинга и оптимизации работы приложений.
Вы погрузитесь в инструменты мониторинга Prometheus и визуализации Grafana. Вы научитесь настраивать сбор метрик с помощью Prometheus, а также создавать красивые дашборды для мониторинга с Grafana.
Вы рассмотрите концепцию сквозного логирования (distributed tracing) в микросервисных приложениях и изучим инструменты, такие как OpenTracing, Jaeger и Zipkin, для мониторинга и анализа логов.
Вы обсудите основные принципы проектирования и архитектуры микросервисов, такие как декомпозиция, границы контекста, коммуникация и многое другое. Вы узнаете, как разрабатывать масштабируемые и устойчивые микросервисные системы.
Вы поучаствуете в сессии вопросов и ответов, где вы сможете задать любые вопросы по изученным темам о микросервисах и получить подробные ответы от преподавателя.
Вы узнаете о протоколе REST, а также о спецификациях Swagger и OpenAPI, которые позволяют описывать и документировать API. В домашнем задании вы применитеэти знания для создания и документирования RESTful API.
Здесь мы изучим сериализацию данных с использованием Protobuf и протокол взаимодействия gRPC. Вы научитесь создавать и использовать сильно типизированные сервисы и передавать данные между ними.
В этой теме вы погрузитесь в технологию Apache Kafka, которая предоставляет распределенную систему потоковых данных.
Вы обсудите важность балансировки нагрузки в распределенных системах и изучите различные методы ее настройки. Вы узнаете, как правильно настраивать балансировщики нагрузки для обеспечения высокой доступности и производительности приложений.
Вы узнаете о принципах резервирования, транзакционной поддержке, асинхронной обработке и других подходах к обеспечению стабильности приложений.
Вы научитесь создавать и настраивать задания, планировать их выполнение в соответствии с расписанием.
Вы узнаете, какие проблемы могут возникнуть при разработке на Java и как их избежать.
Вы сможете задать любые вопросы по изученным темам о разработке на Java и получить детальные ответы от преподавателя.
Вы определитесь с темой, которой посвятите свою проектную работу.
Вы обсудите трудности ли нюансы выполнения проекта.
Вы завершите обучение на курсе и представите его итог.
Просмотр обучающих видеороликов
Делаете все тогда, когда вам это удобно и в подходящем вам темпе
Объяснение возникших вопросов, закрепление пройденного материала и исправление ошибок
Данный проект, показывающий ваши навыки, будет прекрасным дополнением к вашему портфолио
Обучение организовано так, что вы можете спокойно совмещать его с работой, учебой и личной жизнью. Именно вы решаете, когда работать с материалами курса - вы занимаетесь тогда, когда удобно вам. Все уроки курса будут всегда в вашем доступе, даже после окончания курса, поэтому вы в любой момент сможете повторить пройденный материал.
Проверять ваши домашние задания будут эксперты, а также вас будет сопровождать куратор, который поможет справиться с трудностями. Вы получите профессиональные советы, рекомендации и лайфхаки.
Мы хотим, чтобы наши студенты развивались профессионально и строили карьеру. Вы получите возможность подать заявку в сервис по трудоустройству, после чего карьерный консультант поможет с резюме и поиском вакансий.
Да, вы можете обратиться к менеджеру и оформить возврат денежной суммы, пропорциональной количеству непройденных уроков.
Упражнения и задачи потребуется делать самостоятельно после любого занятия. Нагрузка по домашней работе насыщенная, но умеренная. Если не успеваете выполнять предложенный объём домашки, стоит обсудить и скорректировать с преподавателем этот момент.
Оставьте заявку на консультацию. Менеджеры подберут подходящие программы, ответят на все вопросы о стоимости обучения и о его формате.
Если вы хотите получить диплом, вам нужно сдать все предусмотренные в программе проекты. В остальном всё на ваше усмотрение. Помимо прочего, вы можете защитить свой проект не публично перед аудиторией, а лично в чате с преподавателем.