Thorsten Ball talks with Dave Rael about writing code and writing books, diving deep, failure, persistence, and languages
Thorsten Ball is a software developer and writer. He works at ioki, where he helps to build and scale the web application that powers the mobility platform. He wrote two books: "Writing An Interpreter in Go" and its sequel, "Writing A Compiler In Go".
Both books are a result of his love for doing what he calls "recreational programming", where he digs deep into various topics, hoping to come out the other end with a better understanding of what it is that we do when we program. For the last few years, the two topics that kept his attention the most are systems programming and programming languages.
He's also interested in the other side of doing professional software development: software engineering in a team, communicating through code, team and company culture and how to write good code together.
This fascination with programming and what it means to develop software, turned into his two books and various blog posts, podcast appearances and talks.
Chapters:
0:36 - Dave introduces the show and Thorsten Ball3:06 - How Thorsten got started in software9:49 - Thorsten on writing books16:14 - Understanding why things are the way they are19:53 - Similarities between writing books and software projects and other creative endeavors22:47 - Persistence vs failing fast, conflicting advice, best practices, and "it depends"27:36 - Writing in English for a German programmer32:13 - Thorsten's choice of Golang for his books39:11 - Thorsten's story of failure - bugs, overlooking missing elements, rejection44:25 - Thorsten's book recommendations51:14 - Thorsten's top 3 tips for delivering more value55:07 - Keeping up with Thorsten
Resources:
Thorsten's Blog, Including Signup for His Newsletter
Writing An Interpreter In Go - Thorsten Ball
Writing A Compiler In Go
Kevlin Henney on Developer On Fire
Ted Neward on Developer On Fire
Nand to Tetris
The Elements of Computing Systems: Building a Modern Computer from First Principles - Noam Nisan
Compilers: Principles, Techniques, and Tools (2nd Edition) - Alfred V. Aho
Udi Dahan on Developer On Fire
The Go Format Tool
Uncle Bob Martin on Developer On Fire
Sandi Metz on Developer On Fire
Thorsten's book recommendation:
The Pragmatic Programmer: From Journeyman to Master - Andrew Hunt
Clean Code: A Handbook of Agile Software Craftsmanship - Robert C. Martin
Practical Object-Oriented Design in Ruby: An Agile Primer (Addison-Wesley Professional Ruby Series) - Sandi Metz
Structure and Interpretation of Computer Programs (The Mit Electrical Engineering and Computer Science Series) - Harold Abelson
The Soul of A New Machine - Tracy Kidder
On Writing Well: The Classic Guide to Writing Nonfiction - William Zinsser
Thinking, Fast and Slow - Daniel Kahneman
Thinking Forth - Leo Brodie
Code: The Hidden Language of Computer Hardware and Software - Charles Petzold
Coders at Work: Reflections on the Craft of Programming - Peter Seibel
Thorsten's top 3 tips for delivering more value:
Learn to write well because communication is important
Know one level of abstraction beneath you
Write code to be changed and/or deleted