If I was to learn Go today I'd probably try to learn it the same way ... by joining the Go team! Hahaha

I'm not kidding, that learning experience was amazing and I recommend it to anyone that has the chance to try.

But more realistically I'd say a good idea is to simply start writing Go, as much as possible, even when it doesn't really makes sense! My first program in Go was something that I would have normally written in bash, a bunch of calling other commands and pipes, etc.

The next step is to share that code and seek feedback wherever you can (the gophers slack is a great place for this)! I do code reviews on http://justforfunc.com from time to time, so make sure you send your code for consideration at http://form.justforfunc.com.

Code reviews are actually my favorite way to learn, because you're getting feedback on what you're doing wrong! So you already have the context and the knowledge is absorbed much more efficiently.

That said that's not always possible for everyone so if you want to know websites and books to read:

excerism.io: great place to exercise your coding skills in Go and receive feedback from the rest of the community

adventofcode.com: a great way to find problems to solve in Go! also you'll be able to see many other solutions, which kinda counts as getting feedback I guess.

Dave Cheney's blog posts are a jewel! https://dave.cheney.net/category/golang

justforfunc.com ... I've heard it's pretty decent 😎

Regarding books, I'm not much of a book reader when it comes to programming languages ... other than "Learn you a Haskell for a greater good" which is amaaaaaazing!

I'd say the cannonical book is "The Go Programming Language" by by Alan A. Donovan and Brian Kernighan, but I'll admit I haven't read it completely ...