After 40+ years of writing C I'm going to learn Go. Is "The Go Programming Language" still the way? It is 8 years old now and the language has seen more than a few changes between then and now. What books should I be looking at?
Read the spec: <a href="https://go.dev/ref/spec" rel="nofollow">https://go.dev/ref/spec</a><p>Check out the examples: <a href="https://gobyexample.com/" rel="nofollow">https://gobyexample.com/</a><p>Check the docs for anything else: <a href="https://go.dev/doc/" rel="nofollow">https://go.dev/doc/</a>
Other than some of the resources mentioned already in comments, I highly recommend Alex Edwards books Lets Go and Lets go Further. Helped me a lot and still does when building Web Applications.<p><a href="https://www.alexedwards.net/" rel="nofollow">https://www.alexedwards.net/</a><p><a href="https://lets-go.alexedwards.net/" rel="nofollow">https://lets-go.alexedwards.net/</a><p><a href="https://lets-go-further.alexedwards.net/" rel="nofollow">https://lets-go-further.alexedwards.net/</a>
Here's how I did it as someone previously competent in C, C#, Java, etc.<p>I started here: <a href="https://go.dev/learn/" rel="nofollow">https://go.dev/learn/</a><p>1. Did the Go Tour: <a href="https://go.dev/tour/welcome/1" rel="nofollow">https://go.dev/tour/welcome/1</a><p>2. Then Getting Started: <a href="https://go.dev/doc/tutorial/getting-started" rel="nofollow">https://go.dev/doc/tutorial/getting-started</a><p>Then, I started a non-trivial project using the excellent Go docs and LearnXinYMinutes as references. <a href="https://learnxinyminutes.com/docs/go/" rel="nofollow">https://learnxinyminutes.com/docs/go/</a><p>Once I kind of got the hang of Go, I started using Go by Example much more. I've never read a Go book.<p>With competent prompting, Claude.ai seems pretty good at generating Go code and explaining Go code and this has really accelerated it for me.<p>All together, I started from not knowing Go to beginning on a non-trivial program in my first 4 hours. It was super great.
When I was first learning I liked this video series.<p><a href="https://www.oreilly.com/library/view/intermediate-go-programming/9781491944073/" rel="nofollow">https://www.oreilly.com/library/view/intermediate-go-program...</a><p>Also checkout this repo for helpful links: <a href="https://awesome-go.com/free-e-books/" rel="nofollow">https://awesome-go.com/free-e-books/</a>
There’s no Go book that I personally would recommend without hesitation.<p>Instead, I would suggest that you try to find a bunch of blog posts and lectures and read/watch them in order to get a feeling of the Go philosophy. The official Go blog has some good articles and otherwise I recommend to have a look at what Rob Pike and Russ Cox has written/presented.<p>Then I believe that as soon as possible it’s a good idea to start some toy project so that you can dive in.<p>I’m afraid I don’t have too many links to share. This <i>might</i> be a good starting point: <a href="https://www.youtube.com/watch?v=7VcArS4Wpqk" rel="nofollow">https://www.youtube.com/watch?v=7VcArS4Wpqk</a><p>Here’s a meta-resource that could be useful: <a href="https://github.com/avelino/awesome-go">https://github.com/avelino/awesome-go</a> (see the <i>Resources</i> section at the end of the ToC).<p>Best of luck!
If you haven't used a more current programming language in terms of tooling, you may be in for a shock: package management, concurrency, formatting and linting are all sorted, with decent support in Visual Studio Code. I'd honestly look at these things first so that you can right-size individual modules, etc.
<a href="https://quii.gitbook.io/learn-go-with-tests" rel="nofollow">https://quii.gitbook.io/learn-go-with-tests</a><p>Learn go with tests shows you the "go way" to do it, and introduces you to its integrated testing system while also teaching you go's language concepts.<p>I highly recommend it, it's awesome and was definitely worth doing it even whennyou are an experienced go programmer already.<p>The key to benefit from go's toolchain the most is to set your opinions aside. Once you do that, the toolchain will automate so many things for you that you will learn to like only a couple weeks later because it takes time for the conventions to sink in...
This series is excellent and underrated. Go Class:<p><a href="https://www.youtube.com/playlist?list=PLoILbKo9rG3skRCj37Kn5Zj803hhiuRK6" rel="nofollow">https://www.youtube.com/playlist?list=PLoILbKo9rG3skRCj37Kn5...</a><p>This guy made this for his teammates as a Christmas present and then released it for free when he could have charged money for it somewhere like Udemy or Coursera.