В апреле на Хабре публиковалась статья «Зачем вам учить Go», в которой подробно освещались возможности языка и его преимущества.
Ну а сейчас — самое время поговорить о разработчиках Golang, пороге входа в эту отрасль и о том, чего может ожидать Go-разработчик от работодателей как в плане условий работы, так и размера заработной платы. Разобраться во всем этом «Моему кругу» поможет преподаватель курса Golang в GeekBrains Сергей Кручинин, за что ему огромное спасибо.
Насколько высокий порог входа в разработку на Golang?
В большинстве своем Go изучают профессиональные разработчики, которые программируют на других языках. Просматривая вакансии, часто можно видеть в требованиях комбинации php/golang, python/golang и другие.
Считается, что разработчик, который уже знает какой-то язык и владеет принципами построения архитектуры проекта, в состоянии быстро выучить новый для себя язык программирования. И это правильно, причем справедливо не только для программирования: если хорошо разбираешься в какой-то сфере, то освоить что-то смежное можно без проблем. Правда, у многих программистов, приходящих к Go, возникают сложности с пониманием горутин, каналов и некоторых других концепций. Но постепенно все приходит.
Не все со мной согласятся, но я считаю, что Go подходит и для освоения в качестве первого ЯП для новичка в программировании. Да, синтаксические конструкции здесь немного скудные, нет полноценной реализации ООП. Но это Тьюринг-полный язык, так что он ничем не хуже других языков, включая школьные типа Logo. Он простой, не дает делать ошибок, заставляет придерживаться лаконичности. Плюс ко всему, Go — функциональный язык, на котором можно решать задачи любого уровня сложности, включая те, что нужны бизнесу и промышленности.
В целом, порог входа невысокий, поскольку язык создавался для того, чтобы его можно было быстро освоить и приступить к оперативному решению задач. Здесь всего 25 ключевых слов и не нужно управлять памятью с потоками, для этого используются GC и планировщик.
Переходят ли на Go профессиональные разработчики с других языков программирования?
Да, причем причины перехода весьма банальны. В большинстве случаев это требование работодателя — нового, к которому устраивается программист, или старого, который для решения проблем узких мест или обеспечения лучшей масштабируемости/быстродействия решил использовать Golang.
Кроме того, в некоторых случаях сами программисты устают от монолита и бесконечных регрессий в коде, поэтому решают освоить Go, чтобы получить глоток свежего воздуха. Этот язык дает возможность реализовать проект быстро, просто и на микросервисах. Последнее — преимущество для компаний, которые разрабатывают специализированные продукты с очень узкой функциональностью. В этом случае просто нет смысла использовать фреймворки, которые используются в монолитах.
О проблемах монолитов рассказывала, в частности, компания Ozon. До недавнего времени это была полностью монолитная платформа. Изменить небольшую часть какой-то системы без влияния на другие компоненты просто невозможно. В Ozon это сравнивают с кубом — чтобы покрасить небольшую часть, приходится закрасить всю грань. Обновления платформы длились по неделе и больше, апдейты выполнялись раз в полгода.
Микросервисы же дают возможность опробовать сразу несколько вариантов нового сервиса, акции или иного элемента платформы. Go хорош для push notification, идеален для стриминга, он быстрый, поскольку компилируемый и относительно простой. В этом он похож на интерпретируемые пхп или питон. В итоге большое количество компаний сейчас ищет разработчиков, которые хотя бы немного знакомы с Go или готовы перейти на него в процессе обучения.
В любом случае новичку нужно начинать с простых задач, постепенно выполняя все более сложные проекты, а затем пробовать написать проект, который мог бы потребоваться какой-либо компании. Стоит также изучать открытые репозитории на гитхаб (их много), читать чужой код, предлагать исправления, делать форки. Можно даже попробовать сделать свой стартап, идея которого реализована на Go. Но нужно помнить, что продукт стартапа должен решать какую-то реальную проблему — обычных пользователей или бизнеса. Архитектура проекта должна определяться потребностями, не стоит создавать инструменты ради инструментов.
Востребованность Go-разработчиков — насколько она велика?
Чтобы дать ответ на этот вопрос, стоит взять статистику «Моего круга». За последние несколько дней на сервисе обновилось 46 вакансий, причем от самых разных компаний. Т.е. востребованность большая, и с течением времени она будет лишь увеличиваться.
Что касается зарплат, то разработчики Golang в 2018 году занимали третье место среди всех остальных своих коллег по объему заработной платы. Нижний уровень зарплат — 50 000 рублей, верхний — 225 000 рублей. Но это усредненное значение.
По данным калькулятора зарплат «Моего круга» средняя зарплата разработчиков на Go во втором полугодии 2019 года составляет около 145 000 рублей.
Если посмотреть, сколько предлагают Golang-разработчикам отечественные и зарубежные компании, то верхняя планка — $15,000.
Но это Япония. По России ситуация немного иная, но в целом, тоже все хорошо.
На «Моём круге» вы можете посмотреть свежие вакансии для Golang-разработчиков и подписаться на рассылку новых.
Требования к кандидатам? Ну вот, например, требования из вакансии на должность миддла по Golang с зарплатой от 110 тыс. до 180 тыс. в зависимости от уровня знаний. Вакансия открыта в Москве.
Здесь небольшой совет — опыт разработки Golang лучше нарабатывать до трудоустройства. Не обязательно быть суперпрофи, но базовые умения очень нужны. Для получения опыта — необходимы эксперименты, практика, работа над проектами, хотя бы и небольшими. Помочь в этом может Github — здесь достаточно много кода, который можно изучать.
В каких отраслях и компаниях востребован Go?
Практически во всех. Это и видео-конвертеры, и стриминг-сервисы, агрегаторы, интернет-магазины, мессенджеры. На Go написаны Kubernetes. Еще один пример — Mattermost, аналог Slack, которым, к слову, пользуется команда Хабра.
Оценить уровень востребованности Golang-разработчиков в различных компаниях можно, оценив список организаций, проекты которых работают на Go.
Зарубежные компании:
- SAP;
- IBM;
- Google;
- Walmart;
- Dell;
- Intel;
- HP;
- RedHat;
- Microsoft;
- Facebook.
Отечественные:
- Mail.ru Group;
- Avito;
- Ozon;
- Lamoda;
- Ростелеком;
- Ситимобил;
- Delivery Club.
Собственно, проще назвать крупные компании, которые не работают с Golang, чем перечислять те, кто с этим языком тесно связан.
В качестве вывода можно сказать, что если вас привлекает Golang, то стоит попробовать с ним поработать. В ближайшие годы потребность в специалистах из этой отрасли будет только расти. Go — точно не хайп и не «пузырь», язык будет развиваться многие годы. В создании языка участвовали например, Роб Пайк, Кен Томпсон, они поддерживали и поддерживают, Go. И это если не вспоминать о корпорации Google, которая также стоит «за спиной» Golang. Выучить же его может практически любой достаточно сильно мотивированный новичок, затратив на обучение известное количество времени и усилий. При этом разработчиков Go сейчас ещё не так и много, поэтому есть возможность войти на рынок труда именно сейчас.