Learn Go with Tests
Learn Go by writing tests first. Every chapter is a red-green-refactor cycle, and by the end you have covered concurrency, generics, context, and a couple of real applications.
It works because the test comes before the explanation. You feel the problem, then the language feature lands as a solution rather than a fact to memorise.
Best free Go resource I know for someone who can already program.
github.com/quii/learn-go-with-tests
See also: