If you have heard the saying “measure twice and cut once,” then you are probably familiar with the idea of spending upfront time to make sure something is done right, rather than diving right in.
The most common mistake I see when conducting interviews or watching someone try to solve a programming problem is they try to start writing code as soon as possible.
- Read the problem completely twice.
- Solve the problem manually with 3 sets of sample data.
- Optimize the manual steps.
- Write the manual steps as comments or pseudo-code.
- Replace the comments or pseudo-code with real code.
- Optimize the real code.
- Read the problem completely twice
- Solve the problem manually
- Optimize the manual solution
- Write pseudo-code or comments
- Replace comments with real code
- Optimize the real code
- Don't spend hours watching low-quality television and social media when they should be productive and effective.
- The most successful people I know are not busy. They’re focused.”
- Extremely successful people don’t tolerate busywork or distraction. They have crystal clear vision on their goals, and do what they need to do to get there, every single day.
- Every time you say yes to something, it means you’re saying “no” to a dozen other opportunities. The world’s most successful and extraordinary people say no to almost everything, but yes to a few things.
Problem-solving skills are almost unanimously the most important qualification that employers look for….more than programming languages proficiency, debugging, and system design.
- Try a solution.
- If that doesn’t work, try another one.
- If that doesn’t work, repeat step 2 until you luck out.
Know exactly what is being asked. Most hard problems are hard because you don’t understand them (hence why this is the first step).
Don’t dive right into solving without a plan (and somehow hope you can muddle your way through). Plan your solution!
Pay attention. This is the most important step of all.
Don’t expect to be great after just one week. If you want to be a good problem-solver, solve a lot of problems!

