Востребованность языка Go и его перспективы
Раздел «Самые горячие языки программирования» ежегодного отчета State of Software Engineers платформы Hired показал, что инженеры, имеющие опыт разработки Go, получают в среднем девять запросов на собеседование, что делает язык Go одним из наиболее востребованных языков программирования в мире.
Давайте выясним, что такое Go
Go (часто также Golang) разработан Google в 2009 г. Идея состояла в том, чтобы иметь язык с эффективностью на уровне C++, но с удобочитаемостью, сравнимой с Python. Помимо Google язык Go используют Uber, Fabric, Sendgrid, Medium, Dropbox, Netflix, Cloudflare, American Express, Salesforce, IBM, Target, Twitch, Twitter, Uber и Docker, а также российские Mail.ru Group, Tinkoff, Avito и Ozon. Подробный список компаний, которые используют Golang, можно найти в репозитории GoUsers – можно ориентироваться на него при анализе возможностей для трудоустройства.
Зачем было нужно создавать ещё один язык?
Cегодня молодые программисты не столько исследователи, сколько «гуглеры». Программисты-самоучки стремятся скорее получить практические навыки.Немногие начинающие программисты готовы разбираться в действительно сложных языках и фундаментальной информатике, но все хотят быть востребованными и уметь создавать конкурентное программное обеспечение. Лучший способ удовлетворить эти потребности – предложить язык, который они смогут легко освоить и найти высокооплачиваемую работу.
Как язык Go отвечает этим требованиям?
Порог входа в Go действительно низкий. Даже будучи человеком с нулевым опытом программирования, вы можете легко выучить язык Go и начать программировать. Это язык с простым синтаксисом и подробной технической документацией.
Изучая Go, вы также получите базовые знания об операционной системе и дизайне компьютера, работе с памятью, многопоточностью, синхронизацией процессов.
Таким образом, Go является идеальным языком для входа в мир программирования. Переход на Golang будет еще более простым, если у вас уже есть опыт программирования на C-подобных языках.
Что можно писать на Go, в каких отраслях он используется?
В дополнение к созданию микросервисов и сетевых приложений Golang доминирует на рынке веб-приложений. В том числе Go-разработчиков нанимают известные компании, решившие постепенно переписать свои системы на этом высокоэффективном языке. Например, в 2018 г. интернет-магазин Ozon объявил, что нанимает 200 разработчиков Go, сделав ставку на этом языке из-за надежности и скорости.
В общем, Go может использоваться для чего угодно и широко распространен в IT-индустрии, особенно в веб-разработке. Но, конечно, каждый язык для своей ниши. Например, для машинного обучения все еще более предпочтителен Python. Хотя есть и другие мнения.
В почете ли Go среди программистов?
Рассмотрим несколько рейтингов, чтобы понять, как Go оценивается мировым сообществом разработчиков.
- Начнем с одного из самых известных – TIOBE. Рейтинг составлен по результатам поисковой выдачи 25 систем, включая Google, Yahoo!, Wikipedia, Amazon, Bing. Рейтинг показывает, что язык Go за последний год переместился с 16 на 12 место.
- Рейтинг Red Monk использует для сравнения языков данные GitHub и StackOverflow. Параметры, по которым составляется рейтинг, – частота обсуждений и использования языка в проектах. На январь 2020 г. Go занимал 12 место.
- Рейтинг PYPL основан на анализе частоты поиска документов в Google. Чем больше запросов, тем популярнее язык. Этот рейтинг показывает, что на июль 2020 г. язык Go стремительно поднимается по лестнице популярности и уже находится на 13 месте.
Таким образом, общая тенденция, заключается в том, что Go с каждым годом становится все более популярным. Сейчас самое время начать изучать язык независимо от того, являетесь ли вы новичком или опытным разработчиком
База знаний для самообучения Go
Как выучить Go онлайн
Несмотря на то, что это относительно новый язык, у Go хорошо развиты источники онлайн-обучения, которых достаточно для того, чтобы любой мог выучить язык с нуля. Лучший источник, который большинство людей, включая меня, используют для изучения Go, – это Tour Go Lang. Тур состоит из нескольких модулей, каждый из которых охватывает важную возможность Go. Справа от теоретического материала располагается панель для практических экспериментов. Курс доступен на 20 языках, включая русский, и представляет собой программу, которую можно использовать даже оффлайн.
Этого веб-сайта вполне достаточно для изучения основ Go, но для дальнейшего обучения будет полезен список ресурсов, которые вы можете использовать в зависимости от предпочтений в изучении GoLang.
Oнлайн-платформы
- Go by Example – онлайн-платформа для изучения Go с практическими примерами по каждой из рассматриваемых тем. Можно посмотреть образец программы и тут же в браузере поэкспериментировать со своим вариантом.
- «Создание веб-приложений с помощью Golang» – интерактивное учебное пособие, охватывающее основные темы Go. Главы короткие, но в то же время тщательно продуманные. Учебник идеально подходит для людей, которые хотят создавать веб-приложения.
- Gophercises – это бесплатный онлайн-курс, посвященный созданию множества мини-приложений, пакетов и инструментов, которые помогут в совершенстве освоить Go.
Oнлайн-курсы
Если почти все предыдущие источники требовали знания английского языка, два следующих курса от Mail.ru Group на Coursera изложены полностью на русском языке. Курс предназначен для людей с опытом в веб-программировании.
Книги
- Язык программирования Go – это, пожалуй, одна из самых лучших книг о языке Go. Недостатком книги является то, что она не охватывает более высокий уровень языка, например, веб.
- Go на практике – эта книга и про основы, и про разработку веб-приложений и микросервисов, и даже про развертывание. Полезное чтение для разработчика, который хочет использовать Go для веб-приложений.
- An Introduction to Programming in Go – отличная книга для новичков в мире программирования, которым удобнее учиться по книгам.
YouTube
- Go in 5 minutes – на канале ведутся еженедельные 5-минутные скринкасты, каждый из которых рассматривает одну из практик или шаблонов программирования на Go.
- GoLang in 7 hours – 7-часовой курс, который научит основам программирования на Go и поможет попрактиковаться в изученном материале.
- Изучение Go в одном видео уроке за 30 минут! (Rus) – 30-минутное видео, в котором кратко рассматриваются базовые концепции языка Go.
- Программирование на Go. Введение | Технострим (Rus) – YouTube-курс, посвященный основным темам языка Go от Mail.ru. Все, что нужно знать о языке Go и его использовании в производстве.
Конференции
- GopherCon Russia – видеозаписи конференции GopherCon Russia.
- Golang Piter – видеозаписи конференции Go-разработчиков в Питере.
Коммьюнити
- Go bridge forum – пожалуй, самое дружелюбное место, где новичок может задать вопрос.
- Golang-nuts – если вам нужна помощь с более сложными техническими вопросами.
- StackOverflow – форумы, вопросы и ответы, поиск работы.
- Хаб Go – статьи, кейсы, работа и фриланс.
- Ветка reddit – раздел /golang.
- Telegram – наш канал @goproglib (уже подписались 6 тыс. разработчиков).
Какие знания и скиллы нужны Go-разработчику в повседневной работе
Давайте теперь посмотрим, какие навыки вам понадобятся, чтобы получить работу уровня Junior, Middle или Senior на основе вакансий, размещенных на HeadHunter. Во-первых, для работы в этой области вам понадобится знание английского языка по крайней мере на уровне чтения документации. А дальше по категориям:
Junior:
- Умение писать и поддерживать код в соответствии с руководством по стилю Go
- Опыт работы с базами данных
- Знание Git, Linux / Unix
- Знакомство с JavaScript
- Знакомство с SQL
- Умение писать базовые тесты
- Навыки командной работы
Middle:
- Go (желательно с различными фреймворками)
- Javascript (со знанием одного из фронтенд-фреймворков: Vue, Angular или React)
- HTML5 и CSS
- Опыт работы с базами данных SQL и NoSQL, такими как PostgreSQL, Redis, MongoDB, RabbitMQ, Kafka
- Понимание принципов контейнеризации, опыт работы с Docker и Kubernetes
- Опыт интеграции с API сторонних Web-сервисов
- Умение писать тесты
- Знание REST, HTTP, JSON
- Опыт участия в highload-проектах, создания масштабируемых решений
- Знание микросервисных архитектур
- Опыт разработки с использованием таких языков, как Python, PHP, Perl, Typescript, Node.js и т. д
Senior:
- 5+ лет профессионального опыта работы со сложными серверными веб-сервисами
- 5+ лет опыта разработки программного обеспечения
- 2+ года опыта в разработке программного обеспечения на Golang
- Опыт разработки API (GraphQL / gRPC / REST)
- Опыт разработки сервисно-ориентированных решений;
- Опыт построения высоконагруженных систем.
Как видите, чтобы стать разработчиком Go, вы должны знать не только язык Go, но и приобрести некоторые другие навыки. Если вы новичок в программировании, лучше всего начать с простых инструментов, таких как HTML, CSS и JavaScript. Вам также необходимо знать, как использовать Git и Linux. В любом случае, эти навыки будут полезны независимо от того, какой язык вы выберете для изучения. Если вы опытный программист, изучение Go может открыть новые горизонты, поможет получить более высокую зарплату или даже переехать в новую страну– компании готовы платить за релокейшн востребованных Go-разработчиков.
Карьерные перспективы
Чтобы найти первую работу в Go для джуниоров с набором навыков Go, нужно создать портфолио с проектами, ориентированными на Go. Вы можете придумать свои собственные проекты или внести свой вклад в open source и включить это в свое резюме. Другой способ – платные онлайн-курсы, которые помогут создать и совершенствовать проекты вашего портфолио. Для опытных разработчиков с готовыми портфелями достаточно одного или двух полностью проработанных проектов на Golang, чтобы получить приглашение на интервью.
Зарплаты Golang разработчиков высокие. К примеру, медианная зарплата у разработчиков Golang 150 000 рублей. На сайте HeadHunter вы можете посмотреть, сколько зарабатывают разработчики Go в России: Junior GoLang Developer 65-80 тыс. ₽, Middle GoLang Developer – 100-200 тыс. ₽ и Senior GoLang Developer от 200 тыс. ₽.
Хочу освоить алгоритмы и структуры данных, но сложно разобраться самостоятельно. Что делать?
Алгоритмы и структуры данных действительно непростая тема для самостоятельного изучения: не у кого спросить и что-то уточнить. Поэтому мы запустили курс «Алгоритмы и структуры данных», на котором в формате еженедельных вебинаров вы:
- изучите сленг, на котором говорят все разработчики независимо от языка программирования: язык алгоритмов и структур данных;
- научитесь применять алгоритмы и структуры данных при разработке программ;
- подготовитесь к техническому собеседованию и продвинутой разработке.
Курс подходит как junior, так и middle-разработчикам.
Комментарии