# 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)