В курсе рассматриваются базовые концепции языка Go, а также основы конкурентного программирования. Язык Go прост в изучении и при этом имеет широкие возможности для оптимизации программ, написанных на нём. В курсе также рассматриваются вопросы, не относящиеся напрямую к изучению языка, но касающиеся применения этого языка в работе или домашних проектах: соглашения по организации кода, версионирование модулей, тестирование кода и многое другое. Также курс содержит указания на материалы для факультативного изучения с более продвинутыми темами, такими как различные подходы к обработке ошибок, рефлексия, генерация кода.
Этот курс предполагает, что читатель уже знаком с каким-нибудь языком программирования, поэтому содержит много сравнений и отсылок к другим языкам. Если вы не знаете ни одного языка программирования, начните с изучения языка Си, тем более, что классическая книга по нему, написанная Керниганом и Ритчи, является примером прекрасного учебника, объясняющего сложные абстракции простым и доступным языком с иллюстрациями на лаконичных и понятных примерах[kr].
Для работы с курсом вам понадобится установленный компилятор языка Go, который можно установить, воспользовавшись инструкциями на официальном сайте https://golang.org/. Также необходимо умение пользоваться командной строкой. Данный учебный материал выложен в открытом доступе под лицензией MIT. Исходный код находится по адресу https://github.com/vporoshok/go-introduction, версия для чтения — https://vporoshok.me/go-introduction/. Если вы нашли ошибку, опечатку или неточность, откройте задачу или Pull Request в репозитории или свяжитесь со мной с помощью электронной почты vporoshok@gmail.com.