title: How to cultivate algorithm intuition?
body: <p>When faced with a problem in software I usually see a solution right away. Of course, what I see is usually somewhat off, and I always need to sit down and design (admittedly, I usually don't design enough), but I get a certain <strong><em>intuition</em></strong> right away.</p>
  
  <p>My problem is I don't get that same intuition when it comes to advanced algorithms. I feel much more up to the task of building another <a href="http://www.facebook.com" rel="noreferrer">Facebook</a> then building another <a href="http://www.google.com" rel="noreferrer">Google</a> search, or a <a href="http://www.pandora.com/mgp.shtml" rel="noreferrer">Music Genom project</a>. It's probably because I've been <em>building</em> software for quite some time, but I have little experience with <em>composing</em> algorithms.</p>
  
  <p><strong>I would like the community's advice on what to read and what projects to undertake to be better at composing algorithms.</strong></p>
  
  <p>(This question has nothing to do with <a href="http://en.wikipedia.org/wiki/Algorithmic_composition" rel="noreferrer">Algorithmic composition</a>. Well, almost nothing)</p>