---
title: Learn
---

In addition to the resources available [at golang.org](https://go.dev/doc/#learning) there are a range of community-driven initiatives:

- [Boot.dev's "Learn Go"](https://boot.dev/learn/learn-golang) - Code in the browser exercises with answer checking
- [Essential Go](https://www.programming-books.io/essential/go/) -- a free book about Go programming language.
- [Go in 5 Minutes](https://gifm.dev)
- [The Little Go Book](http://openmymind.net/The-Little-Go-Book/)
- [Tutorials Point](https://www.tutorialspoint.com/go/index.htm)
- [Exercism.io - Go](http://exercism.io/languages/go) - Online code exercises for Go for practice and mentorship.
- [EXLskills - A$AP Learn Go](https://exlskills.com/learn-en/courses/aap-learn-go-golang--learn_golang_asap) - Fast-paced free and open course for getting going with Go
- [Learn Go in an Hour - Video](https://www.youtube.com/watch?v=CF9S4QZuV30) _2015-02-15_
- [Learning to Program in Go](https://www.youtube.com/playlist?list=PLei96ZX_m9sVSEXWwZi8uwd2vqCpEm4m6), a multi-part video training class.
- [Learn Go with Tests](https://quii.gitbook.io/learn-go-with-tests/) - An introduction to Go using a TDD approach.
- [Pluralsight Classes for Go](http://www.pluralsight.com/tag/golang) - A growing collection of (paid) online classes.
- [Ardan Labs Training](https://www.ardanlabs.com/) - Commercial, live instruction for Go programming.
- [O'Reilly Go Fundamentals](http://shop.oreilly.com/category/learning-path/go-fundamentals.do) - Video learning path for Go programming.
- [Go By Example](http://gobyexample.com/) provides a series of annotated code snippets.
- [Learn Go in Y minutes](http://learnxinyminutes.com/docs/go/) is a top-to-bottom walk-through of the language.
- [Workshop-Go](https://github.com/sendwithus/workshop-go) - Startup Slam Go Workshop - examples and slides.
- [Go Fragments](http://www.gofragments.net/) - A collection of annotated Go code examples.
- [50 Shades of Go: Traps, Gotchas, Common Mistakes for New Golang Devs](http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/index.html)
- [Free Go Language Workshop](https://www.frameworktraining.co.uk/go-language-free-training-workshop/) Framework Training is running regular free BYOD workshops in London, UK
- [Golang Tutorials](http://golangtutorials.blogspot.com/2011/05/table-of-contents.html) - A free online class.
- Rob Pike's 2011 three day course - [Day 1](http://go.googlecode.com/hg-history/release-branch.r60/doc/GoCourseDay1.pdf), [Day 2](http://go.googlecode.com/hg-history/release-branch.r60/doc/GoCourseDay2.pdf), [Day 3](http://go.googlecode.com/hg-history/release-branch.r60/doc/GoCourseDay3.pdf) (_links are broken_, use the archived links from the wayback machine. [Day 1][wbday1], [Day 2][wbday2], [Day 3][wbday3])
- [The Go Bridge Foundry](https://github.com/gobridge) - A member of the [Bridge Foundry](http://bridgefoundry.org/) family, offering a complete set of free Go training materials with the goal of bringing Go to under-served communities.
- [Golangbot](https://golangbot.com/learn-golang-series/) - Tutorials to get started with programming in Go.
- [Master Go](https://appliedgo.com/courses/mastergo/) - A paid online video course on Go for developers
- [Learn to Create Web Applications using Go](https://www.usegolang.com/) - A paid online video course and book about Web programming with Go
- [Learn Go Programming](https://blog.learngoprogramming.com) - Weekly visual and concise tutorials for programming in Go.
- [Gophercises](https://gophercises.com/) - coding exercises for budding gophers
- [Algorithms to Go](http://yourbasic.org/) - Texts about algorithms and Go, with plenty of code examples.
- [Games With Go](http://gameswithgo.org/) - Video series teaching programming fundamentals with game related projects.
- [Go Language Tutorials](https://www.cybrhome.com/topic/go-language-tutorials) - List of popular sites, blogs and tutorials for learning Go language.
- [Golang Development Video Course](https://www.youtube.com/playlist?list=PLzUGFf4GhXBL4GHXVcMMvzgtO8-WEJIoY) - A growing list of videos focused purely on Go development.
- [Go: The Complete Bootcamp Course](https://www.udemy.com/learn-go-the-complete-bootcamp-course-golang/?couponCode=GOWIKI) - Step by step and intuitive explanations for every aspect of Go using animations (Paid)
- [Learning Golang - TutorialEdge](https://tutorialedge.net/course/golang/) - A growing list of articles and courses on the fundamentals of Go.
- [Go Discourse](https://github.com/godiscourse/godiscourse) - Another forum base on Go, without framework and ORM.
- [دورة لغة غو بالعربي](https://argolang.com/learn-go-lang-beginners-course)
- [Apuntes de Golang en Español](https://apuntes.de/golang/) - Apuntes para aprender Go en Español desde Cero.
- [Go Classes at Codecademy](https://www.codecademy.com/learn/learn-go) - Online courses introducing the basics of Go.
- [Go Tutorial - W3Basic](https://www.w3basic.com/golang/) - A well organized and structured Golang Tutorials for Beginners and Professionals

[wbday1]: http://web.archive.org/web/20160305024536/http://go.googlecode.com/hg-history/release-branch.r60/doc/GoCourseDay1.pdf
[wbday2]: http://web.archive.org/web/20160305081012/http://go.googlecode.com/hg-history/release-branch.r60/doc/GoCourseDay2.pdf
[wbday3]: http://web.archive.org/web/20160305075151/http://go.googlecode.com/hg-history/release-branch.r60/doc/GoCourseDay3.pdf

Learning resources for specific topics:

- [LearnConcurrency](LearnConcurrency) outlines a course of study of Go's concurrency model and patterns.
- [LearnErrorHandling](LearnErrorHandling) links to resources about error handling in Go.
- [LearnTesting](LearnTesting) links to resources about testing in Go.
- [LearnServerProgramming](LearnServerProgramming) links to resources about server programming in Go.
- [Golang Online Courses](https://classpert.com/go-programming) - A collection of Go online courses from several providers at Classpert
- [Hackr.io Golang Tutorials](https://hackr.io/tutorials/learn-golang) - Best Golang tutorials recommended by the programming community.
