Debugging is an extremely important part of programming. When something goes wrong, you need to fix it, but the first step of fixing anything is figuring out why it’s broken.
There’s been many, many words written on programming techniques and software development techniques in general. You can develop with a waterfall. You can develop agile. You can write tests first. You can write tests last. You can not write tests at all. You can use OOP. You can use functional programming. You can use message-based programming. You can do pretty much anything, and probably even make a Dr. Seuss-style story about it all.
I’ve yet to find a decent article discussing debugging techniques. Off the top of my head I can think of a few ways - putting println statements everywhere, using the debugger, using an interactive debugger (i.e. actually executing commands that aren’t in the code while debugging, such as Visual Studio’s Immediate Window or gdb/lldb), and cookie-jar debugging, but I have yet to find any detailed discussion on debugging techniques.
So why does nobody talk about debugging?