Problem-solving is the arguably the most important skill we test for during our technical interview, but it’s not something that learners will often be exposed to during the self-learning stage. While free resources like The Odin Project or Free Code Camp are a great way to broaden your technical knowledge, they don’t usually focus on how to think through problems and come to efficient solutions based in best practices. Fortunately, there are many resources available that can help you develop your skills. In this blog post, we’ll share five of the best resources for problem-solving like a software engineer.
1. Our problem-solving workshop with Rithm’s CEO/Founder and Lead Instructor, Elie Schoppik
Take the time to watch this helpful video on how to solve problems like a software engineer. During this interactive workshop, Elie talks through valuable tips like writing pseudocode, thinking through edge cases, and using debugging strategies.
Whether you’re considering a bootcamp or are already employed as an engineer, these skills will come in handy for the rest of your career.
2. This six-part blog series on the problem-solving process
Take a deep dive into the problem-solving process. In this blog post, we break down the process into six simple steps:
- Understand the problem
- Explore concrete examples
- Break it down
- Solve a simpler problem
- Use tools strategically
- Look back and refactor
By the end of the series, you’ll have a much better understanding of how to tackle the coding challenges in front of you.
3. Our favorite problem-solving platform, Codewars
Codewars is a great free tool for upping your problem-solving skills. Their platform allows users to create and solve problems in just about any language imaginable, at any skill level. Codewars sorts their problems from 8 kyu (easiest) to 1 kyu (hardest). Hint: To prepare for Rithm’s interview, you’ll want to practice up to 6 kyu. In addition to that, you can also practice:
- Writing pseudocode before you start coding. Going back to step one of our problem-solving process, you can’t solve a problem before you understand it. Make sure you understand the problem like a human before you start thinking through it like a computer.
- “Being your own computer” before you run your code. Manually step through each piece of your code to make sure it behaves the way you expect it to, and that it meets the requirement to solve the problem you’re working on. It helps to talk through this out loud to whoever you have available to you—now’s the perfect time to turn your cat into a colleague!
- Time yourself as you code. Time yourself each time you solve a problem. The next time you solve a problem, try to do it a little faster. This will help you get used to coding under time pressure, and will make you quicker and more confident as you work.
4. Algorithmic Puzzles by Anany & Maria Levitin
Algorithmic Puzzles is a book we often recommend to learners who struggle with problem-solving during their technical interviews. The book begins by walking you through algorithmic design techniques such as backtracking and divide-and-conquer. After learning about these techniques and how to analyze algorithms, you’ll move into three sets of 50 increasingly challenging puzzles where you’ll put your knowledge to the test. This book is a great resource and is very popular with our teaching staff!
The full text of the book, as well as the associate code sandbox and exercise solutions, can be found for free here.
Developing your problem-solving skills is essential for success as a software engineer. By taking advantage of the resources we’ve shared in this blog post, you can learn the techniques, strategies, and tools you need to tackle even the most complex challenges. Remember to approach problem-solving with a growth mindset, be persistent in your practice, and don’t be afraid to ask for help when you need it. With practice, you’ll become a confident and effective problem-solver, able to take on any challenge that comes your way.