Спартак
До обучения в OTUS я уже много лет работал в ИТ. Начинал (в далеком 2003 году) с Delphi, С, а сейчас в основном занимаюсь бэкенд-разработкой на Kotlin, Java и Go. В работе использую Spring Boot, Docker, Kubernetes и другие инструменты, связанные с разработкой и эксплуатацией современных сервисов.
Курс «Проектирование и разработка Kotlin-бэкенда» я выбрал потому, что хотел не просто изучить отдельные возможности Kotlin, а систематизировать свои знания и лучше разобраться в проектировании полноценных бэкенд приложений. Особенно интересовали архитектурные подходы, многомодульная структура проекта, Ktor, корутины, паттерны проектирования и организация бизнес-логики.
Больше всего в обучении мне понравилась практическая направленность. Домашние задания были связаны между собой и постепенно складывались в полноценный проект. Благодаря этому новые темы не оставались только теориеи -их можно было сразу применять на практике и видеть, как отдельные решения влияют на архитектуру всего приложения.
Отдельно хочу отметить вклад автора курса Сергея Окатова. Видно, что за программой стоит большой практический опыт. Курс выстроен не как набор разрозненных лекций, а как последовательный путь от базовых вещей к проектированию и реализации полноценного бэкенд-приложения. Материалф и архитектурные подходы помогли посмотреть на разработку более системно, а не только с точки зрения написания отдельных классов и функций.
Полезными для меня были темы, связанные с архитектурой, паттернами, Ktor, многопоточностью, корутинами и разделением приложения на слои. Итоговый проект позволил пройти весь путь разработки: от формирования требований и проектирования архитектуры до реализации, тестирования и защиты готового решения.
При этом некоторые темы, на мой взгляд, можно было бы сделать более компактными. Например, вводную тему про типы и объявление переменных. Для курса профессионального уровня ей уделено довольно много внимания. Также отдельное занятие, посвящённое обработке персональных данных, показалось мне не совсем сбалансированным. Сама тема важная и достаточно объемная, но полноценно раскрыть её в рамках одного занятия сложно, а большая часть представленной информации доступна в открытых источниках. Освободившееся время я бы предложил направить на дополнительные занятия по корутинам, многопоточности и реактивному подходу.
В целом курс оправдал мои ожидания. Он помог мне систематизировать уже имеющийся опыт, глубже разобраться в Kotlin и получить дополнительные инструменты для проектирования бэкенд-систем. Особенно полезен курс будет разработчикам, которые уже знакомы с Kotlin или Java, но хотят перейти от изучения языка к проектированию и созданию полноценных приложений.