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😉.
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. 🚀🚀🚀