Photo by João Silas
Towards the end of the last computer science lab that I TA, a student called me over to help him with a bug. After the first 10 minutes, we still couldn't find the issue, every part of my brain was telling me that the code ought to work. It took nearly 20 minutes of helping him dig through his code before we found the issue.
As usual, the bug was produced by a minute error. He had accidentally switched the order of two of the arguments in a function call.
Immediately after we fixed the bug, and tested the code to make sure it was working, I felt a rush. Anyone who has ever felt the joy of fixing a frustrating bug can relate. We both grinned, he submitted his code, and shook my hand and thanked me for the help.
Debugging is one of the most common things that I help students with. Interestingly, I actually know much less about their code than they do, but I am usually able to find the source of their issue not because of what I know, but because of my mindset.
Oftentimes your mindset can be even more important than what you know.
Here's a link favorite podcast all about debugging. Even if you don't have a technical background, I think you'll find it highly entertaining.