# Go resources for Project Juno
## Intro tutorial
The Go website provides a great interactive intro to the language's basic features, syntax, and built-in libraries w/ a playground here: [Go.Dev](https://go.dev/tour/welcome/1). After that, [install Go](https://go.dev/doc/install
)!
## Other Tutorials
These will be mostly basic intros to the language, aimed at beginners since the higher level, advanced topics are best learned through reading docs/reference manuals or books.
* E-book + Local dev test-based Go tutorial: [Learn Go with Tests](https://quii.gitbook.io/learn-go-with-tests/)
* List of short Go exercises (terminal quiz game, URL shortner) by John Calhoun: [Gophercises](https://github.com/gophercises/)
* General coding exercises/problems (think Leetcode but local and more enjoyable), in Go: [Exercism](https://exercism.org/tracks/go)
## Golang Reference Guides
Including the docs, these will help you quickly grok information on Go concepts both specific to Go (Go Routines, slices) and general ways Go does things.
* Go docs reference for control structures, data structures, interfaces, concurrency: [Effective Go](https://go.dev/doc/effective_go)
* Fantastic "how do I do X in Go?" code snippet page: [Gopher Snippets](https://gophersnippets.com/)
* Also [Go By Example](https://gobyexample.com/)
* Essentials, data types, concurrency, dependency, etc.: [ASAP Go](https://exlskills.com/learn-en/courses/aap-learn-go-golang--learn_golang_asap)
* Quick code examples of how to use core features of the language: [LearnXinY](https://learnxinyminutes.com/docs/go/)
* Demos for best practice patterns: [Go-Patterns](https://github.com/haveyoudebuggedit/go-patterns)
* Language Specification: [Go Reference](https://go.dev/ref/spec)
* *New!* [Generics in Go](https://go.dev/doc/tutorial/generics)
## Books (free!)
Most of the best books on Go were written a few years ago, but that's okay as not a ton of things have changed and the info is almost always backwards compatible.
* Very short "boot camp" style e-book, think "LearnXinY" in expanded book form: [GoLang Boot Camp](http://www.golangbootcamp.com/?from=@)
* Walk-through with examples, questions/answers, covers core philosophy and practical knowledge. Updated in 2018: [Learning Go](http://www.golangbootcamp.com/book)
* Short, a bit old but is an easy & gradual intro to the language (mostly aimed towards novice programmers): [Little Go Book](https://github.com/karlseguin/the-little-go-book)
* Big book .pdf list: [Go-Books](https://github.com/yejg2017/Go-Books)
## Master list
Enormous list with every Go-based project, group, tutorial, tools, libraries, etc. imaginable: [Awesome Go](https://github.com/avelino/awesome-go)