C++的学习思路(总结以备忘)

本文在Creative Commons许可证下发布

学习C++:实践者的方法
看到标题就已经知道,如何学习C++这个问题的答案其实已经很明显了。我们所欠缺的是一个书单。

第一本

如果你是一个C++程序员,那么很大的可能性你会需要用到底层知识(硬件平台架构、缓存、指令流水线、硬件优化、内存、整数&浮点数运算等);这是因为两个主要原因:一,了解底层知识有助于写出高效的代码。二,C++这样的接近硬件的语言为了降低语言抽象的效率惩罚,在语言设计上作了很多折衷,比如内建的有限精度整型和浮点型,比如指针。这就意味着,用这类语言编程容易掉进Joel所谓的“抽象漏洞”,需要你在语言提供的抽象层面之下去思考并解决遇到的问题,此时的底层知识便能帮上大忙。因此,一本从程序员(而不是电子工程师)的角度去介绍底层知识的书会非常有帮助——这就是推荐《Computer Systems:A Programmers Perspective》(以下简称CSAPP)(中译本《深入理解计算机系统》)的原因。

第三本(是的,第三本)

另一方面,C++不同于C的一个关键地方就在于,C++在完全保留有C的高效的基础上,增添了抽象机制。而所谓的“现代C++风格”便是倡导正确利用C++的抽象机制和这些机制构建出来的现代C++库(以STL为代表)的,Bjarne也很早就倡导将C++当作一门不同于C的新语言来学习(就拿内存管理来说,使用现代C++的内存管理技术,几乎可以完全避免new和delete),因此,一本从这个思路来介绍C++的入门书籍是非常必要的——这就是推荐《Accelerated C++》的原因(以下简称AC++)。《Accelerated C++》的作者Andrew Koenig是C++标准化过程中的核心人物之一。

第二本

C+

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值