Diving into Go: A Five-Week Intro
One of my favorite parts of being a developer here at Viget is our developer book club. We’ve read some fantastic books, but for our most recent go-round, we decided to try something different. A few of us have been interested in the Go programming language for some time, so we decided to combine two free online texts, An Introduction to Programming in Go and Go By Example, plus a few other resources, into a short introduction to the language. Chris and Ryan put together a curriculum that I thought was too good not to share with the internet at large.
Week 1
Chapter 1: Getting Started
- Files and Folders
- The Terminal
- Text Editors
- Go Tools
- Go By Example
Chapter 2: Your First Program
- How to Read a Go Program
Chapter 3: Types
- Numbers
- Strings
- Booleans
- Go By Example
Chapter 4: Variables
- How to Name a Variable
- Scope
- Constants
- Defining Multiple Variables
- An Example Program
- Go By Example
Chapter 5: Control Structures
- For
- If
- Switch
- Go By Example
Chapter 6: Arrays, Slices and Maps
- Arrays
- Slices
- Maps
- Go By Example
- Blog Posts
Week 2
Chapter 7: Functions
- Your Second Function
- Returning Multiple Values
- Variadic Functions
- Closure
- Recursion
- Defer, Panic & Recover
- Go By Example
Chapter 8: Pointers
- The * and & operators
- new
- Go By Example
Week 3
Chapter 9: Structs and Interfaces
- Structs
- Methods
- Interfaces
- Go By Example
Chapter 10: Concurrency
- Goroutines
- Channels
- Go By Example
Week 4
- Videos
- Blog Posts
Week 5
Chapter 11: Packages
- Creating Packages
- Documentation
Chapter 12: Testing
Chapter 13: The Core Packages
- Strings
- Input / Output
- Files & Folders
- Errors
- Containers & Sort
- Hashes & Cryptography
- Servers
- Parsing Command Line Arguments
- Synchronization Primitives
- Go By Example
Chapter 14: Next Steps
- Study the Masters
- Make Something
- Team Up
* * *
Go is an exciting language, and a great complement to the Ruby work we do. Working through this program was a fantastic intro to the language and prepared us to create our own Go programs for great justice. Give it a shot and let us know how it goes.