Пару месяцев назад я начал изучать Golang. Для этого, на тот момент, у меня было несколько причин:
- Python за 10+ лет уже немного поднадоел, но при этом я и сейчас могу сказать что язык отличный, и я и дальше планирую его использовать для определенных задач и пет-проектов. Новые фреймворки типа lightstar внушают определенный оптимизм.
- Почти все бигтехи в РФ имеют Golang на своих техрадарах, а это значит что спрос на эту технологию достаточно высокий и будет высоким еще как минимум несколько лет.
- Для хайлоада Golang выглядит более надежно, чем Python, а я давно хотел поработать именно в хайлоаде. Хотя при этом конечный результат, конечно, все равно зависит от разработчиков - я уверен, что при должном умении и на Python можно неплохо масштабироваться.
Но! На текущий момент я все еще не дошел до стадии принятия 😄 Для меня код на Python остается намного более "читабельным" и понятным, чем на Go, но я думаю это вопрос опыта и привычки.
А зачем мне вообще учить новый язык, я же "менеджер"?
Даже при том, что моя роль в Самолете не предполагала написание кода, я все равно люблю "нырять глубоко" (если время позволяет) и вникать в то, как работают конкретные продукты и сервисы под капотом.
Теперь немного о том, как я учусь:
- Классно помогают курсы, рассчитанные на уже опытных инженеров, нацеленные именно на помощь в переходе с одного языка на другой. Помимо основ языка, в таких курсах разбираются прикладные задачи, которые приходится решать day by day: написание тестов, mocks, лучшие практики с точки зрения структуры модулей и пакетов и другие.
- Developer Roadmap for Golang. Здесь в виде интерактивной карты собраны те аспекты языка, которые вам необходимо изучить чтобы получить необходимый уровень знаний и в целом насмотренность. Плюс, приведены популярные библиотеки, фреймворки и т.д.
- Веду собственную библиотеку решений задач. Помогает, в случае чего, быстро вернуться и вспомнить, как решается тот или иной кейс.
- Время от времени решаю задачки на Leetcode. Помогает "набить руку" с точки зрения базовых конструкций языка и заодно прокачать алгоритмическую базу.