什么';这是进入高级C++;? P>你有什么建议,去做一个C++程序的下一级,也许是一个中级C++程序员?p> 中级程序员:能很好的理解ISO C++,能用一定的运气阅读和修改他人的代码,很好用数据结构和算法,但不是很好的< /P> 学习C++0x 了解为不同构造类型(可能是x86)生成的汇编代码类型 忘掉语言的细微差别,从西普瑟或帕帕迪米特里欧这样的地方获得基本原理——自动机理论 如果你知道OOP或者至少认为你有,那么考虑如何将函数编程技巧与C++ 结合起来。 在编译器和开放源代码(如LLVM或GNU工具链)的框架内工作 整个想法都失败了——下一个层次意味着更复杂的数据结构。因此,如果你知道AVL,考虑学习左倾红黑树等。

什么';这是进入高级C++;? P>你有什么建议,去做一个C++程序的下一级,也许是一个中级C++程序员?p> 中级程序员:能很好的理解ISO C++,能用一定的运气阅读和修改他人的代码,很好用数据结构和算法,但不是很好的< /P> 学习C++0x 了解为不同构造类型(可能是x86)生成的汇编代码类型 忘掉语言的细微差别,从西普瑟或帕帕迪米特里欧这样的地方获得基本原理——自动机理论 如果你知道OOP或者至少认为你有,那么考虑如何将函数编程技巧与C++ 结合起来。 在编译器和开放源代码(如LLVM或GNU工具链)的框架内工作 整个想法都失败了——下一个层次意味着更复杂的数据结构。因此,如果你知道AVL,考虑学习左倾红黑树等。,c++,programming-languages,C++,Programming Languages,现在很明显,没有人可以不按优先顺序做列表中的每件事,所以我们需要一些关于什么可能是最好的前进方式的建议 注:谢谢大家的回复 学习汇编(例如编写汇编)可能是一个好主意,但我强烈建议您不要关注编译器生成的细节,因为这将随着版本和优化级别的变化而变化。我强烈支持#4。学习函数式编程非常有价值。我在C++中还没有做过很多,所以我不知道它是多么自然,但是我喜欢Ruby和斯卡拉如何进行函数编程。p> 我想说你可以做清单上的每件事,只是不能一次做全部。不过,至少在我看来,你的看法有点倒退。学习C++(或任何其

现在很明显,没有人可以不按优先顺序做列表中的每件事,所以我们需要一些关于什么可能是最好的前进方式的建议


注:谢谢大家的回复

学习汇编(例如编写汇编)可能是一个好主意,但我强烈建议您不要关注编译器生成的细节,因为这将随着版本和优化级别的变化而变化。

我强烈支持#4。学习函数式编程非常有价值。我在C++中还没有做过很多,所以我不知道它是多么自然,但是我喜欢Ruby和斯卡拉如何进行函数编程。p> 我想说你可以做清单上的每件事,只是不能一次做全部。不过,至少在我看来,你的看法有点倒退。学习C++(或任何其他语言)是达到目的的手段,而不是目的本身。

学习更高级的语言技术、更高级的数据结构等,主要应该在需要时完成。你当然需要一个合理的开始“基础”来做很多事情,但是除了一个相当小的基础,最先进的技术、数据结构等等,也是相对专业的


写一些代码,而不是为了自己而学习。当事情看起来笨拙、不必要的困难、僵硬等时,找一个更好的方法来处理它。通过这种方式,您不仅可以学习更先进的技术、数据结构等,还可以很好地了解它真正实现了什么,这样您就可以很好地了解何时、如何以及为什么使用它(同样重要的是,至少可以了解它的局限性,以及它何时可能不适用或不有用).

我建议您进入编程的设计部分。学习如何设计,编写好代码,学习好的编程实践。设计模式、UML、单元测试都属于这里

正如你所说的,我还推荐汇编语言,因为人们几乎总是做同样的事情。学习组装很有趣,它真的能让你更好地理解计算机。没有什么比知道计算机如何在最低水平上工作的感觉更好的了

掌握低级和高级编程的知识胜过一切。

我会学习

您可以从零碎的开始,只需使用它,当您深入到库中时,您会发现自己在思考“它是如何工作的?”

  • 使用它会让你更快乐 生产和更好的C++程序员!<李>
  • 了解它是如何工作的,这将有助于 你是“大师”徽章
  • 有助于并扩展它将 确保不朽
要回答您的具体问题:

学习C++0x

你肯定需要这样做。所以你可能已经有了答案

了解为不同的构造生成何种类型的汇编代码 类型,可能用于x86

我想说的是,学习如何理解编译器生成的汇编语言,如果不详细的话,也要大致了解。然而,您当然不应该试图预测编译器将做什么

忘记语言的细微差别,掌握基本原理——来自 像西普或帕帕迪米特里欧这样的地方

如果它让你兴奋,我想

如果你知道OOP,或者至少认为你在做,考虑如何合并。 C语言的函数式编程技巧++

<>所有C++的范例,函数编程可能是最差的支持——如果你想学习FP,学习Haskell(或者别的什么),而不是C++。 在编译器和开放源码(如LLVM或 GNU工具链

GNU是用C编写的,所以它不太可能提高C++技能——我对LLVM几乎一无所知。 整个想法都失败了——下一个层次意味着更复杂 数据结构。如果你知道AVL, 学习左倾红 黑树等


RB树并不比AVL树复杂多少——这是相同的基本概念。如果您了解数据结构教科书中的基本结构,我认为没有必要进一步深入研究,除非您对该主题特别感兴趣。

现在不要太担心C++0x。。。首先确保你真正理解了基础知识。这意味着确保你理解引用、指针、L值、R值、模板、继承、内存管理等等。我不只是说对这些基本的理解,我是说真的知道C++内存模型和每个表达式的含义。p>
我真的很喜欢4号和6号。关于第6类,尝试编译C++中一些高级的数据结构。没有什么能比尝试解决高级数据结构所带来的一些问题更快地学习语言。

研究其他人如何优雅地解决难题。非常重要:只是练习,不要忘记评估。让你的代码或问题得到解决