1. Discover list comprehensions
    2. Discover generators
    3. Incorporate map, reduce, filter, iter, range, xrange often into your code
    4. Discover Decorators
    5. Write recursive functions, a lot
    6. Discover itertools and functools
    7. Read Real World Haskell (read free online)
    8. Rewrite all your old Python code with tons of higher order functions, recursion, and whatnot.
    9. 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.
    10. Rediscover the Strategy pattern and then all those things from imperative code you tried so hard to forget after Haskell.
    11. Find a balance.

     

    1. 掌握 list comprehensions
    2. 掌握 generators
    3. 代码中经常使用 map, reduce, filter, iter, range, xrange
    4. 掌握 Decorators
    5. 大量使用递归函数
    6. 掌握 itertools 和 functools
    7. 读书 —— Real World Haskell(评论中作者说不一定要局限于这本书,可以阅读任何关于函数式编程的书籍,比如SICP等)
    8. 重写自己的老派Python代码,使用高阶函数,递归等
    9. 当你同事给你看任何用Python做的类实现时,烦死他。告诉他更好的办法时通过dictionary加上函数,拥抱函数编程。
    10. 重新掌握 Strategy 及其他模式
    11. 找到平衡

    http://stackoverflow.com/questions/2573135/python-progression-path-from-apprentice-to-guru