Have you got this feeling that you can grasp the concepts of programming and understand what is a variable, function, data type, etc., yet you find it challenging for problem solving in programming? Every beginner gets this feeling. I did, too, when starting.
It is essential to overcome this feeling at the earliest of your journey. Otherwise, it can cause a mental block for you.
How can it mentally block you? Common sense says the more you practice a particular skill, the better you get at that skill as time progresses. The same goes with problem-solving too. The more problems you solve, you will become better at problem-solving. But when you feel that you are trying so hard and still unable to solve the problem, or you find it extremely difficult and your confidence lowers. At this stage, either you will stop solving the problems or try to solve a lesser number of issues.
The point is that your curriculum or your skilled work is generally designed to increase the difficulty as time goes on. So, you’re in a situation where you will feel less confident in solving minor problems but are now tasked with solving more significant issues. And the cycle will continue till it becomes a permanent mental blockage in you.
Is it too late to start problem-solving?
No, it hasn’t. You have made that good first step if you have realized that you need to improve your problem-solving skills. Quite often, our egos don’t allow us to accept it. It is good to get certain truths because that is the only way to improve us.
What can we do to become better at problem-solving?
1. Remove the mind block first – Exercise your mind.
Your mind is your most potent weapon. If you think you can solve the problems. So from today, positively believe that you can solve any problem. But you will start with minor issues and go on to solve more significant issues.
As with every aspect of life, it starts with giving conditions to the mind. So, from today, tell yourselves the following:
- I can solve any problem.
- I will provide at least 1-2 hours per day to solve problems alone for the next 15 days.
- I will never give up on my issues; I will ask for help if required.1
2. Understand the basic approach to problem solving
Do you know about one of the reasons for your struggle with problem-solving? One reason that might be due to lack of practice. But the main problem is that you have not understood the basics of problem-solving, especially programming. Once you know the approach to problem-solving to the smallest of things, you can confidently solve more significant and complex problems.1
Have you ever wondered how top tech companies like Google and Amazon solved the internet’s most significant & most complex problems? The answer is simplicity. They solved problems at the primary level and then solved more extensive and more critical issues. You can do it too. But for that, you need to be good at the basics.
What do we need to understand before trying to solve the problem?
1. Understanding the problem clearly – The Power of clarity
You need to understand that your problems are apparent before solving them. Lack of clarity at this stage can put you down. So for this, you should make a conscious effort to understand the issue more clearly. Asking questions like What, Why, When, Where, What if, and How. But not all questions might apply to your problem, but it is essential to ask questions to yourself before you go ahead trying to solve the problem.
2. Visualize – The Power of visualization
I am sure everyone knows what visualization is—trying to picture your thoughts. Have you ever imagined how people can solve significant problems by looking into them, and they will instantly have a solution? And we don’t even understand the situation entirely? It is because they do it using their mind. They visualize the problems in their minds and solve them themselves.
But to get into that state, first, you have to visualize the problem externally. That is where a pen, paper, or whiteboard comes into play. Try to imagine the issue at hand and try to picture the issues. That is also one of the steps that you understand the situation clearly.
There was a situation when my dear friend & colleague and I discussed a problem, and we were going nowhere. This was actually when we each had around seven years of experience in the industry. My friend said, “Let’s put our points on the inboard. If we don’t put them on the board, we will never get started”. And we started putting things on board. Things became more precise, raised more questions, and ultimately became clearer.
That’s the power of visualization, which helps us get started with our thinking. This visual thing works. Just try it out.
What is the primary approach for problem-solving?
Step 1: Identify minor problems
The primary trick in problem-solving is identifying and solving the minor issue and then moving ahead with bigger ones. So how do you do it?
The answer is a division of responsibility. We need to identify the parts that can stand independently and place a sequence in those responsibilities. And once you start breaking the problems into smaller ones, you can go ahead with the next step.
Step 2: Solve the more minor problems one at a time
Now that you have identified the more minor problems, try to solve them. While solving them, make sure that you focus only on one problem at a time. That makes life much simpler for us. If you feel that this minor problem is too big to solve on its own, try to break it down further. You need to iterate steps 1 to 3 for each more minor problem. But for now, ignore the more significant problem and solve the rest of the issues.
- Try to Focus on one problem at a time. While you’re focusing on one single issue:
- It is ok to assume that other issues are solved.
- It is ok to hardcode when coding a particular case, but later, you will resolve it in step 3.
- Solve the most straightforward problems first; that will give you confidence and momentum until you get the confidence to solve the most complex problem first.
Step 3: Connect the dots (Integration)
You have solved all the individual problems. Now finally, it’s time to connect the dots by combining the respective solution. Identify those steps which will make the key or the program complete. Typically, the dots are connected by passing data stored in variables in programming.
Step 4: Try to optimize each step & across phases.
Once you have completed a working solution with the best code that you can write, try to optimize the solution. This can only come with practice. This trick can make a massive difference between a good programmer and a great programmer. But to get this step, you need to be first good at steps 1 to 3.
If you feel any problems related to this article. Kindly do contact us here. We are here to help you with it
For more updates just follow us on Instagram.