学习C++——实践者的方法(转整)

学习C++:实践者的方法(Beta1) By 刘未鹏(pongba) 
C++的罗浮宫(http://blog.csdn.net/pongba)

你应当如何学习C++ 
大多数原先的反对者能从中找出反对的理由,于是更加反对;大多数原先的赞同者也能从中找到赞同的理由,于是更加赞同;而剩下来的原先没有明确意见的,看双方各有各的道理,可能还是没有头绪。 
啰嗦一大通 
所以,如果你能够理性的思考我们将要讨论的问题,避免自我服务偏见(就当你从来没有花时间在C++上一样)。那么我们便可以开始讨论真正的问题了。几乎每个学习C++的都知道C++的核心问题是其复杂性; 
事实1:C++在工业界仍有稳定的核心市场。 
事实2:C++程序员往往有竞争力的薪酬。最赚钱的软件(如MS Office)是C++写的

怎样正确学习和掌握C++ 
(这跟Peter Norvig说的“十年学习编程”其实不是一回事,人家那是说一般意义上的编程技能,不是叫你当语言律师。) 
建议:有辨别力地阅读(包括那些被广泛称为“经典”的)C++书籍。 
建议:养成随时查阅资料和文档的习惯。 
“查文档”几乎可以说是作为一个程序员最重要的能力(是的,能力)了;它是如此重要,以至于在英文里面有一个专门的缩写——RTFM。“元能力” 
事实:我知道它们很有趣,但实际上它们只是补丁方案。 
C++的复杂性分类,一是分为非本质复杂性和本质复杂性;其中非本质复杂性分为缺陷和陷阱两类。另一种分类办法是按照场景分类:库开发场景下的复杂性和日常编码的复杂性。从从事日常编码的实践者的角度来说,采用后一种分类可以让我们迅速掌握80%场景下的复杂性。 
学习C++:实践者的方法的书单。 
第一本《Computer Systems:A Programmers Perspective》(以下简称CSAPP)(中译本《深入理解计算机系统》)。 
第二本《The C Programming Language》(以下简称TCPL) 
第三本《Accelerated C++》(入门书籍),作者Andrew Koenig是C++标准化过程中的核心人物之一。 
第四本C++之父Bjarne Stroupstrup本贾尼·斯特劳斯特卢普《The C++ Programming Language》(以下简称TC++PL) 
以上4本就可有深厚的基础。 
了解C++中的陷阱,很大一部分来自C,你可以阅读《C缺陷和陷阱》 
实践驱动其实很简单:实践+查文档。(以下四本重要的“文档”) 
第一本《The Pragmatic Programmer》 用本程序员的杰作;虽然不是一本C++的书,但其介绍的实践理念却是所有程序员都需要的。 
第二本《C++ Coding Standard》这是一本浓缩了C++社群多年来宝贵的经验结晶的书,贴近实践,处处以80%场景为主导,不钻语言旮旯,用本为主…总之,非常值得放在手边时时参阅。因为书很薄,所以也不妨先往脑袋里面装一遍。书中的101条建议的介绍都很简略,并且指出了详细介绍的延伸阅读,在延伸阅读的时候还是要注意不要陷入无关的细节和不必要的技巧中,时时抬头看一看你需要解决的问题。 
第三本《Code Complete, 2nd Edition》 这是一本非常卓越的参考资料,涉及开发过程的全景,有大量宝贵的经验。你未必要一口气读完,但你至少应该知道它里面都写了哪些内容,以便可以回头参阅。 
建议:思考、分析问题的能力很重要 
第四本:《你的灯亮着吗?》 这本书只有一百多页,但精彩非常,妙趣横生。 
事实:一旦我们熟悉了一门语言之后,就容易不知不觉地在其框架下思考,受到语言特性的细节的影响,作出second-class的设计。 
建议:脱离语言思考,使用语言实现。 
关于设计的一般理念,Eric Raymond在《The Art of Unix Programming》的第二部分有非常精彩的阐述。 
建议:学习其它语言。 
尾声 
建议(可选):重读本文。 
As Always,欢迎加入我们的讨论组——TopLanguage(http://groups.google.com/group/pongba),自从8月份建立以来,我们已经吸引了三百位同学,二千五百多条讨论,想知道我们讨论些什么,参见TopLanguage讨论精选[一],精选[二],精选[三],加入前请看这里。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值