Best Programming Problem solving Techniques

First we need a general set of techniques and principles, some problems are have specific techniques, but the rules below apply to almost any solution.

1. Always have a plan
    - This is perhaps the most important rule, you must always  have a plan, rather than engaging in directionless activity.
    - General Dwight D. Eisenhower was famous for saying " I have always found that plans are useless, but planning is indispensable" that indicates battles are so chaotic that it is impossible to predict everything that could happen and have predetermined response to every outcome.

2.Restate the problem
  - Restating a problem can produce valuable results.
  - Restating a problem  is like circling the base of a hill that you must climb, before starting your climb, so checkout the hill from every aspect or angle or way or eye.

3. Divide the problem
   - Finding a way to divide a problem in to steps or phases can make the problem much easier.
   - Combining programming techniques is much trickier than using techniques alone.

4. Start with what you know
   - You should try to start with what you already know how to do and work outward from there.
   -  This technique follows a plan and gives order to our efforts.

5. Reduce the problem
 - When faced with a problem your are unable to solve, you reduce the scope of the problems by either adding or removing constraints, to produce a problem that you do know how to solve.

6. Look for analogies
  -  In this technique, know about the similarity between a current problem and a problem already solved, that and exploited to help solve the current problem.

7. Experiment
  -  Sometimes the best way to make progress is to try things and observe the results.
  -  An experiment is a controlled process, you should do different experiment and give some output that helpful to solve problem.
 - Experimentation may be especially helpful when dealing with application programming interfaces or class libraries.

8. Don't get frustrated
  - The final technique isn't so much a technique, but a maxim, don't get frustrated.
  -  When you are frustrated , you won't think as clearly, you won't work as efficiently and everything will take longer and seem harder.
  - When you feel frustrating, then you should take a break and enjoy doing other thing that you love.

These are the not hard and fast rule, but i read on the book, that touched me, thats why, I am going to share you.


  1. I agree with you, especially that there might be some techniques that you need to implement in order for you to attain that kind of action and would help you in gaining a lot of solution in tackling that certain kind of problem in programming.

  2. I just read your article.It is really useful, after reading this I got some ideas about Java. Start to learn Java programming because there is a massive demand for Java developers in IT sectors. It has a great scope in future.
    JAVA Training institutes in chennai | Best JAVA Training institute in Chennai | Java Courses in Chennai