最常被程序员们谎称读过的计算机书籍 (zz)-程序员宅基地

技术标签: java  设计模式  c/c++  

最常被程序员们谎称读过的计算机书籍

//z 2012-4-11 7:35:55 IS2120@CSDN
马克·吐温曾经说过,所谓经典小说,就是指很多人希望读过,但很少人真正花时间去读的小说。这种说法同样适用于“经典”的计算机书籍。

在Stack Overflow(以及其它很多软件论坛)上,诸如”程序员最应该读的计算机书籍有哪些?“这样的问题会周期性的出现。这样的问题不断的被提出、被回答,只是形式不同罢了。相同的几本书总是会出现在清单的前几名内,所以,如果想知道人们谈论的都是些什么,你有必要去读一读这些书的。
大多数程序员真正读过的计算机书籍

    代码大全(Code Complete)——两届Software Jolt Award震撼大奖得主!
    程序员修炼之道(The Pragmatic Programmer)
    C程序设计语言( C Programming Language)(第2版)
    重构:改善既有代码的设计(Refactoring: Improving the Design of Existing Code)
    人月神话(The Mythical Man-Month)
    编码——隐匿在计算机软硬件背后的语言(Code: The Hidden Language of Computer Hardware and Software)
    Head First 设计模式(Head First Design Patterns)
    编程珠玑(Programming Pearls)
    Effective Java中文版(Effective Java (2nd Edition))or Effective C++(第三版)中文版
    Test Driven Development: By Example

上面的这些书我自己都读过,所以我不难相信很多不是很优秀的程序员也都读过它们。如果你对编程有足够的兴趣,能够来到这里读这篇博客,你很可能读过其中的大部分,甚至还有很多不在这个清单中的,所以我就不浪费时间每本书都评论一番了。我想说的是,这个清单上的每本书都是它各自领域里的奇书。所以,很多有愿望不断提高自己的编程技术的程序员都读过这些书,这就不足为怪了。
//z 2012-4-11 7:35:55 IS2120@CSDN
在人们备受推崇的计算机书籍中,还有一类书受到了独特的待遇。我称下面这个清单为“最常被程序员们谎称读过的计算机书籍”。这并不是说推荐这些书的人都没有真正读过它们。我只是有相当的信心怀疑更多的人只是在口头上宣称读过下列书籍,而实际上很少人真正读过它们。下面就是这个清单。
最常被程序员们谎称读过的计算机书籍

    算法导论(Introduction to Algorithms)(CLRS)这本书的名称是所有出版过的计算机书籍中最让人误解一个。它被广泛的使用在很多大学里,通常被当作毕业生必需的算法课程。于是,只要在大学里上过计算机课程的学生几乎都有一本这样的书。然而,除非你拥有计算机硕士学位(而且是算法研究领域的),我怀疑你顶多只读过算法导论(Introduction to Algorithms)里节选的几章内容。这个书名让人误解,是因为”Introduction”这个词让人以为它很适合初级程序员。实际上不是。这本书对算法做尽可能详尽综合的介绍,就像其它一些随处可见的类似的书一样。请不要再把这本书推荐给初学者。
http://blog.csdn.net/is2120/article/details/7447925
    编译原理(Compilers: Principles, Techniques, and Tools)(the Dragon Book).这本恐龙封面的书涵盖了开发一个编译器你所需要的全部的知识。它的内容包括词汇分析,语法分析,类型检查,代码优化,以及其它很多高深的题目。请不要把这本书推荐给初级程序员,他们需要的只是分析简单的包含数学公式或HTML的字符串。除非你真的需要实现一个能够实用的编译器(或解释器),你根本不需要掌握这本“恐龙”书的全部强大威力。把它推荐给一个遇到简单文本分析问题的人,这证明你根本没有读过它。
    计算机程序设计艺术(The Art of Computer Programming)(TAOCP)我经常听到人们把这本书描述为“每个程序员必读”的系列计算机书籍。我认为这明显不是实情。在我说出这样大不敬的话、被你们用板砖拍死之前,请让我做解释一下。这不是一本让你一页一页翻着读的书。这是一本参考大全书。把它放在你的书架上看起来会很不错(实际上也它确实很好),但如果想把它通读一遍,你需要几年时间,而且最后什么都没记住。这并不是说手边放这样一本书没有什么价值。它是一本参考书,当我遇到难题,走投无路时,很多次我都在这本书里找到办法。但这本书终究是被我当作参考书。它复杂难懂,很理论,里面的例子都是汇编语言的。好的一面是,如果你想在这本书里寻找针对某一问题的解决方案,如果你找不到,那就说明这个问题无解。它是一本对它所涉及到的领域做了最最详尽介绍的一本书。
    Design Patterns: Elements of Reusable Object-Oriented Software(Gang of Four)这本书是唯一一本在这个清单里我从头到尾读过的书,读的结果是,我不知道该把这本书归到哪个类别。它出现在这个清单里,并不是因为我认为只有很少人真正读过它。很多人都读过。只是因为有更多推荐过这本书的人自己却没有读过。Design Patterns这边书的问题在于,很多书里给出的信息,你在其它很多地方都能看到。这样就使得一个初学者在维基百科上读了几篇关于设计模式的内容后,就敢在面试中宣称自己看过这本书。这就是为什么Singleton成了一种新的全局变量的原因。如果有更多的人花时间读过这本也叫做Gang of Four的书的原著,那世界上就不会有这么多人会把17种设计模式硬塞到一个日志(logging)框架里了。这本书最精彩的部分是每章里描述如何正确的使用一种模式的段落。遗憾的是,这些精华却在很多其它设计模式资料里被漏掉了。
    C++程序设计语言(The C++ Programming Language)这本书不像一本编程教材,更像一本编程语言参考。有很多的迹象表明有人确实读过这本书,否则我们不可能有这么多的C++ 编译器可选择。编程初学者(或者甚至其它语言的专家),如果想学C++,不应该直接去啃C++程序设计语言(The C++ Programming Language)这本书。告诉他们去读《C++ Primer中文版》。

正如我之前说的,我知道你们当中会有一些人真正的读过这些书。那这篇文章不是针对你的,针对的是那些企图通过假装读过这些书来表现自己的民众。 如果你自己没有读过这些计算机书籍,请不要推荐给别人。这样做会耽误别人的时间,误人子弟,因为一些阅历更丰富的人可能会有更好的书(更针对某一领域,更容易理解,跟某种编程语言或某种编程水平更契合的书)来推荐。除此之外,你也能避免被那些真正读过计算机程序设计艺术(The Art of Computer Programming)的人用MMIX知识给拷问住造成的尴尬(如果你不知道我在说什么,那我指的就是你)。

[本文英文原文链接:Books Programmers Claim to Have Read ]
//z 2012-4-11 7:35:55 IS2120@CSDN
http://blog.csdn.net/is2120/article/details/7447925

转载于:https://www.cnblogs.com/IS2120/archive/2012/04/11/6745916.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/bamao5628/article/details/101670433

智能推荐

13. HTTP1.0 HTTP 1.1 HTTP 2.0主要区别_http 0.13.1-程序员宅基地

文章浏览阅读175次。HTTP1.0 HTTP 1.1 HTTP 2.0主要区别HTTP1.0 HTTP 1.1主要区别长连接节约带宽HOST域HTTP1.1 HTTP 2.0主要区别多路复用数据压缩服务器推送HTTP1.0 HTTP 1.1主要区别长连接HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP1.1默认支..._http 0.13.1

Webdynpro ABAP 简单剖析_abap webdynpro-程序员宅基地

文章浏览阅读1.7k次。众所周知,WEBDYNPRO是今天来SAP主推的一个面向WEB的MVC编程框架,接触过J2EE的朋友都不会对MVC这种设计模式陌生,WEBDYNPRO ABAP的基本设计思路和很多著名的面向互联网的MVC框架很相似(比如STRUCTS)SAPNETWEAVER 平台上也有WEBDYNPRO的一些标准应用,譬如PI RWB上面的ALERT CONFIGRATION功能,理解WEBDYNPRO的工作..._abap webdynpro

【spring cloud】spring cloud2.X spring boot2.0.4调用feign配置Hystrix Dashboard 和 集成Turbine 【解决:Hystrix仪表盘...-程序员宅基地

文章浏览阅读311次。环境:<java.version>1.8</java.version><spring-boot.version>2.0.4.RELEASE</spring-boot.version><spring-cloud.version>Finchley.SR1</spring-cloud.version><lcn.last.v..._springboot 2.4 可以使用feign调用吗

Win7/Win10移动用户文件夹(C:\Users)移到非系统盘(如D:)_该应用程序位于未经授权的位置 请移至非系统文件夹-程序员宅基地

文章浏览阅读8.8w次,点赞48次,收藏252次。Windows的用户文件夹默认所在位置是系统盘(通常是C盘)下的“\Users”目录之内。该文件夹中保存着所有的用户个人数据,比如你保存在“桌面”上的文件(实际上是保存在C:\Users\你的用户名\Desktop\目录之中),再比如你保存在“我的文档”里的文件(实际上是保存在C:\Users\用户名\Documents目录之中)。用户文件夹处于系统盘的坏处在于,如若系统盘一旦坏掉,就可能连带用..._该应用程序位于未经授权的位置 请移至非系统文件夹

约瑟夫环的数学公式推导_约瑟夫出圈问题公式-程序员宅基地

文章浏览阅读6.7k次,点赞7次,收藏35次。约瑟夫环的数学方法解决 编写约瑟夫环程序时会发现,当我们把整个报数过程的人数N变的很大,例如到几百万,虽然在最后还是只剩下两个人报数,但也要循环几百万次才能确定最后留下来的那个人。这样程序执行的效率不高,会占用大量时间去执行循环的过程。有时会发生输出一直等待很长时间才能出来结果。经过查询资料,找到了约瑟夫环的数学解决方法,以及它的算法具体执行的过程来做分享。我们假设..._约瑟夫出圈问题公式

软件测试|Pytest必会使用autouse实现自动传参-程序员宅基地

文章浏览阅读120次。1.薪资丰厚: 基本薪资+绩效+项目奖金+年终奖2.福利: 和正式员工福利基本看齐,共享工位,免费夜宵,班车,一流办公环境,月末周六双倍工资3.技术栈:C/C+当用例很多的时候,每次。不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦。不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦虑不焦。

随便推点

Linux命令_禅道的运行日志放在哪-程序员宅基地

文章浏览阅读309次。笔记_禅道的运行日志放在哪

Web实训项目--网页设计(附源码)_web前端网页设计代码-程序员宅基地

文章浏览阅读4.3w次,点赞79次,收藏882次。我们要使用这些知识实现一个简单的网页设计,利用HTML的a标签做文本内容跳转以及超链接的应用,CSS设计内容样式和图片、动画、视频的大小位置格式,JavaScript实现轮播图效果等。学习如何设计网页中的轮播图和动画效果,并掌握a标签文本内容跳转、超链接的应用、播放音乐与视频等操作。通过对Web知识内容的了解,我们掌握了HTML、CSS和JavaScript的基本知识以及利用它们实现一些简单的应用。1、使用Web知识实现一个简单的网页设计,利用HTML的a标签做文本内容跳转以及超链接的应用。_web前端网页设计代码

Matlab:非负 ODE 解_matlab銝要onnegative-程序员宅基地

Matlab中讲解了如何约束ODE解为非负解的示例,并以绝对值函数和膝盖问题为例进行了说明。文章指出在某些情况下,由于方程的物理解释或解性质的原因,施加非负约束是必要的。

关于g2o_viewer data/result_after.g2o使用过程中coredump、与lsd_slam依赖包libg2o冲突问题_libg2o_-程序员宅基地

文章浏览阅读1.1k次。电脑上装的东西多了就很容引起版本或者依赖问题。。。这不,按照高博教程做octomap实验时候运行g2o_viewer data/result_after.g2o时候就直接coredump。。。。回想起来自己ROS系统中装了libg2o,于是卸载之:sudo apt-get remove ros-indigo-libg2o然后重新执行g2o_viewer data/result_after.g2o注..._libg2o_

学习通选修刷课使用过程(懂得都懂)_学习通脚本-程序员宅基地

文章浏览阅读2w次,点赞58次,收藏268次。学习通不想好好上课系列_学习通脚本

将Total Commander设置为“默认”文件管理器?_total commander默认文件管理器-程序员宅基地

文章浏览阅读1.6k次。将Total Commander设置为“默认”文件管理器?法一:开始,运行,输入regedit ,回车: 定位到HKEY_LOCAL_MACHINE_total commander默认文件管理器

推荐文章

热门文章

相关标签