Relearning Go

Overview

I’ve been working with Go for several years, both professionally and personally. I thought it might be effective to take this opportunity to relearn it, so I revisited various aspects of the language. Here’s a list of articles I read during this process.

Motivation

I wanted to review the basics, catch up on parts of the specification I might have missed, learn about new features, and pick up tips to strengthen my foundation for improving my Go coding skills.

Understanding the Specification

I read through articles related to understanding the Go specification, focusing on resources from go.dev.

Generics

I revisited the specifications of Generics, which were added in Go 1.18.

Pros and Cons of Go

I wanted to organize my thoughts on what Go excels at and where it struggles, so I read various articles on the topic. Perspectives can vary depending on the background of the author, so it was insightful to see different opinions.

Personally, I haven’t worked with many programming languages, so I can’t provide deep insights into language design philosophies. However, I particularly appreciate Go’s simplicity—or rather, its philosophy of maintaining simplicity. When using highly functional languages that allow for various coding styles, I sometimes struggle with deciding how to write something. With Go, I feel like I can write code straightforwardly, and I enjoy working with the language.

Books

I picked up and read three books. There were other books I considered reading, but I selected ones that aligned with my current goals. (I know I need to properly study concurrency at some point, but I think that requires dedicated focus, so I’ll save it for another time...)

All of them are great books, but I especially recommend Practical Go Programming. It’s a valuable resource for someone like me who has some experience with Go but wants to organize their knowledge.

cf. https://bmf-tech.com/posts/%e5%ae%9f%e7%94%a8Go%e8%a8%80%e8%aa%9e%e3%82%92%e8%aa%ad%e3%82%93%e3%81%a0

Final Thoughts

I was able to store a lot of information in my mental library, which I’m sure will come in handy when the time comes. There’s still a lot I don’t fully understand, so I plan to revisit and learn more at another milestone.