The Best Golang Book For Beginners

golang-head-first-go-landscape

At Books on Code, I get requests for book recommendations about the Go programming language or Golang. While Python is the unicorn that most beginning software developers are compelled to learn first, the Go programming language is a powerhouse that gives a beginner programmer an edge.

Your daily reminder to relax and have fun with Go. Look at those bulgy eyes.

Your daily reminder to relax and have fun with Go. Look at those bulgy eyes.

The Golang docs state the following:

Golang is “a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.”

That is exactly right.

Golang is efficient at scale, which is why my software company chose to migrate their software offerings from Ruby to Go. Let me tell you: they have not looked back, and scaling issues went away. You won’t look back either after you take your first foray into the world of Golang programming as a beginner.

In fact, probably many programmers might say that Golang will spoil you. Golang solves the pain points of compiled languages as well as the pain points of interpreted languages. It’s kind of insane, and if Golang is your first language, you get to skip pains other programmers accepted as a part of life.

But let’s not forget the most important benefit: Golang has an adorable, bug-eyed gopher mascot.

What Makes a Good Golang Book For Beginners?

The lower level the language, the heavier the reading material tends to be. Books for programming languages like Golang might assume that you are already familiar with programming concepts. That, or the book compels itself to be dull. That is the tradition of more ‘serious’ languages.

You ought to feel confident that you can master this language, beginning from any point. After all, my first language was C++, as are many going through grueling universities with curriculums unchanged for decades.

Introducing the Best Golang Book For Beginners

Head First Go: A Brain-Friendly Guide, for being ‘brain friendly’, is a no-brainer Golang book for beginners. I have been open about my love for the Head First book series since those books served as my own introduction to programming. The world would be a better place if it was everyone’s introduction.

What makes Head First Go a fantastic Golang book for any beginner is the same reason the Head First series makes a good beginner book on any topic: the games, the cross-word puzzles, the conversational style, and the philosophy that all learning should not feel boring. Novelty is what sticks in our brains, and novelty is what all Head First books excel at.

But what makes Head First Go unique from other Head First books? Let’s take a deeper dive into what the book has to offer.

 

Head First’s Case for Beginners Learning Golang

Do you prefer stimulating dinner-party converation to dry, dull, academic lectures?

[T]his book is for you.

Head First Go

The best way to assess a book is to experience how the book talks to you. A conversational style is engaging — absolutely— but the content the book delivers also has to be both valuable and interesting.

Golang is a hard language to learn. The book needs to be formatted for impact. It can’t be too long, and yet it needs to teach everything — including fundamental programming concepts — from the beginning.

Chapter 1 Breakdown

Let’s talk about Chapter 1.

Head First Go spends only one page talking about the history and the benefits of Go before immediately afterward introducing you to the playground code editor at https://play.golang.org.

That’s right: you run your first Go program on page 2 (technically page 3, counting the chapter cover).

But notice how much value is in that first page. It includes a history lesson, language benefits, and unique other qualities of Go. See the following quote:

Back in 2007, the search engine Google had a problem. They had to maintain programs with millions of lines of code. Before they could test new changes, they had to compile the code into a runnable form, a process which at the time took the better part of an hour. Needless to say, this was bad for developer productivity.

So Google engineers, Robert Griesemer, Rob Pike, and Ken Thompson sketched out some goals for the new language:

* Fast compilation

* Less cumbersome code

* Unused memory freed automatically (garbage collection)

*Easy-to-write software that does several operations simultaneously (concurrently)

* Good support for processors with multiple cores

This is not a dry history lesson. It’s a story told in a structured fairy tale fashion: “Once upon a time, there was a problem. It was a very bad problem. But these guys set out to fix it.” Genius. Simple. Easy to read and understand.

For anyone (like yours truly) who has programmed in a language like C++, the goals that Go engineers set out to achieve are astounding. When your teacher gives negative marks for orphaning your memory (or worse, when you orphan memory in production code), you’ll wish for garbage collection like these engineers did.

On page 2, after you run your first code, the book afterward (so, page 3 now) describes what you just did. And it is here where the book is showing itself as a book that teaches. Many books do not teach. They just soap box. Here, the book is designed for you to learn. When the book describes the code that you just ran, a coffee mug graphic appears that says, “Relax. Don’t worry if you don’t understand all this right now!”

Absolutely brilliant. Why? The book understands that the best place to start is to dive right in, to flounder, and to not understand. The book puts you in the exact place anybody needs to in order to learn to code.

As we move along in chapter 1, the book describes a Go file layout, Go syntax, Go syntax errors, Go’s formatting tool go fmt, learning by breaking stuff (again, brilliant), built-in functions such as the print function, pulling in functions from other packages, function returns, data types, declaring variables, naming rules, type conversion for math and boolean operations, installing Go, compiling Go, and handy Go executables.

This is just Chapter 1.

We’re only on page 26.

Only 453 pages to go.

Head First’s Case Against Beginners Learning Golang

The Head First series is the most reader-friendly series for adults in existence. But even so, Golang is a challenging first programming language. The book strives to to pack many concepts into an easy-to-understand package, but even the book understands that it is maintaining a delicate balance between value and overwhelm.

Even though the book has a conversational writing style, fun illustrations, and games, do not underestimate it: the book will make you work, and you will sweat and maybe cry. But when you cry with this book, know your tears are inflicted by capable text.

Though Chapter 1 covers a lot of material, the book means it when it says “Relax.” It does slow down and it does talk about programming fundamentals, taking an entire chapter for loops and conditionals and another entire chapter for functions. As a total beginner, you do not need to supplement your reading with anything else.

Get the Best Book for Golang Beginners

I could not be any more sincere with my recommendation of this book if you are a beginner and you want Go to be your first programming language. Go is a powerful choice to make and it is likely to lead to a prosperous career.

If you are interested in picking up a copy of the book, you can find Head First Go on Amazon. It’s like having a professor in your pocket and well worth the price.

If you do not want to pay for the book, you have a free option. With a free trial of O’Reilly Learning, you have 10 free days of complete access to not only this book, but their absolutely massive library of resources.

And if you want to read more about what makes great programming books, see this article to learn how to choose great books. I will see you over there. 👋🙂

 

Miranda Limonczenko

Miranda is the founder of Books on Code, with a mission to bring book-lover culture to programmers. Learn more by checking out Miranda on LinkedIn.

http://booksoncode.com
Previous
Previous

Top 10 Web Accessibility Standards Every Developer Should Know

Next
Next

How to Choose the Perfect Programming Book to Read Right Now