Recently I was talking to my younger brother who has just started some elementary coding for fun (we still haven’t convinced him he should have a solid plan-B to becoming a professional actor). Most of what he does is making small changes to an already enormous videogame-related code base. He mentioned to me that when he runs into a bug in his code it is overwhelmingly frustrating, but when he manages to fix the problem it feels absolutely incredible.
He isn’t the only one to mention this feeling. I experience it, many people I work with experience it, and countless programming memes online talk about it. When a bug seems unfixable it often spawns the emotion “I hate programming. HATE it.” But the moment you figure out what went wrong, write an excellent solution, and suddenly your code compiles or runs without any errors you are suddenly filled with the elated “I love programming. It’s the BEST. Everyone look at this beautiful thing I have created!”
I have heard it called the “Coder’s high” and the “Debugging drug,” and in my experience it is just as satisfying as creating a work of art or building something substantial with your hands. Knowing all the hard work you put into something and then being able to see the finished product is a great feeling. I would even say the feeling after debugging is even more powerful because it is usually immediately preceded by a contrasting feeling of frustration and despair. You go almost immediately from a deep low to an incredible height of emotion.
While working on the most recent leg of my project I implemented several small features and fixed a couple of small bugs in just one day. During that time I pretty much forgot to eat or do anything else because I was uninterrupted (the rest of my family went to the zoo) and after each task I felt like I was walking on clouds and was simply impatient to dive into the next task.
This is part of the reason that software is for me. When I’m coding it often doesn’t feel like work and my subconscious pounds away at problems even when I’m asleep in the hopes that the solution will come to me and give me the next “Coder’s high.” Obviously I also love a finished product and the satisfaction that comes from bringing something good and useful to the world, but it is rewarding to know that there is joy that comes from the journey as well.