I hope I don't sounds rude saying this but Go code is generally self evident. I personally got my Go knowledge from reading Go code on GitHub or the like. There's a certain beauty to Go code in that you can grasp what code does pretty easily, which definitely helps with learning.
Go is superficially readable, but be careful. It has some (in my experience) quite non-evident semantic aspects, such as interface nils and channel “edge cases” (which aren’t “edge” at all, you do have to handle them). The Timer thing they just fixed is an example of how the Go core team really expects you to read the manual.
The good news is that the language and stdlib docs are concise and extremely clear. One of the really impressive things about Go.
I've been writing go for about 7 years and still occasionally footgun myself with nil interfaces. Drives me insane that they try so hard everywhere else to protect devs from themselves but that still exists.
Maybe if all you want to do is read code, but if you want to write it you need to know stuff like the fact there's no inheritance or generics, that public methods are define with capital letters and to parse json you need to use magic annotations.
This syntax is strange to me despite being a simple example. I can tell that it's a function that takes in a rect pointer, is maybe named area() (but I'm now confused why this definition doesn't have an argument?), and returns an integer value. I've tried reading larger Go files and constantly run into syntax confusion like this and get exhausted.
So sure, I understand the gist of this code, but this is more difficult to understand IMO than any Python, Ruby, Java, Swift, Rust, Gleam code I've read.