DEV Community

Cover image for top 10 tips for problem-solving
mahmoud
mahmoud

Posted on

top 10 tips for problem-solving

solving the problem

1- Understand the problem

  • Describe the problem for me on the paper so I can understand it

2- Explore concrete examples

  • Understand the inputs and the outputs expected to out
  • How to handle errors
  • What happens when the user enters something invalid

3- Break it down

  • break the problem into small parts and steps in the code place - - to solve the problem as steps to follow

4- solve the problem in a simple way

  • Write the solution to the problem as simply as possible

Refactoring the solution

5- Check the results

  • Make sure the output of your solution required one as output from your code

6- Refactor the code for a better version

  • Go through the solution steps and check if we can write it in a better way
  • Search if there is a helper function that can make the code run faster for time complexity

7- Reuse my code

  • think if I can use some parts of my code as solutions for other problem

8- work on time and space complexity

  • Work on making the code run faster than it exists
  • Work on making the code not consume much memory space

9- Search on google to find other solutions to learn from them

10- Share your solution

  • upload your solution on GitHub and share it with others
  • explain it so you will learn as much as you teach

Follow Me On LinkedIN

Top comments (3)

Collapse
 
nicolus profile image
Nicolus •

Depending on your workflow, step 2 would lead to step 2b : Write Unit Tests that reproduce the problem and fail.

I'm not even a big TDD proponent, but a hard to pinpoint bug is a perfect opportunity to add some tests, and ensure the same bug will not reappear later on.

Collapse
 
boraye profile image
mahmoud •

this is good opinion I'll try it for my next problems.
thanks for sharing looking forward to learn more from your experiences :)

Collapse
 
sohrab09 profile image
Mohammad Sohrab Hossain •

Good post.

Thanks for sharing.