这个题目大的有些离谱,实话说,只是想推荐一下自己觉得很好、值得收藏的一些技术方面的图书。如果不是程序员,或者关心的方向是网页开发、数据库开发,或者只是想了解一下开发流程,这些书不都是适合你,但也很值得收藏了。

这篇文字的针对目标是,微软平台下的c/c++程序员,学过计算机基础学科,有一定的英语阅读能力。建议购买的顺序也是从上至下。

(1)建议大家阅读的第一本书是《编码的奥秘》(英文名《code》)(本书由机械工业出版社华章公司出版),这本书中文版应该已经绝版了,但好像有英文影印版。这本书没有讲该如何编程,如何写一个hello world。它深入浅出的介绍了计算机是如何组成的,比如二进制,比如逻辑门电路的实现,都是很浅显的。看了这本书,会对计算机有个知其所以然的了解,也就是机器如何实现的一加一等于二,如何能执行程序。《编码的奥秘》是计算机专业或者是初中高中对计算机感兴趣学生,应该一上学就读的一本书。

(2)第二本也是建议大家看到了立刻买下来,保证物有所值,就是《程序设计实践》(英文名The Practice of Programming)(本书由机械工业出版社华章公司出版)。有了这本书,基本上《代码大全》、《程序员修炼之道》这几本后面推荐的书可以不买了,因为精华基本上都浓缩到这本书里面,当然,不同的作者写出来的还是不一样,如果有钱,还是都买了最好。《程序设计实践》的两位作者Brian W.Kernigham / Rob Pike,在计算机领域,就是大师级的人物,高山仰止,写出如此通俗易懂的计算机工程实践书,让我还能说什么仰慕的话啊。你不知道他们是谁?去搜wiki 吧。里面每一章节都非常经典,甚至每章后面推荐延伸阅读的书籍,都是经典中的经典。一定要慢慢读反复读,如果这本书看完了以后,基本上就是一个计算机中级编程水平了。

(3)第三本书比较难选择一些,还是推荐这本好了《C程序设计语言,第2版》,也就是传说中的K&R,如果你是一个计算机专业的学生,还没有这本书,那你在学校里学了什么就很值得怀疑。这本书272页,每页都很经典,基本上你碰到的所有c语言问题在这本薄薄的小书里都有涉及,但是限于篇幅,有些会简单带过。里面代码例子不多,但还是包含了一个相当完整的语法分析器程序。不多说了,如果没有这本书,赶快去买吧。

(4)现在大部分企业使用的是c++而不是c(比如google),除非是嵌入式或者操作系统内核级的程序,c++的性能与强大语法基本上可以满足各方面的需求,c++的入门书很多,选择也比较容易,推荐大家买奥莱理O‘Reilly的或者是c和c++经典著作这个系列的。第四本要推荐的不是c++编程方面的,而是一般类似于八卦c++历史的书《c++语言的设计与演化》,豆瓣链接http://www.douban.com/subject /1096216/。编程工作其实就是一个在不同的方案中进行选择权衡的一个过程,是该选择vector还是list,是该使用多线程还是多进程,是该使用xmlrpc还是dcom,是使用数据库还是注册表,有心的人会研究不同选择背后的深层技术问题,有些人基本上就是一套方案打天下。这本书就介绍了c++之父设计c++语言时选择的一些考量,为什么不用GC,为什么没有这个那个特性,为何不内置某某keyword。在我看来,这些考量的过程,对于一个编程人员来说要比如何使用c++更有价值。

(5)我选择了《unix编程艺术》,它击败了《代码大全》《c专家编程》等诸多经典占据了这个位置,主要也是占了unix操作系统的光。豆瓣链接http://www.douban.com/subject/1467587/。之所以选择这本书,是因为对于一个windows平台上的程序员来说,尽量开阔眼界是非常必须的事情。我们经常说混血或者说杂交会让基因更加优秀,编程也是如此,windows平台的程序员,如果只懂mfc,只会注册表保存配置,只知道COM或者DotNet,是一件非常悲哀的事情,用成语来说就是井底之蛙坐井观天,只认为天就是这么大一片,编程就应该用这些东西。

unix操作系统虽然不像windows占据了桌面平台,但是在其他方面,使用非常广泛,比如苹果的mac osx系统,比如sun的solaris,比如继承了unix精神的linux。尤其在当今桌面系统网络化的潮流下,unix系统天生的网络特性、多用户管理特性、安全特性,更是体现了超越时代的杰出思想。读一读这本书,体验一下不同的设计理念和不同的操作系统哲学,对于日常的编程工作都有非常大的帮助。 Windows程序员尤其要学习的是:unix系统上script的使用,使用纯文本作为数据格式,使用管道,最最重要的一点就是,Keep it simple and stupid,一个程序只做一件事,只需要把这件事做到完美。这与windows的大而全思想有着本质上的不同。

第六本,C专家编程(C和C++实务精选),douban链接http://www.douban.com/subject/1232029/

第七本,C陷阱与缺陷,douban链接http://www.douban.com/subject/2778632/

这两本书都是将近20年前出版的超级经典好书,个人认为,只要c语言还被使用,这两本书就不会过时。这两本书也都是C和C++实务精选这系列丛书中出类拔萃的两本,字字珠玑。另外推荐大家如果有闲钱,可以另外买下面这两本:《C++代码设计与重用》,《C和指针》。

《C专家编程》这本书很有意思,里面不少内容被不少企业作为面试内容出现,比如我常看到的这个“如何不使用临时变量确定链表中存在重复”,还有“数组和指针有什么区别,什么时候相同”等等,不过最后一章关于c++的论述因为时代关系,可以跳过不看。

第八本,《C++标准程序库自修教程与参考手册》,douban链接http://www.douban.com/subject/1110941/。这本书可以作为案头书使用,对于c++中的template,介绍的那是恰到好处,没有任何炫技之处,整体风格就是德国人典型的认真、朴实、实用,如果想在项目中使用模板技术,这本书一定要放在手边。

最后两本很难选择,感觉剩下的基本上可以战成平手,故此更细化一些,大家可以根据个人喜好来选择。

如果专业是windows桌面编程,建议如下两本。

第九本,《Visual C++技术内幕》,译者潘爱民,链接http://www.douban.com/subject/1027574/,第十本,《Win32多线程程序设计》,译者侯捷,http://www.douban.com/subject/1231702/。

这两本算是我入门时候看到的好书,尤其是第九本,非常之经典(新版本好像评价不高)。如果使用MFC及COM开发,这本书可以让你一步一步照着做,免得没有头绪。而且还有个优点就是介绍的比较全面,windows桌面开发可能用到的技术基本上都有涉及。这本书也是推荐我最喜欢推荐给公司新入职同事的,非常有帮助。第十本关于多线程,个人觉得一个Windows程序员如果不了解多线程,那就不能算是一个完整的程序员(笑),如何进行线程同步,如何使用锁、事件、句柄这些东西,这本书介绍的非常仔细。

而且这两部书的译者都非常不错,翻译的口碑相当不错。另外插一句,孟岩、刘未鹏也是国内译者中我很喜欢的,他们翻译的书都有质量保证。

如果关注的不是windows桌面开发或者MFC开发,可以选择这两本书。

第九本,《代码大全》,http://www.douban.com/subject/1477390/,作为一个程序员,应该反复读读这本书,里面的内容很浅显,道理很实用。没错,我很喜欢强调使用,这么厚的一本书,不需要一口气读完,可以有针对性的读读里面某些章节,比如7、8、9章关于程序的,18章关于表驱动方法的,22章开发者如何测试的,都是看了就能用的内容。

第十本,Effective C++,http://www.douban.com/subject/1842426/,这本书介绍了55个非常实用的,没错就是非常实用的C++编程条款,相比herb sutter的书,这些条款可以算的上脚踏实地,比如什么情况下应该写拷贝构造以及赋值函数,虽然有些章节略微难一些,但是实用性还是比较高的。

有的朋友推荐《深入理解计算机系统》这本书作为入门,我回家又翻看了一遍,感觉不选是对的,《深入》作为教材系统学习是很有用的,也建议大家有空读读,但是实用性相比来说差了不少,可以让大家深入理解,但是无法写出好的代码。个人浅见,写代码之所以成为一个手艺,是因为它可以在模仿前人的基础上达到一个比较不错的水平,而《深入》这本书可以让工匠往大师的方向发展,对于初学者来说,不是必要的。

另外,一个程序员应该多少了解一些软件工程思想以及涉猎一些代码开发边缘的书籍,《快速软件开发》《微软研发制胜策略》《writing solid code》(最近有引进影印,网上有不错的翻译)《代码阅读方法与实践》,另外C++ FAQ和C FAQ都可以在网上找到,这都是非常值得读读的。作为一个C、C++程序员,最好再涉猎一门脚本编程语言,如果对web开发感兴趣,可以学学php,入门极为容易,有c基础就行。或者看看python,是google主推的编程语言之一,桌面网络开发都可用。

终于写完这十本书,感觉前面五本相比后面来说容易写的多,也许是自己读的少(推荐的我都读过,而且感觉不错),也许是经典也就这些的缘故吧。

C/C++程序员必读的十本书相关推荐

  1. C/C++程序员必读的十本书(上)

    在Gmail TopLanguage  Group 中看到一篇文章"C/C++程序员必读的十本书(上)",大家的讨论都很激励,大家都觉得这篇文章写得很棒,我想在Group里的朋友都 ...

  2. 程序员必读的十本书籍推荐

    程序员必读的十本书籍推荐 书籍是知识和智慧的重要来源,如果你是一个程序员,除了编码之外,你休闲之余或许还需要大量的阅读来充实自己.下面是由学习啦小编给大家带来关于程序员必读的十本书籍推荐,希望对大家有 ...

  3. C语言程序员必读的5本书

    C语言程序员必读的5本书 你正计划着通过看书来学习C语言吗?"书籍是人类最忠诚的朋友".海明威一定知道书籍对一个人一生的重要性.书籍是知识的丰富来源.你可以从书中学到各种知识.书籍 ...

  4. C程序员必读的 3 本书

    C程序员必读的 3 本书 原创: Martin 老师  公众号:零基础零障碍学习C语言 勿用质疑,今天来看这篇文章的朋友都是准备学好C语言的朋友,大家想学好C语言的迫切性,就好比Martin老师等着元 ...

  5. 程序员必读的30本书-转

    这是国外程序员评出的30本经典程序员必读书籍! 1. <代码大全> 史蒂夫·迈克康奈尔 推荐数:1684 "优秀的编程实践的百科全书,<代码大全>注重个人技术,其中所 ...

  6. 程序员必读的30本书单--超级推荐

    这是国外程序员评出的30本经典程序员必读书籍! 1. <代码大全> 史蒂夫·迈克康奈尔 2. <程序员修炼之道> 3. <计算机程序的构造和解释> 4. <C ...

  7. c语言c99标准_从年薪10万到年薪30万,C语言程序员必读的5本书

    C语言是由 Dennis Ritchie在1969年到1973年在贝尔实验室研发的.C语言可以把程序简单地编译为机器指令,使得它成为了最高效的语言. 为什么在程序员中,C语言如此流行呢?这背后有很多原 ...

  8. 程序员必读的十本图书书单

    1.黑客与画家 它的作者是美国互联网界举足轻重.有"创业教父"之称的哈佛大学 计算机博士保罗·格雷厄姆(Paul Graham) 为了帮助读者理解黑客,全书15章可以大致分成三个部 ...

  9. 多读书,不如读好书:程序员必读的30本书

    优秀的程序员需要有大量的知识技能储备,读书是获取知识的一个非常重要的途径. 每每读到好书,会让人茅塞顿开.醍醐灌顶. 以下图书,都可以称得上好书.你会推荐哪些给更广大的程序员呢? 国外图书 <C ...

最新文章

  1. 以太坊智能合约开发第七篇:智能合约与网页交互
  2. 十九、I2C驱动及应用
  3. PHP.ini 中的错误提示
  4. 六月计划#2B(6.10-6.16)
  5. ASP.NET Core on K8S深入学习(7)Dashboard知多少
  6. Javascript中document.execCommand()的用法
  7. dubbo源码-服务发现
  8. 神级程序员8000行css代码画出一个蒙娜丽莎,堪比达芬奇!
  9. typescript之hasOwnProperty
  10. Effective C++ -----条款05:了解C++默默编写并调用哪些函数
  11. 翻译: swift5 iOS中的自动布局教程:Auto Layout入门
  12. 凤凰系统中禁用触摸屏
  13. MATLAB元胞自动机
  14. c语言选择结构程序设计实验总结,C语言程序设计,选择结构程序设计实验
  15. 课程设计感想(大二)
  16. IPA转APP的方法和APP转IPA的方法
  17. 使用完整拼音查找汉字(完整拼音,不是网上散布的首字符拼音那种方法)
  18. TIA博途SCL编程学习16_歌德巴赫猜想验证
  19. C语言-printf打印的用法
  20. Vue 无法展示网络图片处理方案

热门文章

  1. 计算机网络——数据链路层PPP、CSMA/CD协议
  2. GNU Screen Usage
  3. 图像、视觉处理的相关代码
  4. centos离线、在线安装
  5. HP ProLiant 服务器进入BIOS 按键总结
  6. YLMF正版转型猜想
  7. 【Neo4j实战】红楼梦知识图谱
  8. 使用html+css+js实现一个静态页面(含源码)
  9. 美军派网络部队前往韩国 防“萨德”泄密
  10. ANSYS多相流的单向流固耦合(2022R1版)