Tips for Solving Coding Problems

Kelvin Graddick · 3 minute read ·     

Getting STUCK on coding issues SUCKS... here’s what I do

When you’ve been going over code and debugging for hours; and all you got was older... 👴🏾 😩
If you’ve ever found yourself hunched over your keyboard, desperately trying to fix that one bug while your energy steadily drains, you’re not alone. Coding challenges can be exhausting, but they don’t have to be impossible. Below are some of my tried-and-true tips for tackling these headaches before they turn into migraines.


Break It Down ➗

  • Break down the problem or project into smaller, more manageable pieces
    Instead of seeing a massive wall of complexity, focus on segments. For instance, if you’re working on a large web application, consider separating the frontend, backend, and database concerns.

  • Solve one problem at a time instead of being overwhelmed
    Many developers jump between tasks. This can lead to a “jack-of-all-trades, master-of-none” scenario. Laser-focus on a single problem, solve it, then move on.

  • Consider the architecture
    Should your solution be separated into components or microservices? If you’re new to microservice architecture, check out Martin Fowler’s article on microservices for a deeper dive into how best to split large systems into more isolated parts.


Solve the Problem Manually 💪🏾

  • If possible, complete the work manually and document in detail what needs to be done
    Before writing code, step through each stage of the process. This will give you an ironclad understanding of what’s required.

  • Be sure to completely understand logically what the software needs to do
    Ask yourself: What inputs are needed? What outputs should I expect? Do you have clear requirements? Clarify them.

  • Determine the code/implementation needed to automate the manual solution
    Once you fully get the manual steps, coding is just converting a step-by-step process into a language your computer can interpret.


Explain It to Someone Else 👨🏾‍💻

  • Often, simply explaining a coding problem to others helps us solve it
    This is sometimes referred to as the Rubber Duck Method—where you “talk” to a rubber duck or an inanimate object as if it were a person. Learn more about it at Rubber Duck Debugging on Wikipedia.

  • The process of describing a problem can open a deep/unexplored level of thought on it
    You’ll be forced to articulate your logic, which can highlight gaps or mistakes.

  • The other person could very well provide the solution
    Or they might just ask one question that sparks the “aha!” moment you needed.


Draw It Out / Write Pseudocode ✍🏾

  • Visualize the problem with pseudocode or a diagram
    Before jumping into your favorite programming language, try to outline your approach. This can help you see potential issues right away.

  • Often, drawing out the problem can spark epiphanies
    Whether it’s a simple flow chart or a detailed UML diagram, visual aids can do wonders for comprehension.

  • Pseudocode helps you organize the high-level approach in your mind before going to code
    Don’t overcomplicate it! Even bullet points outlining the algorithm can help.


Don’t Reinvent the Wheel ♻️

  • Many coding problems have been solved before
    There’s a reason Stack Overflow is so popular. Don’t struggle in isolation if a similar issue has already been fixed out there.

  • Make sure you are solving a new problem and not rewriting existing solutions
    Check if there are libraries or frameworks that can ease your workload. Why build a CSV parser from scratch if there’s already a robust, open-source solution?

  • Explore internal and third-party services/libraries to help you solve the problem
    Look at your company’s code repositories; maybe there’s a microservice you can reuse. Or see if open-source solutions are stable enough for your needs.


Just Walk Away 🚶🏾‍♂️

  • Walk away from the computer for a while to take a mental break
    Research (like this article on the benefits of taking breaks by Healthline) shows that stepping away can boost creativity and productivity.

  • Taking a step away can sometimes give you the answer
    Have you noticed how solutions often pop into your head while you’re in the shower or on a walk?

  • Sleep on it
    If a bug persists, call it a night. With fresh eyes and a rested mind, you might spot the solution within minutes the next morning.


What are your tips? Leave a comment with them below! Whether it’s leveraging online coding platforms like LeetCode or HackerRank for extra practice, diving deeper into microservices, or just taking more breaks to recharge, there are countless approaches to beat the frustration that comes with gnarly coding issues.

Remember: coding is both an art and a science. With the right mindset and resources, you can conquer any programming challenge you face. Keep calm, keep coding, and happy debugging!

Video


Want to share this?