C++ | 进步路径

Vai*_*pai 6 c++

我知道basic OOP-related topics,RTTI, Templates.从还原回来Java' Collection Framework,我试图找到在这些收藏品C++和发现STL,并想使用它在我的项目(虽然我不知道他们进出).我搜索并找到了类似书籍的推荐Accelerated C++, Effective and More Effective C++.

但我不确定我的进步路径应该是什么.我正在寻找这样的东西 - Python-Progression Path:

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?
Run Code Online (Sandbox Code Playgroud)
  1. 发现列表理解
  2. 发现发电机
  3. 包括地图,减少,过滤器,ITER,范围,x范围经常到你的代码
  4. 发现装饰者
  5. 编写递归函数,很多
  6. 发现itertoolsfunctools
  7. 阅读真实世界Haskell
  8. 用大量的高阶函数,递归和诸如此类的东西重写所有旧的Python代码.
  9. 每次为他们提供Python课程时,都要惹恼你的小隔间.声称它可以"更好"地实现为字典和一些功能.拥抱函数式编程.
  10. 重新发现策略模式,然后从Haskell之后你努力忘记的命令性代码重新发现所有这些事情.
  11. 找到一个平衡点.

Mat*_* M. 4

这是一个很难回答的问题,因为你真正需要的是擅长你所做的事情,因此不存在权威的列表。

话虽如此...

  • 阅读Effective C++迈耶斯和C++ Coding Standards萨特的著作,如果您是初学者,您不太可能理解所有内容,因此请不时地重新阅读它们(这也是一种很好的疫苗)
  • 是时候介绍STL了(它是一颗令人惊叹的小珍珠),学习使用它的算法而不是手工制作一切,如果可能的话直接跳到C++0x版本
  • 将 Boost 融入其中,一开始要轻柔地:,,,boost::optional让你的代码更安全、更惯用。还可以戳一下 Boost String Algorithms 库。boost::variantboost::lexical_castboost::numeric_cast
  • 接下来是模板元编程和 Boost.MPL:Abrahams Gurtovoy 的 C++ 模板元编程将对此有所帮助。您可能必须利用 Boost.Preprocessor 来处理某些模板内容。
  • 了解更多 Boost Libraries,这是一个巨大的存储库,其中的所有库都令人惊叹。

我自己仍然处于最后一部分,所以无法评论进一步的内容:)

在每一步中,您都应该编写大量代码,阅读是不够的,您需要进行实验。编程不仅仅是技术,程序的架构部分在该领域也极其重要。

哦,尝试加入(如果只是为了阅读)一个开源项目,没有什么比编写代码更好的了,而且当其他人审查它时会更好:)