How to Solve Programming Problems
You must resist this urge
You really want to make sure you take enough time to understand the problem completely before attempting to solve it. Another big mistake is trying to over solve the solution on the first iteration. Keep it simple, don’t try to get fancy.
A simple set of steps
1- Read the problem completely twice. 2- Solve the problem manually with 3 sets of sample data. 3- Optimize the manual steps. 4- Write the manual steps as comments or pseudo-code. 5- Replace the comments or pseudo-code with real code. 6- Optimize the real code.
Pretend Your Time is Worth $1,000/Hour and You’ll Become 100x More Productive

But in the words of best-selling author Jeff Goins:
The most successful people I know are not busy. They’re focused.

Wrote the ancient philosopher Seneca:
Indeed the state of all who are preoccupied is wretched, but the most wretched are those who are toiling not even at their own preoccupations…If such people want to know how short their lives are, let them reflect how small a portion is their own.

How to think like a programmer

by Richard Reis
If you’re interested in programming, you may well have seen this quote before:
“Everyone in this country should learn to program a computer, because it teaches you to think.” — Steve Jobs

Unless you have a system, this is probably how you “solve” problems (which is what I did when I started coding):
1- Try a solution. 2- If that doesn’t work, try another one. 3- If that doesn’t work, repeat step 2 until you luck out.
The best way involves a) having a framework and b) practicing it
“Almost all employers prioritize problem-solving skills first.
Problem-solving skills are almost unanimously the most important qualification that employers look for….more than programming languages proficiency, debugging, and system design.
Demonstrating computational thinking or the ability to break down large, complex problems is just as valuable (if not more so) than the baseline technical skills required for a job.” — Hacker Rank (2018 Developer Skills Report)
5 Whys

When to Use a 5 Whys Analysis
- Assemble a Team
- Define the Problem
- Ask the First “Why?”
- Ask “Why?” Four More Times
- Know When to Stop
- Address the Root Cause(s)
- Monitor Your Measures
