- Если нравится формат FAQ, читайте дальше и пропустите эту секцию.
- Если любите решать задачки на leetcode, Codewars, CodinGame или HackerRank, есть возможность отправлять решения на Go. Окружающие вас смогут помочь вам заполнить пробелы в знании языка и, возможно, подсказать оптимальное решение.
- Если любите смотреть уже готовые примеры решений и сравнивать их с решениями на знакомых вам языках программирования, загляните в rosettacode. Аналогичным ресурсом является Go by example.
- Для rosettacode есть сайт с side-by-side сравнением решений на двух языках. Вот, например, страница для Go<->Python.
- Для уверенных в себе есть learnxinyminutes, который, правда, может быть недоступен без прокси для некоторых провайдеров интернета. На всякий случай, у нас есть локальная копия, но GitHub отображает контент менее привлекательным образом.
- Если есть опыт с другими языками программирования, можно попробовать go tour.
- Если опыт работы с Go уже есть, попробуйте сформулировать что вам было бы интересно узнать вдобавок. С чем вы не работали? С чем у вас возникали проблемы?
И самое главное - общение, контакты и положительные эмоции.
Скачать нужный дистрибутив по ссылке: https://golang.org/dl/. Есть версии под Windows, Linux и macOS.
Качать последнюю стабильную версию (1.13.3).
- Visual studio code + плагин для Go
- Если знакомы продукты JetBrains Intellij, то Goland IDE
- Если всё выше звучит непонятно, то используйте https://play.golang.org/
Набрать в терминале go version
.
Если не работает, то нужно добавить путь к папке с
исполняемым файлом go
в переменную окружения PATH.
Если не понятно, позовите ментора или пользуйтесь онлайн-редактором типа https://play.golang.org/.
Создайте файл hello.go
следующего содержания:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
Для запуска нужно сначала скомпилировать программу, а затем её запустить:
$ go build -o hello.exe hello.go
$ ./hello.exe
Hello, World!
Но для таких простых случаев есть команда run
, выполняющая эти два шага за вас:
$ go run hello.go
Hello, World!
GOPATH указывает на директорию, куда будут устанавливаться пакеты и в которой будут искаться импортируемые (подключаемые) пакеты.
Если переменной окружения GOPATH нет, Go всё равно будет иметь некоторое значение по умолчанию. Узнать текущее значение GOPATH проще всего командой:
go env GOPATH
На системах типа Linux директория по умолчанию ~/go
.
Пакет - это набор файлов, который образует логическую группу. Можно называть пакет словом "библиотека" (хотя библиотека может состоять из нескольких пакетов).
Документация по пакетам: https://golang.org/pkg/.
Можно установить godoc и смотреть документацию оффлайн:
go get -v golang.org/x/tools/cmd/godoc
Теперь можно запустить godoc:
godoc -http=:8080
Если открыть в браузере адрес http://localhost:8080/pkg/, то вы увидите ту же документацию, что была доступна онлайн.
Сайт godoc.org можно использовать для поиска Go пакетов и/или их документации.
Большинство ссылок легко найти в гугле по запросу "golang learning resources".
Самое главное правило - всегда искать по слову golang
, а не go
.
Ниже наиболее стоящие результаты с описаниями:
- Golang book (перевод на русский)
- Resources for new Go programmers - статья Dave Cheney, одного из ведущих разработчиков Go.
- golang/go/wiki/Learn - много учебного материала.
- Go videos - собрание видеозаписей докладов про Go.
- Go webdev examples - аналог Go by example, но с уклоном в веб разработку.
Многие книги имеют переводы на русский язык.
- Get programming with Go - хорошая книга если Go один из первых ваших языков программирования.
- The Go Programming Language - очень известная книга, довольно хороша, но подойдёт только тем, кто уже более-менее комфортно программирует на одном или более языках программирования.
- Go in practice - книга, которая может дополнить книги, перечисленные выше.
GolangShow - русскоязычный подкаст о Go. Крутые ведущие, интересные гости.
Сообщество стоит понимать как "группа людей со схожими интересами и/или целями".
golang-ru Slack - русскоязычное Go сообщество. Там можно задавать вопросы, обсуждать Go, библиотеки под него и прочее.
Для вопросов лучше всего подходит канал #school
(при формулировке вопроса можно
опираться на How To Ask Questions The Smart Way).
Всем участникам следует соблюдать кодекс норм поведения.
Для Казани есть группа GolangKazan.