DEV Community

Cover image for Book Review: Go Fundamentals by Mark Bates & Cory LaNou
Jonathan Hall
Jonathan Hall

Posted on

Book Review: Go Fundamentals by Mark Bates & Cory LaNou

"Go Fundamentals" by Mark Bates and Cory LaNou is the seventh book in my quest to find the best book to learn Go in 2023. Read or watch to see why I describe this book as thorough, perhaps to a fault, and why that makes it probably a great second read for most Go newcomers.

Top comments (1)

Collapse
 
corylanou profile image
Cory LaNou

Hi Jonathon!

Thanks for the great review of the book. I don't know that I would disagree with a thing you said.

I can add some context about a few things for you hopefully.

IOTA - Yes, we left it out. After teaching Go for over 5 years, this is one that I still teach in class, but in a super limited fashion. Mostly so you know how to use it from the standard library, but we try to steer students away from it in practice (for many reasons). I have a couple blog posts on it that go super into detail about why (gopherguides.com/articles/how-to-u...). So, it isn't that we don't have content for it that we could have put in the book, but we purposefully left it out. In hindsight, I agree with you we should have mentioned it with some minimal explanation.

GOTO - Correct again, we don't mention it. And we should have. As with all development, the correct answer on when to use a language feature is "it depends", so it's not that goto doesn't have a use, but it's super rare, and in most cases, can typically be avoided which leads to better code clarity. We certainly should have explained that, so good catch.

RUNES - yeah, I re-read that, not sure how we missed that. We'll put an update out so the epub version gets updated and future runs have a better explanation. Runes are super mis-understood in Go. Luckily, most of the time you don't need to really know how/why they work, just that Go does a good job with them out of the gate.

The "logical" order. We gave this a lot of thought, even in our classes. Go is one of those languages that on the surface, seems SO easy, but the idioms are not obvious. As such, even when we teach a "project" based course, it's hard to learn the very important edge cases. We wanted a book that really showed important edge cases that you deal with almost daily. Finding a single source of knowledge that did that seemed to be missing, so we decided to fill the gap that way. As you said, this is both a pro and a con, depending on your needs.

And lastly, the size... we actually had twice the content we published. Our publisher (wisely so) told us we can't publish a 1,200 page introduction book. So there are a lot of other examples for each chapter that we cut out to reduce the page count. What does that mean... it means there might be a second book coming out :-).

Feel free to reach out directly if you have any questions. Keep up the great work!