如果你是一个程序员,除了编码之外,你还需要大量的阅读。今天我要为大家介绍几本值得一读的书,包括《The Pragmatic Programmer》,《The Mythical Man-month: Essays on Software Engineering》和《Clean Code: A Handbook of Agile Software Craftsmanship》。

书籍是知识和智慧的重要来源。但不幸的是,现在很多人已经不愿意看书了。程序员更是罕见地会去读书,最常见的依靠互联网搜索结果来找寻答案。

技术向前的步伐比人类历史上的任何时候都要走得更快。用不了几个月,就会有新的编程语言和工具问世,弥补现有语言、工具和方法的缺陷。

事实上,许多伟人都已经遇到过差不多的问题,并指出了解决这些问题的最佳途径。而这些方法和解决方案都收录在一些超棒的书籍中。

下面就是在这个行业中开发人员应该阅读的一系列伟大的书籍。(基本上都有中文版的,自己豆瓣上找就可以了)

《The Pragmatic Programmer》


绝对是书籍中的瑰宝!这不是常规地建议你编码,编码还是编码的编程书。事实上,它并不限定于某种特定的编程语言:在这本书中的智慧适用于所有编程语言。

这本书对许多有趣的领域都提出了真知灼见,如各种探索性编程,在代码中编码,从模型中分离的观点,昂贵的工具并不产生更好的设计,开发一个伟大的团队,管理预期,避免知识的重复等。

这本书不仅可以帮助改变编码的习惯,还可以改变你作为一个程序员的性格。它充满了关于如何改进自己和代码的实用建议。

还有一个总结了提示和检查清单的小册子。

《The Mythical Man-month》: 关于软件工程的散文集


非常经典,被奉为软件行业的圣经。第一次出版于1970年,但是里面的内容比起以前,可能更适用于现在!

有听说过这些话吗?它们均摘自于这本书!

“所有的程序员都是乐观的:一切都会顺利。”

“添加人手到一个延迟的项目中只会导致完成得更慢。”

“生一个孩子总是需要九个月的时间,不管安排多少个女性。”

“一个煎蛋,承诺在两分钟内完成,但如果两分钟后还是没有准备好,那么客户有两种选择——等待或吃半熟品,软件客户也只能这样选择。”

不幸的是,一年又一年地过去,而我们总是在软件开发中犯着相同的错误。这本书是每一个项目经理和开发人员都必须阅读的。

正从标题中所说的那样,这是一本散文集。文辞优美。这本书唯一的缺点就是引用了年迈25的古老技术。但是,这并不影响这本书的魅力。

《Clean Code》: 敏捷软件工艺的手册


有没有在看他人代码的过程中,不由自主地发出“哦,天哪,这是什么?”的经历,那么这个人肯定没有阅读过《Clean Code》。

这是一本关于软件工艺史诗般的书籍。这本书不仅会告诉你如何编写好的代码,而且还提供了软件开发的高效途径。照着去做的话,必将改变你的工作前景。

书中描述了编写干净代码的原则、模式和做法。里面一些关于整洁代码的几个案例都是开发人员宝贵的经验教训。

请注意,虽然在这本书中的所有实例都是关于Java的,但是从中学到的经验教训可以应用于任意的编程语言。

这篇文章所列出的这些书籍中,这本书出版得比较晚,所以可能更能引起年轻开发人员的共鸣。

《The Clean Coder》:专业程序员的行为守则


此列表中Rob Martin的第二本书。建议你在读了《Clean Code》后,再读这本书。《Clean Code》讲的是代码,而这本书是关于“Coder”。

该书探讨了一些程序员经常忽视的主题。

  • 成为专业的程序员意味着什么?

  • 如何打磨自己成为一个真正的软件工匠

  • 冲突和紧张的日程处理

  • 如何管理你的时间?如何扩张技能?

  • 何时说“不”

  • 避免倦怠

  • ..以及更多。

你可能并不总是同意作者的观点,但它提供了良好的精神食粮。这可能并非你所期望的,但可能正是你所需要的。

《Refactoring》:改善已有代码的设计


不管你怎么努力,除非改进它,否则,你交付的代码不会是最优化的。有时即使工作正常,也会实施重构。

这本书从重构的通用原则说起:为什么以及什么时候重构,如何处理有关重构的管理等等。然后讲述了如何实现改进的过程。

  • 代码的设计缺陷指标是什么?

  • 如何构建类、方法和其他的逻辑块?

  • 单元测试

  • 如何将功能从一个对象移动到另一个?

  • 重构工具

  • ..以及更多

这是改进现有代码必读的书。请注意,所有的代码示例用的都是Java,但现在复制起来也很方便!

《Working Effectively With Legacy Code》


我们都必须工作于一些我们痛恨的东西——对于大多数人而言,遗留代码真是令人头痛无比。

如何修改遗留代码?如何识别需要重构的代码部分?如何破坏重构代码之间的依赖关系?如何确保新的代码能完成预期的工作?如何一次一小步地重构遗留代码?

在这本杰出的书中,只是回答了一些关键的问题。如果非要用一句话总结这本书的精华,那就是“写单元测试,重构代码,确保测试都通过。”

遗留代码不是一个神话,它是一个活着的传奇!在软件行业中没有什么比遗留代码更能经受测试的考验了——Deepak Karanth

《Code Complete》:软件构建的实用手册


在一个庞大的作品中,如果你想要阅读所有关于编程结构和最佳实践的内容,那么这是本必读书。真正的百科全书式书籍——其最新版本有多达960页!不要被这本书的厚度吓倒,你可以按照自己的节奏阅读。最后,你会庆幸你阅读了这本书。

书中解释了软件开发的每个方面。从代码结构,代码格式化,到变量、方法和类的命名,再一路说到管理一个团队,对所有一切都提出了实用的建议。

提供了覆盖特定主题的丰富参考和补充材料,这些也非常值得一读。

只有一小部分的软件开发人员会读这本书,所以如果你也是他们中的一个,那么你就有了优势。通过阅读这本书,你就可以获得许多年宝贵经验。

《Head First Design Patterns》


看上去最不像技术的编程书籍!每个页面都包含涂鸦、图片以及其他一些吸引眼球的东西。可能给人的印象是一本阅读起来很轻松的书,但事实上它会讨论编程的一些核心主题——设计模式。

这本书虽然没有覆盖所有存在于这个世界的模式,但是会涵盖所有你可能需要用于解决现实问题的模式。它将帮助你创建功能性的,优雅的,可重用的和灵活的软件。每个模式的优劣也被明确指出。大多数关于设计模式的书籍谈论的是如何实现模式,但这本书的作者同时还解释了为什么以及怎么样。

最新版本包括针对Java 8的更新——主要是Lambda。

《Peopleware: Productive Projects and Teams》


很棒的一部作品。这本书并非关于编程。这是一本有关管理和激励程序员的书籍。开发人员也应该阅读。很多时候,开发人员,尤其是那些没有经验的开发人员,不理解管理的思维过程。

软件开发是一个创造性的过程。但是,大多数管理人员把它当作是流水线。开发人员被视为是机器上可替换的齿轮零部件。管理人员普遍性地会给予一个紧迫的时间期限,当作促进积极性唯一途径。他们对开发人员的工作不感兴趣,甚至可悲的是,他们也不会试着去理解开发人员或他们自己的工艺。

如果你想成为一个想要的是质量,而不仅仅是数量的管理人员,那么请立刻阅读这本书!

作者解释了管理者应该如何以一种可持续的方式使他们的软件开发团队认识到他们的潜力。

《Soft Skills: The Software Developer’s Life Manual》


同样的,这也不是一本关于编程的书。但是,却是每一个程序员都应该阅读的书。

这本伟大的书着重于管理开发人员生活的“其他”方面。可以是你生活的每一个方面——事业、生活、身体、头脑,以及不管你相信与否——还有灵魂。

作者他自己也遵循这些技术,并且获得了成功。他的网站上说,他能够在他30出头的时候放弃他的日常工作。该作者将他的生活经验整理成整齐的,主题内容为Career、Marketing yourself、Learning、Productivity、Finances, Fitness和Spirit的短章。每个篇章都很短,可以在休息时间阅读,非常方便。

你会是一个更加满意和快乐的人,如果你按照这本书的建议去做的话,那么你将成为一个更令人满意和幸福的人和程序员。

avalobby是一个知名的java 站点。今天偶尔看到他们推荐的reade's choice, top books:

1.

Votes: 27

Avg: 1.93

Effective Java Programming Language Guide

By Joshua Bloch

Addison-Wesley Professional

Paperback, 252 pages

Price: $44.99 - Amazon:

2.

Votes: 17

Avg: 3.06

Design Patterns: Elements of Reusable Object-Oriented Software

By Erich Gamma; Richard Helm; Ralph Johnson; John Vlissides

Addison-Wesley Professional

Hardcover, 395 pages

Price: $54.99 - Amazon:

3.

Votes: 12

Avg: 3.83

Refactoring: Improving the Design of Existing Code

By Martin Fowler; Kent Beck; John Brant; William Opdyke; Don Roberts

Addison-Wesley Professional

Hardcover, 464 pages

Price: $59.99 - Amazon:

4.

Votes: 10

Avg: 3

Head First Design Patterns

By Elisabeth Freeman; Eric Freeman; Bert Bates; Kathy Sierra

O'Reilly Media, Inc.

Paperback, 676 pages

Price: $44.95 - Amazon:

5.

Votes: 10

Avg: 3.5

Expert One-on-One J2EE Design and Development

By Rod Johnson

Wrox

Paperback, 768 pages

Price: $59.99 - Amazon:

6.

Votes: 9

Avg: 2

Thinking in Java (4th Edition)

By Bruce Eckel

Prentice Hall PTR

Paperback, 1520 pages

Price: $59.99 - Amazon:

7.

Votes: 9

Avg: 3.11

Code Complete (2nd Edition)

By Steve McConnell

Microsoft Press

Paperback, 960 pages

Price: $49.99 - Amazon:

8.

Votes: 8

Avg: 2.25

Head First Java (2nd Edition)

By Kathy Sierra; Bert Bates

O'Reilly Media, Inc.

Paperback, 720 pages

Price: $44.95 - Amazon:

9.

Votes: 8

Avg: 4.63

The Pragmatic Programmer: From Journeyman to Master

By Andrew Hunt; David Thomas

Addison-Wesley Professional

Paperback, 352 pages

Price: $42.99 - Amazon:

10.

Votes: 8

Avg: 5.25

Applying UML and Patterns

By Craig Larman

Prentice Hall PTR

Hardcover, 736 pages

Price: $59.99 - Amazon:

1:《Java并发编程从入门到精通》

推荐理由:

从入门讲到精通的,网络安全,网络并发的好书。《Java并发编程从入门到精通》作者结合自己10多年Java并发编程经验,详细介绍了Java并发编程的基础概念、工作原理、编程技巧和注意事项,对Java高性能高并发编程有极大的参考价值。《Java并发编程从入门到精通》内容包括并发编程概念,线程,线程安全,线程集合类,线程阀,线程池,Fork/Join,线程、线程池在互联网项目开发的应用,线程监控及线程分析,Android中线程应用。

2:《Java编程思想》

推荐理由:

网络上面,一个小错误可能被放大很多倍,所以基础必须大牢靠。

从Java的基础语法到最高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。从本书获得的各项大奖以及来自世界各地的读者评论中,不难看出这是一本经典之作。本书的作者拥有多年教学经验,对C、C++以及Java语言都有独到、深入的见解,以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念。

3:《Effective Java》

推荐理由:

好代码和工程,都是重构出来的,学会先有再优。

4:《java设计模式》

推荐理由:

优雅代码诞生必备书籍,可以帮助很好的理解开源项目和源码。

5:《spring实战》

推荐理由:

神一般的MVC框架,必须要掌握。这是一本非常棒的书。写得太好了!示例非常简洁,而且易于理解。
你将学会如何使用Spring编写更简单且易于维护的代码,从而让你只关注于真正重要的事情——你的关键业务需求。

6:《HTTP权威指南》

推荐理由:

不要以为你了解,http协议了。做网站开发的必须要熟练掌握这个

。《HTTP权威指南》由古尔利所著,本书是HTTP及其相关核心Web技术方面的权威著作,主要介绍了Web应用程序是如何工作的,核心的因特网协议如何与架构构建块交互,如何正确实现因特网客户和服务器等。

7:《Tomcat权威指南》

推荐理由:

《Tomcat权威指南(第2版)》是一本万能工具,其主题涵盖了Apache Tomcat这一广受欢迎的开源servlet、JSP容器和高性能的web server。《Tomcat权威指南》对管理员和web站点管理员而言,具有较强的参考价值;对在开发或产品中要使用Tomcat作为web应用程序服务器的开发者而言,这是一本有用的指南书;对Tomcat感兴趣的人而言,这是一本优秀的介绍工具。

8:《Nginx高性能Web服务器详解》

推荐理由:

本书全面介绍了当前Internet上流行的一款开放源代码的Web服务器——Nginx。全书一共分为四大部分,分别从入门、功能、实现和应用等四个方面对Nginx服务器的知识进行完整阐述,从而满足广大读者在应用Nginx服务器时的普遍性需求。同时也深入剖析了Nginx服务器的工作原理和实现技术,对其中使用到的数据结构和方法进行了详细阐述,并且结合实际的应用情况给出了多个基于Nginx服务器,同时还部署有其他典型服务器的分布式网站架构部署配置。

9:《Git权威指南》

推荐理由:

《Git权威指南》是Git领域的集大成之作,是一本关于Git的百科全书,在广度、深度和实战性上让同类作品望尘莫及。作者是国内顶尖的版本控制专家和咨询顾问之一,本书得到了Git官方维护者Junio C Hamano和ITeye创始人范凯(Robbin)先生等数位专家的高度认可和极力推荐,权威性毋庸置疑。

10:《Maven实战》

推荐理由:

你是否早已厌倦了日复一日的手工构建工作?你是否对各种项目风格迥异的构建系统感到恐惧?Maven——这一Java社区事实标准的项目管理工具,能帮你从琐碎的手工劳动中解脱出来,帮你规范整个组织的构建系统。不仅如此,它还有依赖管理、自动生成项目站点等超酷的特性.已经有无数的开源项目使用它来构建并促进团队交流,每天都有数以万计的开发者访问中央仓库以获取他们需要的依赖。《Maven实战》内容全面而系统,Maven的原理、使用方法和高级应用尽含其中;注重实战是《Maven实战》的另一个特点,不仅各个知识点都辅有小案例,而且还有一个综合性的案例贯穿全书。如果你想使用Maven,或正在使用Maven.《Maven实战》将给你绝佳的指导。

欢迎大家加QQ群一起探讨技术:     https://jq.qq.com/?_wv=1027&k=4BQTQRx

每个程序猿应该阅读的10本经典书籍相关推荐

  1. 【转】每个程序员应该阅读的10本经典书籍

    如果你是一个程序员, 除了编码之外,你还需要大量的阅读.今天我要为大家介绍几本值得一读的书,包括<The Pragmatic Programmer>,<The Mythical Ma ...

  2. linux shell命令行及脚本编程实例详解_Linux高手必看的10本经典书籍

    Linux高手必看的10本经典书籍 Linux 是一个开放.灵活.跨平台的操作系统,上至庞大的数据中心,下至可放于掌心中的嵌入式设备,Linux 的身影无处不在. 如果你想成为一名精通 Linux 程 ...

  3. 程序猿才感同身受的10个图!

    1 当我决定整理代码后-- %@#¥#-- 2 现实中的编程 VS 电影里的编程 3 尝试修改多年没人改动的代码 4 开发快完成时,产品经理提出要改需求后,程序猿脑中的情景 5 一张图看懂 try.. ...

  4. 程序猿,你也配吃10元的盒饭?

    又是一个阳光灿烂的中午,看了一上午的报纸,茶水也顺带喝了不少,肚子早已经咕咕作响了,今天中午吃点什么了,貌似楼下的新开张的盒饭还不错,于是我来到楼下准备买上一盒. 菜色还不错,价格有6元,8元,10元 ...

  5. 程序猿的一些幽默趣闻 个个经典

    1.程序员找不女朋友的原因 程序员问禅师:"大师,我身体健康,思想端正,各方面都不错,为何就是找不到女朋友呢?" 禅师浅笑,答:"原因很简单,不过若想我告诉你,你需先写一 ...

  6. 程序员应该读的 7 本经典书籍

    点击上方"逆锋起笔",公众号回复 PDF 领取大佬们推荐的学习资料 无论是从书中得到提升专业技能的知识,还是增长见识.启迪智慧,这些都只有好书才能做到的. 今天又带着好书推荐来啦, ...

  7. 为什么优秀的程序猿都阅读源码

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:后端程序员必备:书写高质量SQL的30条建议个人原创+1博客:点击前往,查看更多 来源: CSDN(ID:CSD ...

  8. 程序员会遇到的10种经典的错误提示信息

    对于编程来说,没有错误是美好的一天.但不幸的是,这种情况比你希望的要少得多.你见过下面这些有趣的原始错误信息吗?从难以理解的字母数字混合形式,到令人惊讶的有趣形式,错误信息一直用其独有的计算机形式告知 ...

  9. 给程序猿简历的一些建议

    近期一直郁闷投出去的简历没收到希望中的回复,自己认为自己技术也没那么不堪入目,问题可能出如今简历上,于是搜索了下,对于程序猿写简历的一些建议.希望对大家有所帮助.希望对自己也有帮助.最后让offer来 ...

最新文章

  1. mysql 查询空字符串 设置默认值_MySQL默认值选型是空,还是 NULL-爱可生
  2. 互联网晚报 | 3月3日 星期四 |​ 苹果将于北京时间3月9日凌晨2点举办春季发布会;vivo子品牌NEX被砍掉...
  3. 背包——多重背包(hdu2191)
  4. java jedis_Java操作Redis之Jedis用法详解
  5. 线段树和zkw线段树
  6. I00025 寻找循环数
  7. 使用fat jar和proguard对包含第三方依赖包的java代码进行打包混淆
  8. Ibatis.Net 数据库操作(四)
  9. Android平台的通话计时源码
  10. 常见方案 目录 1. 发现目前 WEB 上主流的视频直播方案有 HLS 和 RTMP, 1 2. 实现直播的方法有很多,但是常用的,就这几个。 3个直播协议:rtmp、rtsp、hls。 和三个端:
  11. PHP沉思录(转载)
  12. 典型医疗场景数据安全风险态势感知方案
  13. diskgenius创建efi分区_找不到引导分区 启动分区不存在 怎么创建efi系统分区
  14. PHP与前端谁的工资高,前端和后端哪个工资高一些
  15. 推荐一个不错的在线制图网站---ProcessOn
  16. 万娟 白话大数据和机械学习_《白话大数据与机器学习》.pdf
  17. 现代软件工程 第一章 【概论】练习与讨论 第2题 邓杰
  18. 论如何设计博客分类标签系统
  19. ORAN C平面 Section Extension 10
  20. Microsoft Teams通话质量仪表盘(CQD)怎么玩?

热门文章

  1. Java中的JVM关闭钩子
  2. 前端日历,vue日历,一周的日历
  3. 戴森“新我发现所”苏州线下体验展启幕 以颠覆性科技传递护发造型新理念
  4. Linux重要命令-sar
  5. android 后退键
  6. 【对讲机的那点事】“驴途”不是“囧途”,安全出游请务必配备上对讲机!
  7. 拆解国企数字化转型的锦囊
  8. 2019.09.14软件更新公告
  9. 掉头发最该补的东西竟然是它?99%的人都不知道!
  10. Thinkphp开发的卡密商城平台,带数据库和文档,全开源方便二次开发