Jonathan Blow on solving hard problems (Defer hard decisions as late as possible, try to have a forward motion on getting the software to approximate what it is intended to do, so. Solve the things that are easier to solve so youll get more experience in the field of the problem you are working on, this way the hard choices are made with better knowledge of the context by a person with more experience in the problem domain.)