Go Fundamentals - Foreword

by Steve Francia - @spf13

I feel excited, honored, and a bit shocked to be writing these words.

I've known Mark and Cory for more than a decade, and as the Go project has evolved beyond our 1.0 vision, I've really been hoping for someone to write a follow up to the excellent Go 1.0 books. I'm really grateful for the good fortune I've had to be so deeply involved in the Go project and community. What began with me typing the first few lines of code into Hugo, Cobra, and Viper over 10 years ago has exploded in ways I couldn't have dreamed of. It's been the privilege of a lifetime to lead the Go project alongside my partners Russ Cox and Sameer Ajmani and to work alongside the luminary programmers both on the Go team at Google and across the Go community.

I met Mark when we both spoke at the first Gotham Go. I was instantly drawn away from him. I found his on-stage persona to be a bit too much. Later that year, the organizers of GopherCon asked me to lead the lightning talk program and said they had the perfect partner for me. You guessed it—Mark. I learned that Mark's stage persona was indeed who he was off stage. I also learned that he was a loyal friend who would do anything for the Go community, whose humor and courage was boundless... limitless... maybe a bit too much. Mark and I have paired on many stages and projects over the past 10 years, and Mark injected a spirit of excitement into everything he did. He's become a dear friend, and I'm grateful to have been on so many adventures with him.

I met Cory at the second GopherCon and instantly was drawn to him. Cory is a natural teacher—captivating and empathetic. He cares deeply about the Go community and ensuring that Go is accessible to all, especially the folks new to Go. I've worked with him on a variety of community efforts, and I've always come away impressed with the depth he shows in his knowledge about Go and the learning experience.

Mark and Cory have been working together for many years now as the dominant training duo for Go under the name Gopher Guides. Together they have produced excellent training programs for clients that include many notable brands found on the Fortune 500. They have expertise in both Go and in empathic learning, forged over thousands of hours of classroom-style instruction. They are the perfect pair to author what is destined to become "The Go Book" for Go's second phase (Go with Modules & Generics).

This book leans on Mark and Cory's years of experience in the field and in the Go community to take a very grassroots approach to learning, and it is the guide for programmers to become gophers. It also leverages their practical experience writing Go libraries and applications to present to the reader pragmatic solutions and simple explanations.

This book guides you like an old friend would, telling you the technical approaches to things but also relaying the cultural norms and idioms. It answers questions that the majority of books don't even think of because Mark and Cory have heard these questions asked by real people in a classroom so many times. Through reading and applying what is in this book, more than any other of its kind, you will progress from becoming a programmer to being a programmer who writes Go to being a gopher.

I am excited for the journey you are about to take with this book. I'm sure that you will sense the same excitement and empathy through these pages that I have experienced through all the adventures I've had with Mark and Cory. My hope for you is that as you learn Go, you will, as I did when I first discovered Go over a decade ago, fall in love with programming again.