推荐开发人员看的较有影响力的书籍

转载:http://blog.csdn.net/crzy_sparrow/article/details/7422962

对于一个程序员而言,在学校里学不到多少工作中真正需要的知识,只有在工作中实践积累并且看一些优秀的书籍,把实践和理论结合起来才能够更好的工作。尤其是在技术日益发展和变化的今天,每个开发者更应该主动的看书去学习编程技巧并且改变编程方法,才能应付工作中各种复杂的项目。同时也可以在程序设计中更高效、弹性和准确的解决问题。下面列出了 11 本对开发人员很有益的书籍,大家可以从中选取感兴趣的进行阅读。

  1. 《代码大全》(Code Complete)

  第二版的代码大全增加了很多与时俱进的内容,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、以及简单明了的通用概念,当然也含有丰富而典型的程序示例。

  评语:引用一位网友的评论:恰恰是这种艺术与科学相互融合的产物带给程序员无比的满足感。老少皆宜的读物,这本书不论对技术大牛、亦或是自学刚入门的程序员都是大有益处的,感兴趣的可以去看看。

  2. 《程序员修炼之道》(Pragmatic Programmer)

  中文名翻译的很形象,这是一本介绍软件开发中日益增长的规范和技术技巧的书籍,即根据需求,创建用户乐于接受的、可工作和易维护的代码,保持代码灵活和易于改编重用的架构技术。另外也有防止软件变质、提高编写灵活、避免相同设计、以及对代码防护等内容。

  评语:一本可以提高程序员实效性的书籍,这本书对有一定代码量和项目经验的人能引起共鸣,你看完后会反思:程序为什么要这么设计?怎么才能写出更好的程序?如何才能在编程中少走不必要的弯路?推荐一些技术大牛阅读。

  3. 《计算机程序设计与解释》(Structure and Interpretation of Computer Programs)

  该书被世界各地 100 多所院校用作教材,其中包括美国斯坦福大学、英国牛津大学、日本东京大学等。在修订版中,作者根据十余年的教学实践,对大部分重要设计系统都重新修改并做过测试,包括各种解释器和编译器。涵盖面很广,从数据抽象、过程抽象、迭代、高阶函数等编程到数据结构和算法。

  评语:每一位技术大牛都应该阅读这本书。因为本书清晰、简洁和富于才智,适合那些深刻理解计算机科学的人们。

  4. 《C程序设计语言》(C Programming Language 2nd Edition)

  值得一提的是本书是由C语言之父 Dennis Ritchie 和 Brian W. Kernighan 共同编写,是一部介绍C语言及程序设计方法的权威性经典著作。本书全面讲述了C语言的各个特性及程序设计方法,配合典型例证,使得本书通俗易懂,实用性强。

  评语:该书是学习C语言必读书籍,堪称经典,有C语言的“圣经”美称,其实用性,会让读者爱不释手。

  5. 《算法导论》(Introduction to Algorithms)

  本书全面介绍了计算机算法,涵盖的内容有:算法在计算中的作用,概率分析和随机算法的介绍,另外也介绍了随机化和线性规划技术的近似算法等。全书还提供了 900 多个练习题和思考题以及详细的实例研究。

  评语:《算法导论》是一本将严谨性和全面性融为一体的算法类书籍,可以与高德纳的《计算机程序设计艺术》相媲美,该著作有点深奥,一朝一夕读不透,建议读者多阅读几遍。

  6. 《重构:改善既有代码的设计》(Refactoring: Improving the Design of Existing Code)

  本书揭示了重构的过程,揭示了重构的原理和最佳实践方式,能够帮助你一次一小步的修改你的代码,从而减少了开发过程中的风险。书中还给出了 70 多个可行的重构,以及指导你何时何地应该开始挖掘代码以求改善。

  评语:该著作适合软件开发人员、项目管理人员阅读,读者读完后或许会有醍醐灌顶般感觉,书中蕴含着精华,值得反复咀嚼。

  7. 《人月神话》(The Mythical Man-Month)

  作者 Frederick P. Brooks 曾荣获图灵奖,本书为人们管理复杂项目提供了颇具洞察力的见解,有发人深省的观点,也有大量软件工程实践,包括作者在 IBM 公司 System 360 家族和 OS 360 中项目管理经验,新的版本中也还有作者对某些观点新的认识、一些精华的提炼、也有大量工程实践,为每个复杂项目的管理者给出了自己的真知灼见

  评语:本著作适合软件开发人员、项目经理、系统分析师等工程管理人士阅读。最好有面向对象经验,此书虽是一本非技术书,但会给你带来很多感触和实用价值。

  8. 《计算机程序设计艺术》(The Art of Computer Programming)

  本书是高德纳(Donald Ervin Knuth)所著,作者曾因三卷书获得美国 1974 年图灵奖,是 20 世界最佳 12 部学术专著之一。本书结合了大量数学知识,分析不同领域中的各种算法,其引入的许多术语、得到的许多结论都变成了计算机领域的标准术语和被广泛引用的结果,此外也描述了编程在模拟、数值方法、符号计算、软件与系统设计等方面的应用。

  评语:比尔·盖茨曾说过:如果读懂整套书的话,请给他发一份你的简历。通过这句话足以说明该著作对开发者影响是巨大的。属于纯理论级别的,每次翻阅都会有新的收获,可以当“辞海”来读。

  9. 《代码整洁之道》(Clean Code: A Handbook of Agile Software Craftsmanship)

  软件质量,不仅依赖于架构及项目管理,也与代码质量相关。本书给出了一系列行之有效的整洁代码操作实践,并用来自现实项目的正、反两面来例证,只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。

  评语:该著作适合老程序员、技术经理。有网友惊呼“早几年看到这本书,也许现在水平能再上一个台阶。”,因此有一定经验和对编程认识到位的人,读完此书将得到更多。

  10. 《编程人生》(Coders at Work: Reflections on the Craft of Programming)

  世界顶尖的程序员是怎么走上编程道路的?他们编程工作创造和改变了人类历史,在这一过程中有什么经验和教训?更有什么独到的看法?本书是一本访谈录,记录了当今最具个人魅力的 15 位软件先驱的编程生涯,为我们讲述了他们是怎么学习编程的,以及在学习当中发现了什么,有什么看法?并对诸如应该如何设计软件等困扰程序员的老话题谈了自己的看法。

  评语:适合所有程序员。看完这本书的读者,或许职业眼界会更开阔,不会再做无谓的码农劳动。

  11. 《编码:隐匿在计算机软硬件背后的语言》(CODE: The Hidden Language of Computer Hardware and Software)

  《编码:隐匿在计算机软硬件背后的语言》是一本讲述计算机工作原理的书,不过不要一听“工作原理”等字眼就认为本书是晦涩难懂的。作者用清晰明了的笔墨把复杂的理论写的通俗易懂,阅读的时候你不会感到枯燥和生硬,同时你也会获得对计算机工作原理深刻的理解。

  评语:不知网友有没有看过《明朝那些事儿》这本书?如同这本书把历史写的如同小说一样好看,《编码:隐匿在计算机软硬件背后的语言》这本书也做到了,读完后你会觉得很好玩,同时也能学到真正的知识,加深对计算机科学的理解和认识。

  最后:从计算机发明至今,随着计算机硬件和软件技术的发展,计算机的编程语言经历了机器语言、汇编语言、面向过程的程序设计语言以及面向对象的程序设计语言阶段。技术的飞速发展,使得开发者只有不断学习,才能提高技术让自己在编程的道路上走的更远。以上推荐的 11 本书,希望让各位开发者读后受益匪浅。

时间: 2024-10-28 09:57:48

推荐开发人员看的较有影响力的书籍的相关文章

写给Android App开发人员看的Android底层知识(2)

(五)AMS 如果站在四大组件的角度来看,AMS就是Binder中的Server. AMS全称是ActivityManagerService,看字面意思是管理Activity的,但其实四大组件都归它管.估计是Android底层开发人员先写了ActivityManagerService用来管理Activity,后来写Service.Receiver.CP的时候发现代码都差不多,于是就全都用ActivityManagerService,但是却忘记改名字了——我也是猜的,纯属八卦. 由此而说到了插件化

写给Android App开发人员看的Android底层知识(6)

(十一)BroadcastReceiver BroadcastReceiver,也就是广播,简称Receiver. 很多App开发人员表示,从来没用过Receiver.其实吧,对于音乐播放类App,用Service和Receiver还是蛮多的,如果你用过QQ音乐,App退到后台,音乐照样播放不会停止,这就是你写的Service在后台起作用. 在前台的Activity,点击停止按钮,就会给后台Service发送一个Receiver,通知它停止播放音乐:点击播放按钮,仍然是发送这个Receiver,

开发人员看测试之TDD和BDD

前言: 已经数月没有来园子了,写博客贵在坚持,一旦松懈了,断掉了,就很难再拾起来.但是每每看到自己博客里的博文的浏览量每天都在增加,都在无形当中给了我继续写博客的动力.最近这两天有听到Jbehave这个名词,上网查了一通,原来是和测试相关的,之前一直做开发,没有做过真正意义上的测试,对于测试的理解更是少之又少.通过这两天的查阅,现将自己的一些理解以及常见概念罗列出来. 正文: Behavior Driven Development,行为驱动开发是一种敏捷软件开发的技术,它鼓励软件项目中的开发者.

开发人员看测试之细说JBehave

上篇我们说到如何从Github上clone出一个JBehave项目,既是为了学习JBehava,也是为了熟悉下Github.从clone下来的项目看来,基本没什么问题,稍微捋一捋就可以运行,但是就clone下来的代码来看,自己还是遇到一个问题(不知道是代码问题,还是我自己的操作有问题),就是没有办法运行(后面会详说).正如上篇所说,构建一个JBehave的应用的5大步骤: Write story Map steps to Java Configure Stories Run Stories Vi

写给Android App开发人员看的Android底层知识(8)

(十)PMS及App安装过程 PMS,全称PackageManagerService,是用来获取Apk包的信息的. 在前面分析四大组件与AMS通信的时候,我们介绍过,AMS总是会使用PMS加载包的信息,将其封装在LoadedApk这个类对象中,然后我们就可以从中取出在manifest声明的四大组件信息了. (一) 在下载并安装App的过程,会把Apk存放在data/app目录下. Apk是一个zip压缩包,在文件头会记录压缩包的大小,所以后续在文件尾巴就算是追加一部小电影,也不会对解压造成影响—

《写给Web开发人员看的HTML5教程》

周末了!在家里敲作业,主要是html表格的练习. 我发现当有人问你问题时,我会很有动力学习. 为了很好回答他人的问题,我想我要学得更多,比如预习复习. 同时,被人问题也是一件很开心的事儿,这表示别人认同你,觉得你有这个能力. 为了不让人失望,你就会想方设法去学得更多. 第三章中,作者给我们介绍了许多HTML5中关于表单的新扩展功能. WEB开发者的美好时代来了,因为在使用日期和时间之类的常规输入元素时,他们不再需要用到JavaScipt库,尤其是对于手机输入来说.鉴于通常用手机输入比用计算机要难

开发人员看测试之运行Github中的JBehave项目

本文要阐述的主要有两点,一是介绍自动化测试框架JBehave,二是介绍如何在Github上拉项目,编译成myeclipse环境中的项目,并最终导入Myeclipse中运行. JBehave是何物? JBehave是基于BDD框架的开源自动化测试框架.提供Web集成的BDD层扩展. JBehave特征: JBehave是纯Java实现,可以利用Java丰富的API为己所用: 具有基于文本的story,可以对其进行定义并执行,比较灵活和易扩展: 基于注解(Annotation)的运行配置信息,指定s

如何有效地与开发人员一起工作(三)

合作可能会失败 紧密的合作关系是对时间的投资.有时候投资免不了得不到回报: 你的程序员是如此的固执以致你尖叫起来 – 只可惜很可能你的尖叫声还没他尖叫着说你固执来得响亮. 程序员可能会看起来故意阻碍或令人误解.(他也许在尝试通过使用公正的手段或不正当的手段来指示你从而节省他的时间.但是有时候他就是不可避免地粗心大意,或尝试隐藏他的无能,或其他什么原因.) 你的期望值没有达到.程序员对你做的事情不高兴. 我个人倾向于向糟糕的投资倾注更多的精力,更多的时间.那是错误的.有时候你必须承认计划失败并转向

编程开发必读书籍:每个Web开发人员都应该阅读的10本书[图]

编程开发必读书籍:每个Web开发人员都应该阅读的10本书[图]:当开发人员问我他们应该阅读哪些书籍的时候,我通常都是告诉他们:让你读的下去的书.许多开发人员会阅读其他人的代码,实际上你提升自己最好的途径就是阅读,你的读书效率越高,那么你在日常工作中的效率也会越高.本文我们将来讨论:每个Web开发人员都应该阅读的10本书:1.<与爱因斯坦月球漫步>为什么推荐一本记忆力训练相关的书籍呢?因为现在的绝大多数开发人员都没有想过要提高自己的记忆能力,结果全部依赖于移动设备,实际上,现如今的程序员很难在脱