From Writing to Teaching Go: A Conversation with Bill Kennedy

At Develer, we believe that learning and sharing knowledge are at the core of great engineering. During our “Author Interview” session, hosted by Develer’s library team, we sat down with Bill Kennedy, author of books like Go in Action and The Ultimate Go Notebook, and one of the world’s best-known Go trainers. We discussed his journey from writer to educator, and what it means to truly understand a programming language.
The Journey from Blogger to Book Author
Federico: Bill, thank you for joining us! Let’s start from the beginning. You’ve written books and you train developers around the world. But how did it all begin?
Bill Kennedy: Hi, I’m Bill Kennedy, from Ardan Labs: we’re a training and consulting company, mostly in the US with a few clients in Europe. My first book, Go in Action, came out in 2015, but it all started with blogging. Between 2013 and 2014, I was writing a lot about Go. Brian Ketelsen and Erik St. Martin – who run GopherCon in the US – were working on Go in Action and invited me to join after seeing my blog posts. That book changed everything. It led to my first corporate clients, who asked me to teach what I had learned while writing.
“Writing It’s a Labor of Love”
F: What was your writing process like?
B.K.: Writing a blog post could take one or two weeks for research, testing, refining. But a book? That’s a whole different beast. Go in Action took about 18 months. It’s a labor of love, really. I respect anyone who finishes a book: it’s a huge commitment, hours a day for over a year.
F.: Did you enjoy the process?
B.K.: At first, yes. Then when Manning started publishing chapters, it got very real, and that burned me out. I couldn’t write again for a long time. Later I wrote a second book, based on my training materials, and that took about six months.
Writing is essential if you want to teach. You have to write down your thoughts – it’s how you build structure and context. Teaching, speaking, even recording videos: they all come after that. Writing is tedious, but it’s where clarity happens.
“Everyone Learns Differently”
F.: From the learner’s perspective, how do you see the difference between books and training?
B.K.: Everyone learns differently. If you want to be an educator, you have to do all the formats – words, videos, audio – because each person connects differently.
Personally, I prefer reading for deep technical topics because I can move at my own pace. Video is great for higher-level ideas, or to get a first impression of a topic. But to really learn, I go back to written material.
On Teaching Go: “Start with a Problem You Want to Solve”
F.: What’s the most common mistake you see from Go beginners?
B.K.: People often start with the wrong focus. My advice: start with a problem you want to solve: something simple, ideally something you’ve solved before in another language. Don’t worry about idioms or style. Just make it work.
Once you have it running, then look at how others would do it idiomatically. Compare, refactor, and learn from the differences. But you have to struggle through your own version first – otherwise, you won’t internalize what makes the idiomatic one better.
F.: That’s interesting. I also learned Go after years in C++, so I started “translating” my C++ way of thinking into Go before learning its own idioms.
B.K.: Exactly! That’s natural. Once you get comfortable, the next step is learning packaging and API design – that’s where many people make mistakes. Packages are core to Go. In my classes, that’s one of the first things we cover: how to structure your code, how to design your APIs, and when to break the rules (because there are always exceptions).
On Go, Rust, and the Language Landscape
F.: Why do you still work primarily with Go instead of newer, trendier languages?
B.K.: (laughs) Because I’m being paid to write Go! That’s where the market is, and I enjoy it. I’ve tried Rust, but it doesn’t resonate with me, though I know people who love it. The one language I’m watching is Zig – it had a lot of momentum last year. In general, I think that every language has its purpose. Use it for what it was designed for, and you’ll get good results.
“Start with a 20-Minute Talk”
F.: You’re a writer, programmer, and trainer: how can someone move from writing to teaching?
B.K.: My advice is to prepare a 20-minute talk and use it to practice at meetups.
If you can’t explain a topic in 20 minutes, it means you don’t know it well enough – or you’re trying to say too much. Give that same talk multiple times – for at least six months, maybe even a year – improving it with every iteration.
Only then should you think about moving on to a 40-minute talk. But here’s the important point: everyone can sit through a boring 20-minute talk – and at the beginning, it will be. No one, however, can endure a boring 40-minute one. The goal is to build a 20-minute talk with a good rhythm and a touch of entertainment.
You can’t hide behind the podium: you need to move, interact, make eye contact. Once you learn to do that, you can handle a 40-minute talk while keeping the audience’s attention the whole time.
When you can keep people engaged for a full hour, then you’re ready for real training. Because teaching for 4-8 hours requires more than knowledge – it requires entertainment. You’re not just an instructor; you’re also an entertainer. If you can’t keep people’s attention, they won’t learn.
On the Joy of Teaching
F.: Do you enjoy being a trainer and speaker?
B.K.: I do. I always have five talks ready to go, from 30 minutes to an hour. I’ve been doing this for 12 years, and every couple of years I create new material. I also teach 20-hour courses, and bits of those become new talks. But it’s a journey, you build it step by step.
Bill Kennedy’s path from blogging to authorship to global training shows how much patience and craft go into both writing and teaching. His advice for learners and educators alike is simple but profound: start small, be consistent, and always write first.