如何进阶学习C++?最佳方法是什么?

12

对于一个被称为中级 C++ 程序员的人,你有什么建议可以帮助他进入下一阶段的 C++ 编程?

中级程序员:相当熟悉 ISO C++,能够通过一些运气读取和修改别人的代码,熟练掌握数据结构和算法,但并不出色。

  1. 学习 C++0x
  2. 了解不同构造类型生成的汇编代码种类,可能为 x86
  3. 忘记语言细节,掌握基础——从类似 Sipser 或 Papadimitriou 的地方学习自动机理论
  4. 如果您知道 OOP 或至少认为自己知道,考虑如何将函数式编程技能与 C++ 结合起来
  5. 开发类似于 LLVM 或 GNU Toolchain 的编译器和开源软件
  6. 整个想法都是错误的——下一阶段意味着更复杂的数据结构。因此,如果您熟悉 AVL,请考虑学习左倾红黑树等其他数据结构

显然,没有人能在这个列表中做到所有的事情,因此我们需要一些关于最佳前进方式的建议。

注意:感谢大家提供的非常有用的回复。


5
我真的不知道你所说的“下一级”是什么意思 - 除非你描述一下你现在处于什么“级别”,否则你的问题是毫无意义的。 - anon
@Neil 我已经提供了我对中级程序员的定义,但这是相当主观的,我理解这一点。非常感谢您的反馈。 - Fanatic23
3
附加问题:当您达到“C++”掌握的“终极最后一级别”时,您拥有什么特殊能力? - ereOn
11
没有人知道。一旦你达到了 C++ 最高水平的掌握,你将蜕变成为一个由原始能量组成的升华存在,与宇宙融为一体。 - John Feminella
4
当你达到了C++掌握的终极境界后,你会转向Haskell。 - Philipp
如果你认为你理解了C++,那么你并没有真正理解C++(这只是一个引语的改编,请不要太认真:P) - Cogwheel
12个回答

0

另一个观点是:7. 学习其他编程语言,尽可能与C++不同。一定要学习函数式编程,不必担心它如何适用于C++。可以考虑一些语言:Scheme、Common Lisp、Haskell、Prolog、Forth、Smalltalk。你不必精通它们,但应该尝试理解它们的工作原理和良好代码的特点。

如果你只知道一种语言,你的思维将受限于该语言的自然方式。如果你知道多种语言,你将能够以更多不同的方式思考。你在解决问题时会更加灵活。


0

你提到的任何事情都会让你成为更好的C++程序员。你需要根据自己的职业规划做出选择。例如,如果你想用C++开发硬件驱动程序,你应该学习生成汇编代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接