Almost every night, my boys want me to read books about Iron Man, Hulk, Spiderman, Thor, and even the Guardians of the Galaxy. They are all about superheroes and villains and super powers. This had me thinking about all of the skills that make me who I am and if I had to choose one, what would be my super power.
The Engineer – Taking Things Apart
I’ve always loved tearing things apart and seeing how they work. Whether it was with brute force or – later on – with a methodical approach and with tools, I was always curious and inquisitive. How does this machine work? Why does it work this way? What if this were tweaked a little?
The Creative – Assembling Things
Like a double decker couch! (Ok… or not… ) When it comes to learning how to work with things, I find that I enjoy assembling things as well. Whether I am using power tools like I did while working on steel-framed houses for Habitat for Humanity or using Allen wrenches for IKEA assembly adventures, as I assembled things, I found myself analyzing what I was building, where it seemed strong, and where the flaws may be.
The Super Power – Taking Things Apart + Assembling Things = Debugging!
When it comes to my core, my super power definitely lies in debugging. Whether it was the power of the alert()
in JavaScript or the Console.WriteLine()
in C# or the cout>>
of C++, I used to write a bit of logging out to the screen for immediate gratification to help me debug before we had decent debugging tools. If I was debugging something over time, I would write log files. (And yes, I’m one of those weird people who enjoys reading log files.)
As debugging tools appeared in our editors, I found myself being even more efficient in figuring out what was broken and where I went wrong. Stack traces became less foggy and more sensible. Error codes became more searchable. Nowadays, you can find me working with debuggers in IDEs, other editors, and even in the browsers. From breakpoints to variable inspection, drilling into methods to tracing the call stack, most debuggers offer a lot more support and information that I hardly have to write out to my screens. I don’t even use console.log()
in JavaScript much because web browsers’ developer tools and debuggers have matured in that regard.
Whether I am maintaining my own codebases or learning new ones, I find debugging to be that super power that makes me pick up patterns and understanding as quick as I do. With a good debugger, I find myself solving a lot of problems a lot quicker than my old school debugging ways.
My super power lies in debugging. How about you? What’s your super power?