Wednesday, February 16, 2005

Numerical Computation and Kindergarten

Everything I Needed to Know, I Learned While Attempting Numerical Computations

  1. Some problems have many solutions and some have no solutions; a few have just one solution.
  2. Sometimes you get lucky. Often you don't. Unless you know what to expect ahead of time, it's hard to tell the difference.
  3. If you take the wrong approach, getting lucky means failing early.
  4. The difference between good enough and good may be the difference between easy and impossible.
  5. The hard part is not finding good solutions; it's knowing when you've found them.
  6. A good solution passed through the hands of a few careless people (or sensitive functions) can turn into a disaster.
  7. If an obvious bad solution is nearly the same as a good solution, it will be hard to avoid getting distracted by the bad one.
  8. Throwing more people (or processors) at a problem only slows things down if you don't know how to coordinate them effectively.
  9. Sometimes the best way to deal with a problem is to sleep on it.
  10. Religious zealots will propose the same approach to every problem, even if the approach is totally inappropriate.
  11. Keeping up with rapid changes is hard; recognizing slow changes is also hard. Interesting problems change rapidly in some ways and slowly in others.
  12. Finding a description that captures the important details and neglects the unimportant ones is an art; it's also the first step to finding a solution.
  13. Usually, someone else has solved the same problems you have. Always, someone else thinks they have the solution to your problems.
  • Currently drinking: Golden Monkey Tea