我将C ++作为一门大学课程学习。我在过去的三年里一直在努力。所以我有一个相当好的想法是什么。但我相信知道一种语言与使用它完全不同的语言是完全不同的。我目前的工作不允许我探索太多。
我看到你们建议你们研究一个开源项目,也许也会为这个项目做出贡献。所以我的问题是,你能否建议一个(两者兼而有之)开始时这很简单并且不会压倒一个首发。
答案 0 :(得分:3)
特别是,斯科特迈耶斯有一个很棒的系列作品,我觉得在帮助我从新手到专业的过程中帮助最大:
Effective C++: 55 Specific Ways to Improve Your Programs and Designs
More Effective C++: 35 New Ways to Improve Your Programs and Designs
Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library
这些书中的主题从初学者到高级。我花了大约2年的时间用C ++来理解这些书中的每一章,所以如果它在某些时候超过你的头脑,请不要沮丧......只是稍后再尝试阅读它:)
答案 1 :(得分:1)
如果您愿意攀登非常陡峭的学习曲线,我认为您可能会比研究部分升级库更糟糕。我认为没有其他类似的C ++代码可以推动C ++中可以实现的界限。
答案 2 :(得分:0)
我的主要建议是你不需要坚持使用C ++来学习技术。。研究Erlang,Lua和Haskell(很多其他人)。您将从这些语言中学到很多可以在C ++中应用的内容。
Google协议缓冲区是一个编写得很好的C ++应用程序,它坚持行业中经过验证的C ++功能 - 也就是说,它们不会超过使用导致代码使用困难的功能。
在学习充分利用C ++方面,充分发挥潜力通常是隐藏的。即使在开源社区中,也很少有出色的C ++程序员。所以我建议你读一些书。就像来自Scot Myers和Herb Sutter(所有6个人)的书一样。
Boost是一个了不起的库,拥有许多优秀的代码,从简单的技术到非常先进的技术。它肯定触及了C ++习语的所有前沿。 boost的问题是,它不适用于现代IDE功能(代码完成是主要问题),它有很多符号:D。它是学习泛型编程和模板元编程的地方,前者代表最先进且可立即使用的习语,后者可以在不久的将来跳过。
答案 3 :(得分:0)
答案 4 :(得分:0)
显然,学习这样的事情不会在一夜之间发生;您可以像其他建议的海报一样研究现有的开源项目。但是,我还有一个建议:我建议加入一个大的IRC c ++频道(例如efnet或freenode上的#c ++)。当然,大多数问题/讨论是基本的;然而,经常会出现有趣的讨论和问题。几年来,我通过参与渠道讨论得到了相当多的了解。
答案 5 :(得分:0)
除了Scott Meyers的书籍,DSO已经建议:参与SO并尝试回答其他人的C ++问题。如果您不知道答案,请稍等一下,直到发布一些好的答案。你可能会知道你的知识差距在哪里,你可以做更多的阅读,以填补后来的。