How to Solve Any Problem

I find most people fail at solving a problem because they first do not understand how to fundamentally solve any problem.

This is a copy/paste from the original source where I found it. I did not want to lose the content as it looks like that site has been abandoned.

How To Solve It is a short volume by mathematician George Polya describing various methods of problem solving. The book has achieved classic status in its field because of its considerable influence.

In reading Polya’s book, I found distinct parallels to popular self development resources throughout history. Although the book outlines techniques used in mathematical problem solving, the same formulas can be applied to the practice of goal setting.

How To Solve It suggests the following steps when solving a problem:

  1. Understand the goal.
  2. Devise a plan.
  3. Carry out the plan.
  4. Look back on your work.

A more definitive description of each of the above techniques follows:


This principle is often neglected as being cliché and obvious. Yet individuals remain stifled with their efforts to achieve goals, simply because they don’t understand them. To remedy this oversight, Polya taught teachers how to prompt each student with appropriate questions dependent on their desired outcome:

  • What are you seeking to complete?
  • Can you state the goal in your own words?
  • Can you think of a picture or a diagram that might help you understand the goal?
  • Is there enough information to enable you to find an outcome?

The teacher is to select appropriate questions to ascertain if the student understands the goal at their core, and continues until the individual can respond with something focused and constructive.


Polya mentions that there are many reasonable ways to achieve goals. You will find it to be increasingly easy as you progress and learn how to overcome different limitations. A partial list of strategies include:

  • Guess and then check.
  • Make an orderly list.
  • Use symmetry. [Mimic success.]
  • Consider special cases.
  • Use direct reasoning.
  • Look for a pattern.
  • Draw a picture.
  • Solve a simpler problem. [Work on menial but relevant tasks.]
  • Use a model. [Implement available resources.]
  • Work backward.
  • Be creative.
  • Use your head.


This step is usually easier than devising the plan itself. In general, all you need are the following strategies in achieving your goals:

  • Care and patience.
  • Faith that you have the necessary skills.
  • Persist with the plan that you have chosen.
  • If it continues not to work: discard it and choose another.
  • Don’t be misled. [This is simply how shit is done.]


Polya mentions that much can be gained by taking the time to reflect and look back at what you have done. What worked? What didn’t?

Doing this will enable you to predict which strategy to use to solve future problems. If all else fails and you cannot achieve the proposed goal, try to solve first some related goals. Can you imagine a more accessible related achievement? Make it happen. replacement looks great

I was really upset when went offline, it was something I ended up using regularly. Before that site, I really didn’t understand what a “DJ” was, I thought it was just some guy that hit the play button. But the more I used the site, the more I started to understand a good DJ can feel out the vibe in a room and decide where to take it through music. It was quite the epiphany when I put that together. When that went offline, I thought that experience was gone. Then I find plug.djContinue reading “ replacement looks great”

Setting Access-Control-Allow-Origin for a rails application

I was experimenting with AngularJS and using Rails as a backend and needed to enable Access-Control-Allow-Origin for $http. Here is a simple snippet I created that does the trick. If you were doing this in production, I would assume Apache or Nginx would be the appropriate place for this code. However, this is just a POC.

# application_controller.rb
after_filter :local_access_control_headers
def local_access_control_headers
  headers['Access-Control-Allow-Origin'] = 'http://localhost:8000'
  headers['Access-Control-Request-Method'] = '*'

Well planned and executed marketing by Wegmans

Wegmans isn’t just a super market around here, it’s a destination. Going the store is less about “getting food” and more about shopping. My local store is huge, but it feels comfortable. The selection is massive, but I can always find what I came for. I can also find things that I didn’t come for and didn’t know I wanted until I saw them. So how can Wegmans accomplish this? How can they have a massive store, but yet have items that catch my attention that I wasn’t specifically looking for. The answer: The Wegmans Magazine Continue reading “Well planned and executed marketing by Wegmans”

Upgraded to RubyMine 5, it feels the same as 4.5 to me

I’m still a new RubyMine user after deciding to purchase a license back in September. I was a full time Vim user before that so I wasn’t sure how the transition back to an “IDE” would go. There are pros and cons that I won’t go into, but if I had to pick a Ruby IDE, this would be it. It has a lot of features I need, and not a lot that I don’t. That says something in a world of IDEs that are super bloated…looking at you MyEclipse
First thing I did was finally hook up RSpec to the internal test runner. Previously I would just run them via the command line and a key bind I created “;spec” which would execute “bundle exec rspec”, then tab back to the IDE when it was done. I kind of like the integrated runner, especially when it’s green.
So now I can just hit “^r” and off I go, no more fumbling for iTerm, making sure I’m in the right directory, waiting, switching back…etc.

How to reorder OS X menu bar icons

I just installed iStat menus from iSlayer and it’s pretty cool, but the date/time is just too far to the left. So I figured I would try and move it over to the right where the date/time used to be (I turned it off since this one now has the day displayed as well). With a few trial and errors, I figured out it’s just hold command, click and drag the item to where you want. Simple. Gotta love OS X’s simplicity and reorder OS X menu bar icons is no exception. If this was Windows, it would have probably required a reboot.