Book Review: An Introduction to Programming in Go

Tweet about this on Twitter2Share on Facebook2Share on Google+1Share on LinkedIn1Share on Reddit0Email this to someone

An Introduction to Programming in Go book coverCaleb Doxsey’s An Introduction to Programming in Go is a short and sweet survey of the Go programming language (a.k.a. “Golang”).  Clocking in at 165 pages with easy-readable font and margins, the book flies through the same material as other more dense options in the 500-600 page range.

On the other hand, Doxsey tries to be all things to all people at times.  In addition to covering an entire an entire programming language in about 1/4 the length of other books, he is also catering to readers who range from experienced experts to total rookies.  The first chapter talks about what a “text editor” is, and explains the difference between a “file” and a “folder”!

I think that a lot of this wastes precious limited space, and the book would have been better served by declaring some reasonable programming experience as a prerequisite.  If a reader doesn’t already know the difference between a file and a directory before coming into this book, then the chapter on dereferencing pointers will likely freak them out anyway!

That being said, the readability is excellent.  I’ve picked up four Go books so far (reviews of the other three are coming!), and An Introduction to Programming in Go has definitely been the easiest to read and comprehend.  In other books, I’ve read entire chapters devoted to Go’s concept of “slices”, and my eyes glazed over.  Doxsey presented the entire subject in 3 short pages, and it clicked for me instantly!  Why can’t all technical books be written in this kind of style?

Doxsey makes An Introduction to Programming in Go available for free in HTML and PDF format, at his website www.golang-book.com.  Amazon sells a Kindle format for $3.00, and a traditional dead-tree book is less than ten bucks.  You can’t argue with the price (!), and the Go community is lucky to have Doxsey’s contribution.

Given the length and price, An Introduction to Programming in Go does not exactly compete directly with books like Mark Summerfield’s Programming in Go or Ivo Balbaert’s The Way To Go.  Instead, I would say its niche is somewhere in between David Chisnall’s shorter Go Programming Language Phrasebook and the free documentation or tutorials on the Go language’s website.

If you are curious about Go, but are not yet committed enough to spend $20-30, then this book is a good gateway.  You won’t be a expert in Go after reading it, but you will have a wide breadth of knowledge about the language, and will be more than prepared to dive deeper with other resources and experience.