Как самостоятельно освоить Go: подборка полезных материалов
Go, или Golang, — высокоуровневый язык программирования от Google. В нём объединена простота разработки Python и скорость работы C++. Чаще всего его используют для создания веб-сервисов и утилит. Например, на нём написаны инструменты Docker и Kubernetes.
Мастрид для новичка в Go: официальная документация
-
Руководство, где все статьи разбиты по модулям. Здесь подробно объяснено, как установить язык и с чего начинать писать код.
-
Блог — публикации, где объясняют возможности Go и рассказывают, как развивается язык. Например, какие улучшения появились в новой версии 1.20.
-
Тур по синтаксису, где удобно изучать особенности языка. В каждой теме есть короткое описание и примеры кода. Тур небольшой, обучение займёт не больше недели.
-
Effective Go — документ, который учит писать чистый и понятный код, чтобы его легко читали другие программисты. Ресурс дополняет спецификацию языка и тур по Go, которые нужно изучить в первую очередь.
-
Go by Example — практическое руководство с примерами кода реальных программ. Есть удобная навигация по инструментам Go. Также доступна версия на русском языке.
-
The Go Memory Model — раздел с описанием общего подхода, который используется в модели памяти языка.
-
«Идиома конкурентности языка» — 30-минутная запись выступления одного из разработчиков языка Роба Пайка, где он рассказывает о конкурентности и параллелизме в Go.
Какие книги почитать
В дополнение к базовым ресурсам подобрали пять книг, с помощью которых вы сможете структурировать знания о языке Go.
«Head First. Изучаем Go»
Автор: Джей Макгаврен
О чём книга. В первой части автор рассказывает про базовые понятия, знакомит с типами данных, функциями, переменными и массивами. Вторая часть посвящена принципам работы с сетевыми коммуникациями, высоконагруженными системами и многопроцессорной обработкой. Текст написан простым языком, поэтому даже сложные темы усваиваются легко.
«Язык Go для начинающих»
Автор: Максим Жашкевич
О чём книга. Автор объясняет синтаксис Go и разбирает фундаментальные концепции языка: типы переменных, функции, массивы, интерфейсы, горутины и каналы. В последних главах показано, как разработать простой REST API.
Get Programming with Go
Авторы: Nathan Youngman, Roger Peppe
О чём книга. Ещё одна книга для начинающих разработчиков, у неё пока нет перевода на русский язык. Учебный материал разбит на 32 урока, после каждой главы читателю предлагают решить задачи, чтобы потренироваться и закрепить знания. В результате вы освоите основы языка, а также познакомитесь с более сложными темами, например с параллельным программированием на Go.
«Язык программирования Go»
Авторы: Алан Донован, Брайан Керниган
О чём книга. Авторы рассказывают о преимуществах Go, объясняют, как и зачем появился новый язык, учат писать эффективный код, который решает практические задачи. В первых главах читатель знакомится с основными концепциями языка: синтаксисом, управлением потоком выполнения, типами данных и организацией программ в виде пакетов, файлов и функций. Затем учится строить, тестировать и поддерживать проекты с помощью инструментов Go. Также есть отдельные разделы про методы и интерфейсы, параллелизм и низкоуровневые возможности языка.
«Go на практике»
Авторы: Мэтт Батчер, Мэтт Фарина
О чём книга. Это следующий уровень изучения Go. Авторы уже не объясняют основы — читателю важно их знать. Ещё полезно владеть другим языком программирования, например Java или C#. В книге рассказывают, как использовать Go в облаке, описывают нюансы тестирования и отладки, учат создавать веб-сервисы.
Что изучить дополнительно
-
Аналог Tour of Go — это 50 статей, в которых автор объединил информацию из официальной документации и публикаций с личным опытом создания программ на Go. Ресурс будет полезен как начинающим, так и опытным разработчикам.
-
Research!rsc — сайт, где один из разработчиков языка делится материалами о программировании и возможностях Go.
-
Dave Cheney blog — блог разработчика Дэвида Чейни, который занимается развитием Go.
-
Go Channels Internals — статья о каналах в Go, но уже на русском языке. В тексте есть ссылка на выступление с конференции Golang Conf 2019, на основании которого автор подготовил материал.
-
Подкаст Go Time — разработчики обсуждают новости Go-комьюнити и делятся своим опытом.
-
Канал Gopher Academy — записи выступлений с GopherCon, ежегодной конференции, которая посвящена разработке на Go.