Review: 'Learning Go'

Jon Bodner’s ‘Learning Go’ is simply the best single-volume Go book for experienced developers, and I don’t say that lightly. This book will give you a better, wider, deeper, and certainly more up-to-date knowledge of Go than any other.

Ten commandments of Go

I spend a lot of time working with students to help them write clearer, better, and more useful Go programs, using a fairly small set of general principles, and here they are. The first is “be boring”, and I’ve tried to follow that advice.

How to really learn Go

Learning is hard. How do you plan, study, organise your time, and build the right habits? Master teacher John Arundel gives ten helpful hints for students who want to really learn Go.

Go vs Python

Which is better, Python or Go? Which language should you learn today, and why? How do the two compare in performance, ease of learning, scalability, and rapid prototyping? Let's find out, in this friendly and accessible overview of Python and Go for beginners.

Are you a Go black belt?

Are you a grasshopper or a Go sensei? Can you wax on, wax off? Go mentor and would-be Mr Miyagi, John Arundel, explains how he grades his students using a system of coloured belts like those used in the martial arts. Find out how your skills compare to typical junior, mid-level, and senior devs!

Writing slower Go programs

Optimizing Golang code for performance is almost certainly a waste of your time, for several reasons: performance doesn’t matter, Go is fast, and readability is more important than speed. You can buy a faster computer, but you can’t buy a faster brain.

Go maps FAQ

What is a map in Golang and how does it work? Are Go maps thread-safe? Are maps pointers? How do you check if a map is empty? Can maps be nil? Go teacher and expert John Arundel answers these and other questions about Go maps.

map[string]interface{} in Go

What is a map[string]interface{} or map[string]any in Go, and why is it so useful? How do we deal with maps of string to interface{} in our programs? What the heck is an interface{}, anyway?

Iterating over a Golang map

How do you iterate over Golang maps? How do you print a map? How do you write a for loop that executes for each key and value in a map? What is the iteration order of Go maps? Let's find out, in this practical, easy-to-follow tutorial.

Finding whether a Go map key exists

What happens if you look up a key in a Go map that doesn’t exist? How do you check if a key is present in a map? How do you represent a set of objects as a map in Golang, and efficiently check whether a given value is in the set?

Storing and retrieving map values

More about Golang maps: looking up keys, adding and updating values, and how to update the fields of a struct within a map. This mini-tutorial is part of a series on everything you need to know about maps in Go!

Map types in Golang

What map types exist in Go? What data types can we use as map keys? What about map values? Are different kinds of maps considered distinct types? And what’s the difference between nil and empty maps? Find out in this handy, bite-size tutorial on map types in Golang.

Go maps: declaring and initializing

What is a Golang map? Why is it useful? How does it compare to a slice? How do you declare a map? How do you initialize a map in Go? Fear not, all these questions are answered in this friendly introduction to one of Go’s most powerful features.

Building a Golang Docker image

Let's build a Docker container with Golang! It sounds complicated, but it really isn't. All you need are a few tools, a couple of simple commands, and ideally some cake. (The cake isn't strictly necessary, but coding is hungry work.)

Learn Go with John

Get friendly, professional, one-to-one remote mentoring in Go with experienced trainer John Arundel. Absolute beginner? No problem. John will get you up and running. Some Go background, but looking to level up your skills? Don’t worry, we’ve got this!