Port scanning examples to teach Go concurrency and goroutine bounding.
What to expect:
- Get a feel for the language syntax.
- Don't worry if some of it looks odd or complicated right now, you're just browsing.
- Relate as much of what you see to what you already know through other programming languages. Some concepts will just be syntax difference, others will be new.
Head on over to https://go.dev/tour.
What to expect:
- Now what you've done the tour, Effective Go will give you a foundation for building Go programs
- You'll learn everything from how Go code is organized to the idiomatic ways of handling errors
- It's okay to digest this information in bits and pieces--there's a lot there.
Head on over to https://go.dev/doc/effective_go
If you've done the Go Tour and read part or most of Effectiive Go, you've got enough foundational knowledge to build something. The rest of your comfort with Go will come more easily through practice.
Ideas (in case you don't already have any):
- Build a Go equivalent to the
wc
shell command. - Extend your
wc
CLI tool to support concurrent counting. - Build a CLI-based currency converter.
- Repurpose your currency converter into a REST+JSON service.
ℹ️ Use Go by Example to quickly look up how to perform common tasks in Go.
Use Go Code Review Comments to supplement the knowledge you've gained from reading Effective Go and building some tools. It's a collection of common expectations and idioms from Go code and contains a list of common mistakes to avoid.
- Go Documentation, from specs to tutorials
- Additional resources at go.dev