How to Think Like a Programmer? š¤
Creating new technologies or improving technologies we already have doesnāt only require us to master Coding as a Skill. Apart from Coding, which is the main part of getting into Solutions, we also have to think about the Skill coming just before jumping into Code: Problem Solving.
Programming Job is sometimes as complex as other professions (such as Construction jobs) because a lot of efforts need to be made in order to build something meaningful.
One of my Programming Teachers once said:
āDo NOT construct a house from bricks, you should construct it from a draft. A good design is essential for the building.ā
Starting from a draft require an Abstraction work of our brain; this is not something only for genius, every Programmer should have the Skill of Solving Problem from Draft to Design.
š°In this article, weāre going to talk about:
- What a Problem-solving skill really is.
- What āThinking like a Programmerā is.
- How to connect Problem Solving with āThinking like a Programmerā (a Good one).
What is Problem-solving? š¤
Problem-solving is the act of defining a problem; determining the cause of the problem; identifying, prioritizing, and selecting alternatives for a solution; and implementing a solution. (asq.org)
š”This regroups all the steps of defining the problem, trying to understand what is going on in a situation before tackling it, This is what we can call the Draft Part.
In our case, we cannot start writing Code unless we really understand the problem to solve, every step of coding must be the result of something weāve done before. Thatās why many of us get stuck in bugs (not because they donāt know how to code, but because they donāt really understand the problem theyāre called to solve.
Problem-solving is the Key factor of Being a Strong Programmer. As a skill, it is called to be improved by Challenges. Some of us (including me, two years ago) have been coding from Tutorials without learning or thinking about developing this skill, Thatās one of the reasons many of the Beginners are stuck in Tutorial Hell, as a matter of fact, that they donāt know how to go and fight. Go and Test your Skill! ā
What āThinking like a Programmerā is. š§
Knowing the concept of solving problems, weāre called to bring solutions to the market by using our technical skills. In Tech Industry, thinking like a Programmer is having the ability to see a challenge from one angle, then being able to take a step back and look at the same challenge from an alternative perspective. Do this over and over again until you find a solution. (zapier.com)
Thinking like a Programmer brings new approaches to Getting Challenges and Being the Winner at the end. You cannot write Good Software unless you THINK FIRST. Itās not a mystical term, itās something everybody can use and become stronger.
How to connect Problem Solving with āThinking like a Programmerā? šÆ
In this part, weāre going to talk about some practical things you can do/use in order to be efficient in your tech journey.
š” Develop Perspective Vue of the Problem:
Donāt enter into the Room of the Problem if you do not know what it is made of. Getting the Perspective, the context of the problem will allow you to know it and think about different ways of tackling it.
š” Break things down into building blocks:
Break it into pieces separately and start solving by part instead of solving globally.
In ReactJS (a JS library developed by Facebook for UI) for example, we have what we call āComponentsā. This concept helps us to see the Problem in different parts; When we want to Design a Great Web Software, we have to approach each step (part) individually FIRST, before assembling it all together in order to make the App.
š” Define and note all the approaches coming to mind and Start trying one by one:
In this Step, youāre required to write some algorithms (I mean how youāre going to solve each step) AND test them! Do it in a Loop of noting, testing, trying again with some variations, and going on. š
š” When youāre stuck, after trying many times, Google it:
Yes, Google! StackOverflow it! Ask the Community!š¤
This is a Powerful tool for Software Engineers, actually, itās a skill. You have to be willing to ask. But before that, try by yourself.
š” Use the Docs:
There, you find 80% at least of what you need as fundamentals and bring it into your Code; Practice it without ceasing, this will be Challenging but also Strengthening. Do it!
This is not exhaustive, weād like you to add some of the advice in the comments section, that will doš.
ā Conclusion
Connecting from the beginning to the end, from thinking to practicing, from problem-solving to programming is the way to go.
Knowing what problem-solving is and how to use it in Programming/Coding is one of the most important Skills every Programmer should master.
As seen above, this article has covered some approaches to use in order to solve a Problem in the Tech Industry.
This is time to make use of this Skill. ššš
šDo you like it? Feel free to connect with meš
šTwitter: https://twitter.com/KennKIBADI
šLinkedIn: https://www.linkedin.com/in/kennkibadi/