I’m on a mission to find the best book to learn Go in 2023. This is the seventh in my series of book reviews.
I was made aware of this book by one of its authors, Donia Chaiehloudj, when I announced my first book review on the Gophers slack. As I write this review, the book is only partially complete (4 of 12 chapters), and part of the Manning Early Access Program (MEAP), so be aware that this is a review of a partial, in-progress book!
Read my conclusion or check out the other individual reviews:
- Go Programming Language for Dummies by Wei-Meng Lee
- Go Programming In Easy Steps by Mike McGrath
- Learning Go by Jon Bodner
- Beginning Go Programming by Rumeel Hussain and Maryam Zulfiqar
- Learning Go Programming by Shubhangi Agarwal
- Go For Beginners by Edward Thornton
- Learn Go with Pocket-Sized Projects by Aliénor Latour, Pascal Bertrand, and Donia Chaiehloudj (this post)
- Go Fundamentals by Mark Bates and Cory LaNou
- The Go Programming Language by Alan Donovan and Brian Kernighan
- Get Programming with Go by Nathan Youngman and Roger Peppé
- For the Love of Go by John Arundel
Publication Details
Learn Go with Pocket-Sized Projects; by Aliénor Latour, Pascal Bertrand, and Donia Chaiehloudj, 300 pages (estimated). Publication date, fall 2023 (estimated) by Manning Publications Co.
Audience
This book claims to be for current software developers “who know and use another langauge and would like to extend their professional skills.” It also suggests “If you’re a beginner at programming, we wholeheartedly suggest starting your Go experience with Get Programming With Go”, which suggests to me that this book is intended for a more advanced audience.
However, the first example in the book is the ubiquitous “Hello world”, and it is explained quite well from first principles, which I think makes this book a good beginning book.
But maybe I’m suffering from the curse of knowledge, and overestimating the competence level of a true programming beginner?
Narrative Style
I like the style of this book. It’s very conversational. It feels a bit like I have my own personal guide through the Go language, and the examples provided in the book.
Scattered throughout the book, there are a number of inline sidebars that expound more deeply on a specific subject in a nice way, but that can also be easily skipped if you’re engrossed in the main subject matter.
Content
First off, this book makes testing a first-class concern. Hallelujah!
Starting with the very first coding example, which is the ever-popular “Hello world”, the book introduces testing. It’s a very simple test, to begin with, naturally, just testing that the program outputs the expected greeting. But then as the example is expanded to change greetings, and even alternate languages, the tests are expanded.
The approach taken in this book, of teaching through code examples, rather than from abstract first principles, makes for a nice change of pace from the other books I’ve reviewed so far. I can easily see using this book as the text for a course on Go (and I may offer such a course myself–watch this space!).
Beyond this high praise, I can’t really offer a thorough critique of the content of this book, for the simple reason that most of the book isn’t written yet! The introduction and table of contents do promise to walk us through examples with both REST and gRPC microservices, and to touch on goroutines.
What I can say is that this book does talk about Go modules, which I would definitely expect for a book coming out in 2023. It’s quite refreshing to see a book walk the reader through go mod init
, instead of muddling through the old, pre-Modules approach of dependency management.
And while the current chapters do discuss the existence of generics, it’s unclear whether this topic will get full discussion in the final version.
And in the copy I’m reading, there are still a few editorial notes inline, about content that’s yet to be added. That seems par for the course for a MEAP title like this.
As a final note on the book’s content, I will mention that it may seem too slow paced for more advanced programmers. With 20-some pages disecting “Hello world” (and its tests), you can imagine it might be a bit too basic for some. But then again, if you’re the type to just read code samples on GitHub, you probably aren’t looking for a beginner’s book in the first place…
Accuracy
I have not found any inaccuracies or errors, other than a couple minor typographical errors, which I expect to be corrected before the final release.
Physical Charactaristics
I can’t comment on the physical charactaristics of this book, because it doesn’t physically exist yet!
I’m reading a PDF (also available in Kindle or epub format, or Manning’s special online/interactive reader).
That said, I have read a number of other physical Manning books, and they’re always of good quality, and I expect no different from this. But the real physical review will have to wait until the fall of 2023, when the final publication is expected.
As for the layout of the PDF version, it’s well structured and easy to read. It’s mostly black text on a white background, with some dark blue headings in a few places, although I expect in the print version, the blue will be in black ink as well. There are also two shades of grey backgrounds used to indicate code samples, or sidebars. These should translate well to print (as they do in other Manning titles I own.)
Conclusion
I’m really excited about this book. I wish it were complete and I could give it a complete review. This one has a strong potential for being in the running for best book to learn Go in 2023.
I’d say this book is on the way to a 5-star Amazon review from me, if the remaining chapters keep up the current quality, and the essential topics are covered—the big question in that area being generics.
So check back here for my full review, or better yet, sign up for my Boldly Go: Daily mailing list, to be notified when my full review comes out (and in the mean time, learn a heck of a lot of other cool things about Go!)