Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am a software engineer with a couple of years of experience. However I feel my problem solving skills need to be improved. To put in crude terms given facts A and fact B I have difficulty in reaching conclusion X ? Some people seem to have the ability to reach conclusion X given facts A and B and and also remembering to take facts C,D in account.

What techniques do you use to improve your problem solving and analysis skills ?

share|improve this question

2 Answers 2

up vote 3 down vote accepted

Generally when I'm solving problems via analysis I do the following:

  • locate in a system, the sub-components that are the focus of the problem
  • State the initial assumptions for the components state
  • given a set of initial state(s), predict what you believe will be the outcome.
  • If the prediction(s) fail, remove each state assumption one at a time, and confirm that the state is what you assumed it to be.
  • If the states are all correct, then the issue is one of logic.
  • To solve a set of Logical issues, start off with a set of "Logical Transform" assumptions
  • Repeat the above method but for "Logical Transforms" example: "assume (1) when condition X -> x transforms to y"

That's loosely how I work through problems.

share|improve this answer

There is a book called Analysis Patterns by Marin Fowler. It is about object models and not about any algorithmic analysis, but learning about this patterns, helped me recognizing patterns in various domains and thus being able to analyze it more thoroughly.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.