C++ | Progresssion Path
<p>Inspired by the Question on <a href="http://stackoverflow.com/questions/2573135/python-progression-path-from-apprentice-to-guru">Python-Progression Path</a> - </p>

<p>I know the <code>basic OOP-related topics</code>, <code>RTTI, Templates</code>. Reverting back from <code>Java' Collection Framework</code>, I tried to find such collections in <code>C++</code> and found <code>STL</code>, and am trying to use it in my projects (although I don't know them in and out). I searched and found recommendations for books like <code>Accelerated C++, Effective and More Effective C++</code>. But I am not sure what should be my progression path, so I am looking for something like - </p>

<pre><code>def apprentice():
  read(diveintopython)
  experiment(interpreter)
  read(python_tutorial)
  experiment(interpreter, modules/files)
  watch(pycon)

def master():
  refer(python-essential-reference)
  refer(PEPs/language reference)
  experiment()
  read(good_python_code) # Eg. twisted, other libraries
  write(basic_library)   # reinvent wheel and compare to existing wheels
  if have_interesting_ideas:
     give_talk(pycon)

def guru():
  pass # Not qualified to comment. Fix the GIL perhaps?
</code></pre>

<ol>
<li>Discover <a href="http://en.wikipedia.org/wiki/List_comprehension#Python" rel="nofollow">list comprehensions</a></li>
<li>Discover <a href="http://en.wikipedia.org/wiki/Python_syntax_and_semantics#Generators" rel="nofollow">generators</a></li>
<li>Incorporate <a href="http://docs.python.org/library/functions.html" rel="nofollow">map, reduce, filter, iter, range, xrange</a> often into your code</li>
<li>Discover <a href="http://wiki.python.org/moin/PythonDecorators" rel="nofollow">Decorators</a></li>
<li>Write recursive functions, a lot</li>
<li>Discover <a href="http://docs.python.org/library/itertools.html" rel="nofollow">itertools</a> and <a href="http://docs.python.org/library/functools.html" rel="nofollow">functools</a></li>
<li>Read <a href="http://rads.stackoverflow.com/amzn/click/0596514980" rel="nofollow">Real World Haskell</a></li>
<li>Rewrite all your old Python code with tons of higher order functions, recursion, and whatnot.</li>
<li>Annoy your cubicle mates every time they present you with a Python class.  Claim it could be "better" implemented as a dictionary plus some functions.  Embrace functional programming.</li>
<li>Rediscover the <a href="http://en.wikipedia.org/wiki/Strategy_pattern#Python" rel="nofollow">Strategy</a> pattern and then <a href="http://rads.stackoverflow.com/amzn/click/0596007124" rel="nofollow">all those things</a> from imperative code you tried so hard to forget after Haskell.</li>
<li>Find a balance.</li>
</ol>
