Many new programmers believe that building software is about starting a new project afresh; however practically speaking, in the industry, that is a once or twice in a lifetime activity for a software engineer unless of-course you are the chosen one who mints new software product every day.
With that said, what exactly takes up majority of the software building is debugging. Right from the first piece of functionality, everything that follows is built upon through an incremental process that involves expert debugging skills. The better you are at debugging, the better programmer you are. Every new line of code must ensure that the previous code remains sane as before and continues to work. This is crucial!
A deep understanding of the architecture and patterns, knowledge of the programming language in terms of syntaxes, supported libraries and integrations are other important pieces that helps become good at debugging.
Every software starts with a problem, a business problem – social or economic or commercial.
Anything that addresses that problem is the solution; that is the anomaly used here. It always starts with ‘fixing something’, a real world problem – operational or strategic, that is projected into the digital world to find a solution. The whole process is debugging… step by step, applying systems methods to arrive at a point where that problem doesn’t exist anymore or it exists, but is handled. You need tactical skills at ground level to deal with it, which is where the debugging skillset becomes so important. Someone with a debugging mindset is the one who can solve the problem. The implementation of the solution might need more people with diverge skills but ‘the mindset’, ‘debugging mindset’ is such a rare but somewhat underrated skill.
This post is dedicated to all the awesome debuggers out there!