C/C++

虽然大家都说学好 C++学啥都轻松,但其实没有太大的必要去学 C++,除非你需要经常处理高性能任务。C++毕竟历史包袱太重了,写个代码要分出一半的精力关注语言本身的特性,这会导致实现思路变得比较复杂。不过如果你只是打算学个 C with class 的话,当我没说。

我不建议在现在这个时间节点深入学习 C++,因为当前 C++的岗位已经不多了。虽然大公司的核心部门还在用,但想必也不需要几个人去写 engine;虽然音视频开发和一部分工业领域也在用,但一来是岗位少,二来是都做程序员了还跑去和工业领域这些硬件的东西纠缠不清,拿着更低的工资干更累的活,不是很聪明。(是的,我是说学校目前打算主攻工业智能领域的想法非常不明智,希望大家不要被忽悠。)如果你真不知道学啥,学 Java 或 JavaScript 准没错,反正你毕业后这两门语言极大概率还是非常火。

C/C++的东西不容易过时,通常只要基于 C++ 11 的书就不算旧,甚至算得上"Modern",毕竟现在仍有大量的项目还没用上 C++ 11。

个人建议先学习 C 再学习 C++,不建议直接学习 C++。

  • C Primer Plus 中文版(第 6 版):中文版正文 541 页,英文原版出版于 2014 年,黑白印刷。是 C 语言的经典入门书籍,涵盖全面。需要注意的是本书纸张较大,并且字体较小,因此内容量实际上会比按页数直接估算的多上一些。翻译不错。

  • C++ Primer 中文版(第 5 版):中文版正文 762 页,英文原版出版于 2012 年,黑白印刷。C++入门最推荐的书,虽然比较长但其实不难理解,不过也至少需要读者对变量、循环、判断这些概念有一些基本的了解才能阅读。使用 C++ 11 标准。翻译一般。

  • C++ Primer Plus 中文版(第六版):中文版正文 678 页,英文原版出版于 2011 年,黑白印刷。需要注意的是本书和上面那本《C++ Primer》无关,甚至作者也不同。本书的作者同时也是《C Primer Plus》的作者史蒂芬·普拉达。本书也是入门书,可作为《C++ Primer》的替代品,相较于《C++ Primer》本书更加注重细节,文风比较亲切。一般来说,由于本书的理解难度较上一本更大,因此更推荐上面的《C++ Primer》作为入门书。不过阅读难度毕竟因人而异,很难说哪本更好,看个人口味。使用 C++ 11 标准。翻译一般。

  • STL 源码剖析:正文 460 页,出版于 2002 年,黑白印刷。作者侯捷是知名 C++领域布道者。本书作为 C++ STL 标准库的源码导读,是很适合作为 C++进阶的。有一定阅读门槛。缺点是真的比较老了,只能看个思路,很多地方和现在的 STL 标准库实现完全是对不上的。我估摸着这本书没出第 2 版就是因为 STL 现在已经更新得越来越不像人类能看懂的东西了。

  • Effective C++/More Effective C++/Effective Modern C++:三本书放在一起讲了。这三本书都是深入掌握 C++所应当阅读的,如果你日常编写的 C++代码基本处于 C++ 11 之前,那么阅读前两本足矣,如果涉及 C++ 11 及之后版本,那么应当阅读 Effective Modern C++(然而即使不写 C++ 11 我也强烈推荐阅读第三本)。这三本书介绍了写出高质量可维护 C++代码应当遵守的原则,如果你经常编写 C++代码,那么应当通读好几遍,并且时不时就拿起来翻一下。当然,要是你日常就拿 C++写点小玩具或是只用来打竞赛,那当我没说,这些书你看都不用看一眼。

最后更新于