程序员应读的11本书

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

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

转载于:https://my.oschina.net/u/3756894/blog/1626542

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
解压后,150M随书源代码 第1章 利用单片机开发板实现自动化控制  第1节 设计说明  第2节 模拟量输入程序设计   例1 利用keil c5l实现单片机模拟电压输入   例2 利用汇编语言实现单片机模拟电压输入   例3 利用c++builder实现pc与单片机模拟电压输入   例4 利用visual c++实现pc与单片机模拟电压输入   例5 利用labwindows/cvi实现pc与单片机模拟电压输入  第3节 模拟量输出程序设计   例6 利用keil c51实现单片机模拟电压输出   例7 利用汇编语言实现单片机模拟电压输出   例8 利用c++builder实现pc与单片机模拟电压输出   例9 利用visual c++实现pc与单片机模拟电压输出   例10 利用labwindows/cvi实现pc与单片机模拟电压输出  第4节 数字量输入程序设计   例11 利用keil c51实现单片机数字量输入   例12 利用汇编语言实现单片机数字量输入   例13 利用c++builder实现pc与单片机数字量输入   例14 利用visual c++实现pc与单片机数字量输入 .  例15 利用labwindows/cvi实现pc与单片机数字量输入  第5节 数字量输出程序设计   例16 利用keil c51实现单片机数字量输出   例17 利用汇编语言实现单片机数字量输出   例18 利用c++builder实现pc与单片机数字量输出   例19 利用visual c++实现pc与单片机数字量输出   例20 利用labwindows/cvi实现pc与单片机数字量输出 第2章 利用plc实现自动化控制  第1节 设计说明  第2节 模拟量输入程序设计   例21 三菱fx2n plc模拟电压输入程序   例22 利用c++builder实现pc与fx2n plc模拟电压输入   例23 利用visual c++实现pc与fx2n plc模拟电压输入   例24 利用labwindows/cvi实现pc与fx2n plc模拟电压输入  第3节 模拟量输出程序设计   例25 三菱fx2n plc模拟电压输出程序   例26 利用c++builder实现pc与fx2n plc模拟电压输出   例27 利用visual c++实现pc与fx2n plc模拟电压输出   例28 利用labwindows/cvi实现pc与fx2n plc模拟电压输出  第4节 数字量输入程序设计   例29 利用c++builder实现pc与fx2n plc数字量输入   例30 利用visual c++实现pc与fx2n plc数字量输入   例31 利用labwindows/cvi实现pc与fx2n plc数字量输入  第5节 数字量输出程序设计   例32 利用c++builder实现pc与fx2n plc数字量输出   例33 利用visual c++实现pc与fx2n plc数字量输出   例34 利用labwindows/cvi实现pc与fx2n plc数字量输出  第6节 数字量输入与输出程序设计   例35 西门子s7-200 plc数字量输入与输出程序   例36 利用c++builder实现pc与s7-200 plc数字量输入与输出   例37 利用visual c++实现pc与s7-200 plc数字量输入与输出   例38 利用labwindows/cvi实现pc与s7-200 plc数字量输入与输出 第3章 利用数据采集卡实现自动化控制  第1节 设计说明  第2节 模拟量输入程序设计   例39 利用c++builder实现pc与pci数据采集卡模拟电压输入   例40 利用visual c++实现pc与pci数据采集卡模拟电压输入   例41 利用labwindows/cvi实现pc与pci数据采集卡模拟电压输入  第3节 模拟量输出程序设计   例42 利用c++builder实现pc与pci数据采集卡模拟电压输出   例43 利用visual c++实现pc与pci数据采集卡模拟电压输出   例44 利用labwindows/cvi实现pc与pci数据采集卡模拟电压输出  第4节 数字量输入程序设计   例45 利用c++builder实现pc与pci数据采集卡数字量输入   例46 利用visual c++实现pc与pci数据采集卡数字量输入   例47 利用labwindows/cvi实现pc与pci数据采集卡数字量输入  第5节 数字量输出程序设计   例48 利用c++builder实现pc与pci数据采集卡数字量输出   例49 利用visual c++实现pc与pci数据采集卡数字量输出   例50 利用labwindows/cvi实现pc与pci数据采集卡数字量输出 第4章 利用usb数据采集板实现自动化控制  第1节 设计说明  第2节 模拟量输入程序设计   例51 利用c++builder实现pc与usb数据采集板模拟电压输入   例52 利用visual c++实现pc与ljsb数据采集板模拟电压输入   例53 利用labwindows/cvi实现pc与usb数据采集板模拟电压输入  第3节 模拟量输出程序设计   例54 利用c++builder实现pc与usb数据采集板模拟电压输出   例55 利用visual c++实现pc与usb数据采集板模拟电压输出   例56 利用labwindows/cvi实现pc与usb数据采集板模拟电压输出  第4节 数字量输入程序设计   例57 利用c++builder实现pc与usb数据采集板数字量输入   例58 利用visual c++实现pc与usb数据采集板数字量输入   例59 利用labwindows/cvi实现pc与usb数据采集板数字量输入  第5节 数字量输出程序设计   例60 利用c++builder实现pc与usb数据采集板数字量输出   例61 利用visual c++实现pc与usb数据采集板数字量输出   例62 利用labwindows/cvi实现pc与usb数据采集板数字量输出 第5章 利用can数据采集模块实现数据采集与控制  第1节 设计说明  第2节 模拟量输入程序设计   例63 利用c++builder实现pc与can数据采集模块模拟电压输入   例64 利用visual c++实现pc与can数据采集模块模拟电压输入   例65 利用labwindows/cvi实现pc与can数据采集模块模拟电压输入  第3节 模拟量输出程序设计   例66 利用c++builder实现pc与can数据采集模块模拟电压输出   例67 利用visual c++实现pc与can数据采集模块模拟电压输出   例68 利用labwindows/cvi实现pc与can数据采集模块模拟电压输出  第4节 数字量输入程序设计   例69 利用c++builder实现pc与can数据采集模块数字量输入   例70 利用visual c++实现pc与can数据采集模块数字量输入   例71 利用labwindows/cvi实现pc与can数据采集模块数字量输入  第5节 数字量输出程序设计   例72 利用c++builder实现pc与can数据采集模块数字量输出   例73 利用visual c++实现pc与can数据采集模块数字量输出   例74 利用labwindows/cvi实现pc与can数据采集模块数字量输出 第6章 利用远程i/o模块实现自动化控制  第1节 设计说明  第2节 模拟电压输入程序设计   例75 利用c++builder实现pc与远程i/o模块模拟电压输入   例76 利用visual c++实现pc与远程i/o模块模拟电压输入   例77 利用labwindows/cvi实现pc与远程i/o模块模拟电压输入  第3节 模拟电压输出程序设计   例78 利用c++builder实现pc与远程i/o模块模拟电压输出   例79 利用visual c++实现pc与远程i/o模块模拟电压输出   例80 利用labwindows/cvi实现pc与远程i/o模块模拟电压输出  第4节 数字量输入程序设计   例81 利用c++builder实现pc与远程i/o模块数字量输入   例82 利用visual c++实现pc与远程i/o模块数字量输入   例83 利用labwindows/cvi实现pc与远程i/o模块数字量输入  第5节 数字量输出程序设计   例84 利用c++builder实现pc与远程i/o模块数字量输出   例85 利用visual c++实现pc与远程i/o模块数字量输出   例86 利用labwindows/cvi实现pc与远程i/o模块数字量输出

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值