“Everyone in this country should learn to program a computer, because it teaches you to think.” — Steve Jobs
Well of course everyone already knows how to think (well…hopefully), but thinking like a programmer can help you to solve problems more efficiently. The programmers reading this probably already agree with me but some of you non-techies might be thinking: “Really? Because last week I saw a programmer spend 6 actual hours arguing and tinkering with Alexa to turn on all of their lights for them instead of just flipping a switch.” But yes really, thinking like a programmer could solve all of your problems.
OKAY, so it won’t solve all of your problems but it will definitely make your life more efficient. The trick is that a programmer never solves their problems willy nilly, they have a system, and you should too. If you’re anything like me, trial and error works eventually…but causes a lot of unnecessary pain and suffering. If only there was an easier way! –Oh wait– there is.
- The first thing a programmer does when introduced to a problem is take the time to make sure they really understand what the problem is. Don’t assume you know what the problem is after a quick glance, mull it over until you can put what you’re trying solve into simple terms. As famed physicist Richard Feynman said, “if you can’t explain something in simple terms, you don’t understand it.” Try explaining the problem to a friend or drawing out a diagram to make sure that you have a full grasp of what you’re about to tackle.
- Plan out your solution. Only Superman can solve a problem without thinking it through, and as awesome as you are, you’re not Superman. You understand the problem, so what are all of the steps you need to take in order to reach a favorable output? And don’t just plan out the solution in your head…write it down!
- Next, reduce your problem. Programmers know that you can’t solve a problem in one fell swoop, you have to break it down into pieces and then solve those sub-problems one at a time until you reach your goal. Reduce the problem into something you already know how to solve with little effort. Then expand it ever so gradually until you are back to the problem you started with. While this technique works well with math and programming, it works well with your IRL problems too. Don’t know whether or not to take a new job? Think back to a time when you solved a similar problem. How did it work out? What would have happened if you did ______ differently? Work your way up from there.
- Debug. Sometimes, we don’t solve problems on the first try. In fact, we almost never solve problems on the first try without at least a few mistakes. In coding, we can just go through our solution step by step until we find our mistakes and fix them, but in life we don’t have the luxury of going back in time to change our outcome. However, we can retrace our steps to find where we went wrong, take note of it, learn from it, and use that knowledge to remedy mistakes and to avoid them in the future.
- Another trick programmers use when they are stuck on a problem, is to look at it with a fresh perspective. Forget all of the bias you’ve worked up so far and start at the beginning again. Is there a way to simplify your problem more than you thought?
- Google. Isn’t it great living in the 21st century? Most problems we encounter have already been solved by other people and then posted on the internet. Hooray!
Many studies and interviews cite that employers are always looking for team members with strong problem solving skills. Hacker Rank reported that 94.2% of IT employers look for problem solving first while only 55.2% prioritize programming proficiency. Of course, most programmers already have these skills nailed down, the rest of us just have to catch up.
I mean, what is a more important skill than problem solving? Without it, you’d have at least 99 problems.