Everything I Needed to Know About Debugging I Learned in Elementary Physics

By Nate Taylor

Elevator Pitch

You’ve been tasked with fixing a bug, but you’re not sure where to start. Come learn a mental framework for solving problems, and see that framework in practice as we solve problems that have happened on real-life software projects.

Description

Has there ever been a time where you got a bug report and you didn’t even know where to start? Have you ever felt overwhelmed with how code is behaving? You’re expecting one thing and it does the exact opposite? Situations like these can be some of the more frustrating aspects of software development. Solving problems is central to being a top-notch developer, it’s part of what separates the experts from the novices.

Over the years I’ve come to realize that problem solving isn’t always easy, but it can be broken down into some basic steps. These same steps were taught to me when I first learned physics, and have helped me solve numerous problems.

By the end of the talk, you’ll have a mental framework for solving problems, and you’ll get to see that framework in practice as we solve problems that have happened on real-life software projects.

Notes

These principles were first taught to me over 15 years ago in my freshman physics class. I didn’t realize it at the time, but they had huge applications in debugging software. Over the years as I have worked with younger developers I have tried to bring these principles in, to give them a framework for how to solve software problems.