golang

Чему вы научитесь на бесплатном курсе VK Education по Go?

  • пятница, 8 сентября 2023 г. в 00:00:22
https://habr.com/ru/companies/vk/articles/759314/

Привет, Хабр! Меня зовут Антон Сулаев, я руководитель команды бэкенд-разработки Почты Mail.ru в VK и по совместительству ведущий преподаватель онлайн-курса «Разработка веб-сервисов на Golang». Недавно мы рассказали об открытии набора на новые бесплатные курсы VK Education по нескольким востребованным направлениям — программирование на Python и Go, а также техподдержка.

В этой статье мы подробнее расскажем о курсе «Разработка веб-сервисов на Golang», слушатели которого смогут развить навыки программирования на этом языке и научатся использовать его в серверной веб-разработке.

Подача заявок на программу открыта до 20 сентября включительно. Она бесплатная, но нужно пройти отбор. Для поступления требуются знание Python, С/С++ или JavaScript, а также понимание принципов работы основных веб-протоколов и баз данных. Само обучение начнётся 28 сентября. Эта статья поможет понять, из чего состоит курс, чем он будет полезен студентам, а также в целом составить представление о профессии Go-разработчика.

Для начала — немного о себе

Я занимаюсь веб-разработкой на Go шестой год. В VK работаю с 2017 года. Занимательный факт — я пришёл на работу в компанию после окончания того же курса, на котором теперь преподаю :) Я начал путь от стажёра в VK и вырос до senior-грейда, став тимлидом. Сейчас разрабатываю API основного бэкенда Почты Mail.ru, который связывает бизнес-логику глубокого бекенда (поиск, хранение писем, авторизация, профиль пользователя и другие) и клиентов (веб, iOS, Android).

Чем занимается наша команда:

  • Отвечает за SLA основного бэкенда Почты Mail.ru. Мы поддерживаем его на уровне 99,99999.

  • Предоставляем инструменты разработки и тестирования кода API для других команд. Мы обеспечиваем его проверку, выкатку и мониторинг.

На образовательных курсах VK Education преподаю уже четвёртый год. Кто-то занимается этим для построения личного бренда, другие — для развития ораторского мастерства, а я преподаю, чтобы находить талантливых стажёров и сотрудников к нам в команду. Не секрет, что лучшие выпускники курсов имеют перспективы трудоустройства в компанию. 

Курс ведут:

  • Антон Сулаев (это я) — руководитель команды бэкенд-разработки API Почты Mail.ru

  • Дарья Фёдорова — ведущий разработчик команды бэкенд-разработки API Почты Mail.ru

  • Андрей Киселёв — бэкенд-разработчик кросс-командных сервисов в Почте Mail.ru

  • Александр Сазонов — бэкенд-разработчик API в Почте Mail.ru

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

Go — популярный язык, который хорошо подходит для создания высоконагруженных систем. На нём приятно писать и поддерживать уже имеющийся код. Чаще всего его используют для бэкенд-разработки при написании сайтов, серверных приложений, парсеров, сложных вычислительных систем и даже баз данных. Мы всегда рады новым разработчикам на Go, учитывая рост таких систем в нашей компании. 

На курсе вы освоите асинхронное программирование, оптимизацию производительности и кодогенерацию, поработаете с базами данных и микросервисами, научитесь разрабатывать веб-сервисы на Go. Всего будет 13 занятий на 52 академических часа. Программа курса будет разнообразной – ниже я постарался более подробно её расписать.

Итак, слушателей курса ждут:

  • Вступительная лекция. Знакомство с Go.

  • Асинхронное программирование.

  • Основы работы с сетью, HTTP.

  • Проектирование API, авторизация.

  • Разработка веб-приложения и его архитектура.

  • Работа с системами хранилищ.

  • Безопасность веб-приложений.

  • Микросервисы.

  • Конфиги, мониторинг.

  • Continuous integration & deploy.

  • Рефлексия и кодогенерация.

  • Резюме современного backend-разработчика и что мы делаем в highload.

Помимо этого студентам будет необходимо выполнить 10 практикоориентированных домашних заданий, например:

  • поэкспериментировать с «чистой архитектурой»;

  • сделать микросервис с использованием gRPC;

  • настроить развёртывание кода на виртуальной машине с помощью Gitlab CI/CD;

  • повозиться со связкой Grafana и Prometheus;

  • написать свой кодогенератор поверх парсера AST;

  • научиться работать с Reflect;

  • оптимизировать код и научиться пользоваться профилировщиком. 

На заключительной лекции мы расскажем, как продолжать развиваться и строить карьеру в бэкенд-разработке, какие задачи решают бэкендеры конкретно в нашей команде и чего мы ожидаем от будущих кандидатов.

Анастасия Скуйбедина, менеджер образовательных проектов VK:

Мы постоянно совершенствуем наши образовательные программы, чтобы прививать студентам самые актуальные навыки, которые востребованы в IT-индустрии сегодня. Отличительной особенностью всех программ, включая “Разработку веб-сервисов на Golang”, является их практикоориентированность. Студенты будут выполнять домашние задания, приближенные к реальным задачам и кейсам индустрии, участвовать в практических воркшопах с менторами и финальном хакатоне, а также смогут получить первичную рецензию кода в домашних заданиях.

Чтобы поступить на курс, нужно пройти онлайн-тестирование. В него входят задачи на базовое знание C/C++, основ веба и логику. То есть для поступления нужно обладать начальным набором знаний по этому направлению. Например, мы не будем объяснять в деталях что такое SQL-запросы и HTTP и как они работают — всё это студенты должны уже знать. Подготовиться к прохождению вступительных испытаний поможет список полезных материалов на сайте.

Каким должен быть Go-разработчик?

Идеальный разработчик — не тот, кто просто пишет код, а тот, кто умеет его раскатывать и решать возникающие проблемы. И хотя наш курс называется «Разработка веб-сервисов на Golang», мы будем говорить не только про код, но и про всё, что с ним связано. 

Главное, нужно уметь задавать вопросы, не терять энтузиазма и получать удовольствие от того, что ты встречаешь и решаешь новые, непривычные задачи. У нас в команде две похожие задачи одному человеку достаются раз в пару лет. Поэтому крутого стажёра отличает то, сколько он готов уделять времени изучению неизвестного. Не просить ментора расписать ему план действий, а копать самому и получать от этого настоящее удовольствие.  То есть необходима самостоятельность в принятии решений, умение договариваться и исследовать. 

Подчеркну: в нашей компании junior — это сотрудник, который порой может самостоятельно решать довольно крупные задачи. Это полноценный член команды. Конечно, стажёрам и начинающим специалистам мы помогаем, но по мере накопления опыта ожидаем, что человек будет всё больше делать самостоятельно. 

Бэкенд-разработка так же интересна, как и другие направления, и здесь есть множество возможностей для карьерного роста — как вертикального, так и в экспертной плоскости. При желании всегда можно попробовать себя в новой специальности. Например, я знаю случаи, когда Android-разработчик становился бэкендером или бэкендеры начинали заниматься разработкой под iOS. Главное — готовность расти, вкладывать время и силы в постоянное изучение нового, брать на себя ответственность и принимать решения.