![](https://habrastorage.org/webt/pd/hl/s9/pdhls9nkmyifnovo5tl8hb44p8s.png)
Многие из вас наверняка присматривались к своеобразному Go и хоть раз, но задумывались о переходе на него. Руководитель онлайн-курса «Разработчик Golang» Антон Телышев (работал в Mail.ru, Kaspersky Lab, Сбербанк) рассказал, почему этот инструмент действительно оправдывает ажиотаж вокруг него и кому имеет смысл освоить Go.
Привет! Я сам перешел на Go с «питона» и «плюсов», как и некоторые мои коллеги-преподаватели:
![](https://habrastorage.org/webt/hs/in/yo/hsinyot33kcr4wkp309qv-1kwfe.png)
И сейчас хочу выделить несколько причин, почему стоит освоить это язык.
1. Простота и надежность Golang
В принципе вы проходите Go-тур, открываете спецификацию языка и видите, что в нём всего 25 ключевых слов и он довольно прост.
Golang изначально был создан на замену C++. «Плюсами» можно заткнуть различные bottle necks, писать сложный и высокопроизводительный код. Но при этом обучение C++ долгое и сложное, особенно понимание последних стандартов, а вероятность «выстрелить себе в ногу» у начинающих разработчиков довольно высока. Да, в плане производительности Go не дотягивает в каких-то местах, но он компенсирует это более низким порогом входа.
2. На Go разрабатывается сложный и интересный софт
По моим наблюдениям сейчас есть две тенденции. Первая, что вы на Go собираете сервисы, которые перекладывают JSON из одного места в другой — это в основном встречается в крупных компаниях, данные задачи не всегда отличаются особой сложностью и часто решаются готовыми инструментами, написанными за вас. А вторая тенденция — то, что Go занял нишу вещей, которые пишут обычно на C++: производительный бэкенд, математика, обработка данных, ключевая нетривиальная бизнес-логика. В общем то, что раньше возлагалось на плечи «плюсов», .Net или Java, сейчас пытаются возложить на Go. Вспомним тот же Docker или Kubernetes.
3. Крупнейшие компании все активнее используют Golang
Если зайти на ХедХантер, в топ Go-компаний можно обнаружить Авито, который с PHP почти весь перешел на Golang, OZON, который полностью на Go, Wildberries, который работает на C++/ Rust и Go, а также Joom и Mail.ru (Почта, Delivery Club и тд). Как мы видим, в основной массе сейчас это маркетплейсы. Кстати, Mail.Ru можно назвать первопроходцем Go: в своё время Почта была переписана с Си на Go и один только easyjson чего стоит своим вкладом в сообщество.
4. Тренд «переписать на Go». Но при этом не для всего есть библиотеки на Go
Как раньше все, например, переписывали с Perl на Python, теперь все переписывают с Python на Go. И пока еще не для всего есть библиотеки, при желании вы можете внести свой вклад в сообщество. Например, реализовать что-то для машинного обучения или очередную библиотеку для конфигурирования, работы с изображениями и пр. и пр. и т.д. Хотя библиотек на Go много, его экосистема все еще не такая богатая, как в других языках.
5. Тренд на микросервисы
Монолиты в крупных компаниях начинают распадаться, и уже становится невозможно поддерживать огромные системы, написанные на одном языке. Go отлично подходит для создания микросервисов, поэтому востребованность таких разработчиков будет только расти.
6. Разработчиков мало, и они стоят дорого
Конечно, спорный аргумент, потому что каждый квартал ситуация меняется и за начальные позиции конкурирует все больше новоиспеченных специалистов. Но все-таки присутствует тенденция, что Middle/ Senior Go-разработчики претендуют на зарплаты выше, чем специалисты на других языках.
Резюмируя, я думаю, что Golang действительно перспективная технология и с точки зрения оптимизации процесса разработки, и с точки зрения карьеры.
Единственная причина, по которой я советовал бы подождать пока с Go — если вы рассматриваете его для себя, как первый язык.
Основная проблема новичка в том, что в Go есть вещи, которые все-таки немного пониже, чем в том же Python или любом другом интерпретируемом языке. Придется думать о том, как работает память, планировщик, как все же местами не выстрелить себе в ногу — обычно этих вещей новички не знают. Если вы учите, грубо говоря, C++, то вы спокойно ориентируетесь в указателях, в магии низкоуровнего программирования.
Так и наш онлайн-курс «Golang Developer. Professional» ориентирован на тех, кто уже знаком с программированием. Тех, кто приходит учиться, я могу выделить в три категории:
- Разработчики с опытом от 3-х лет, которые захотели перейти на новый язык ради новых и более сложных задач, работы в интересном проекте, вырасти в зарплате. После курса можно будет претендовать на Middle/ Senior позиции при условии, что уровень программирования у вас на достаточно высоком уровне.
- Администраторы, DevOps-инженеры, сетевые инженеры, которые решили переквалифицироваться в разработчики и заинтересовались Go. При наличии понимания основных принципов программирования можно пройти обучение, хоть и будет сложно. А после этого подобрать начинающую вакансию будет несложно — в направлении Go-разработки их достаточно много.
- Go-разработчики с опытом от 1 года, которые испытывают необходимость систематизировать и прокачать свои навыки. На курсе мы как раз углубляемся в возможности Go, разбираем рабочие кейсы и пробуем все на практике.
Мы постарались сделать курс глубоким и полезным, а не «капитанским». Программа из 35 вебинаров прокрывает все необходимые знания в разработке и развертывании. И кроме того, с каждым потоком мы обновляем примеры, убираем то, что уже неактуально, и добавляем полезные тренды. Материала для освоения — вебинаров, конспектов, практики, ревью от преподавателей, рекомендуемой литературы и статей — получается очень много. Кстати, у нас есть студенты, которые записываются на курс повторно, чтобы пройти новые темы и закрепить старые знания.
В первых трех модулях практические задания между собой не связаны, они ориентированы на то, чтобы студент научился использовать каждый прием. В следующих модулях вы будете последовательно писать свой микросервис, который станет частью портфолио.
Если вы подумываете о том, чтобы освоить Golang, я приглашаю вас пройти вступительный тест на наш курс. Ждем вас в OTUS!