The Art of Debugging

Debugging is the art of finding a needle in a haystack. It enhances the already existing codes as well as programs to resolve bugs and makes them faster with higher efficiency. As the adage goes, “ An average software developer spends 20% of his time in actual coding and 80% in validating and debugging.”

Vrushali Deshmukh
IEEE Women In Engineering , VIT
4 min readNov 22, 2020

--

Image by <a href=”https://pixabay.com/users/mohamed_hassan-5229782/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=3963099">mohamed Hassan</a> from <a href=”https://pixabay.com/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=3963099">Pixabay</a>

The computer industry is booming, as a result of which Data is like Space, i.e., ever-increasing. To monitor a vast amount of data, a huge workforce is required which automatically opens a lot of job prospects for budding programmers who must possess this necessary skill of debugging.

According to an estimation, roughly 50–75% of the total budget for software development projects is spent on debugging, testing and verification. This budget can be attributed partly to the fact that it covers the salaries of millions of employees who manage and rectify data round the clock.

Even in an interview, debugging questions are quite common. The mindset of the interviewer stems from the fact that a good debugger can critically analyze complex problems and is, therefore, a good troubleshooter. And your inability to debug might leave a wrong and lazy impression on him.

But if you think of straight away diving into debugging blindly and you don’t already have a plan of action then you are Easter Egging.

Tips for brownie points in an interview: Ask about the history of the system and how the system operates before answering (if you don’t exactly know about it). A person, who thinks system first and mechanics second, is considered a good troubleshooter.

Sometimes, your interviewer might give you a complicated code to rectify, but actually, he might simply want to mind map your way of solving it. If you’re a competent candidate and were engaged enough, you will spontaneously ask follow-up questions after the solution has been given. He might also want to see your orderly thought process, your determination to get to the solution and the structure of your solution. Ideally, you correctly need to identify the problem. That’s it!

More generic questions could be:

How do you tackle problems in your code or which debugging tools do you use?

What’s the most complex debugging project you’ve ever handled?

How would you rate your ability to handle the problems in someone else’s code?

Image by <a href=”https://pixabay.com/users/15548337-15548337/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=4918185">Dhruvil Patel</a> from <a href=”https://pixabay.com/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=4918185">Pixabay</a>

So, Yes! Practicing debugging is not an easy task unless you have a specific buggy code or a project to do. However, its unavailability should not stop you from doing anything to get better at it.

The solution is to focus on your auxiliary skills. You need to improve your ability to read and interpret a code quickly. You should be able to debug with or without tools. Your interviewer might even deny you access to your favourite niche tool. So DO NOT rely on them completely!

To hone your debugging skills, start learning the standard commands for your preferred debugger. Understand how to get stack traces, end-user interaction, view variable values, set breakpoints, syntactical error reporting from code snippet or a schematic diagram, reproducing the bug, logfile analysis, verification, etc.

The technique to use a simple debugging tool should always be there in your back pocket!

There are a variety of things that young programmers can do to get better at debugging.

1. Print statement — Using a print statement in the middle of you’re code will help you check what values are stored in different variables. It reduces the chances of error.

2. Use Google — Make use of Google effectively to understand a piece of code or an error message. It’s just like looking up the meaning of a word in a dictionary.

3. Debugging tools — Most of the languages today have debuggers that are used to find errors in the code. Debugging tools like Visual Studio and Eclipse are also used to check and rectify codes.

Debugging is a broad topic, to say the least! IEEE-WIE brings to you a competition wherein we will present some code snippets for you to debug. So put on your thinking hat and find the bug in the code! It’s the right time to test your knowledge and run your brain interpreter! Watch out for our interesting event — Debug The Bug on our Instagram handle on November 22nd at 4 pm sharp!

Happy Debugging!

--

--