Skip to content

Latest commit

 

History

History
143 lines (102 loc) · 10.9 KB

8-books-to-be-better-dev.md

File metadata and controls

143 lines (102 loc) · 10.9 KB

成为更好程序员的8本书

       本文翻译自DZone文章,文章推荐了成为一个更好程序的8本书。书单看起来比较偏向Java程序员,也许是因为Java更加Pragmatic,所以在这门语言下累积了太多的软知识,而这些宏伟的软知识又需要借助Java来向开发者们宣告自己的意志。

       以下是笔者对这篇文章的(摘录)翻译和理解。如果是笔者的理解将会以self-think来开头,以引言的形式来展示,比如:

self-think 这个是作者的理解。。。

       描述内容示例。。。


       DZone是一个不断发展的作者社区,这些作者们具备广泛的技能,同时他们也愿意将自己的知识分享给社区里的其他成员。我们请求了DZone核心社区的成员分享那些帮助提升他们技能的书籍,因此我们收到了一份令人吃惊的书单,它们不仅很有用,而且很值得去读。

       程序设计、架构和设计模式都被包含在这份书单中,你可以看完这篇文章,并把它们加入到你的书架上。希望这些书能够让你成为一个更好的程序员。

《Java Concurrency in Practice》

       多任务处理越来越多的占据了我们的生活,我们在手机上操作APP,经常一个APP的工作还没有结束,就立马切换到另一个APP。并发在快速和高效的程序里扮演着重要角色,这本书是在2006年出版的,它基于Java 5。虽然Java这些年更新了许多大版本,但是这本书仍然是学习并发编程的最好资料。

       这本书讲述了Doug Lea并发包中的大部分内容,以使用者的角度,它能够让你熟练的运用并发工具来解决日常的问题。

self-think 如果你想探究并发的本质,从理论上让自己不惑,同时也能够在和其他开发者交谈过程中有所谈资,那么推荐你看一下Doug Lea的这本书,该书已经是绝版。

这本书体现了Doug Lea的学术水平,他会以形式化的方式来教会开发者如何触及到理论,让开发者有机会接近并发的本质。当然如果你对并发包中的实现感兴趣,也推荐读一下Java并发编程的艺术

《Clean Code》

       能写代码是不足以成为一个有技能的程序员,能够读代码和写出可读性高的代码跟怎样写代码一样重要。这本书教会我们如何识别出代码中的“坏味道”,然后通过持续的重构,使之变为好代码。无论你是一个新手还是一个有经验的老手,我们都推荐你读一读它。

self-think 这本书是Uncle Bob的力作,推荐!

《Refactoring》

       不断演进的需求会使得程序不断的更新,在用户功能上变得更好,而在代码世界里,重构也经常出现。一个小的改动,也会导致级连(关联)错误或不可预期的行为。这本书包含了关于重构的方方面面,并演示通过重构来获得一个更加简单和易变的代码库,同时避免出现一些重构中的常见错误,并且能够更好的理解敏捷开发。

self-think 这本书是Martin的力作,推荐!

《The Pragmatic Programmer》

       处理事情从现实出发,而不是理论,这是种务实的表现。这本书经常被推荐给新入行的程序员或者在校生,数十年来,在它的帮助下,一个个经验丰富的开发者成长起来。它涉及到现实问题,但不失趣味的文风和类比,讨论了编程、测试和调试等范畴,是一本能够始终在案前陪伴你的书。

self-think 这本书的中文版是马维达,中文名是程序员修炼之道。刚参加工作那会,每晚躺在床上,都会读上一小段,依稀还记得调试那节讲的曳光弹

这本书很薄,可以很快读完,从开篇的石头汤开始,整本书需要你多读几遍。相对于这本书,我推荐代码大全

这本书连注脚都推荐你读一下。

《Introduction to Algorithms》

       算法是计算机技术图谱中重要的一个组成部分,从类似谷歌和亚马逊的科技公司,到一个简单的排序功能,都是用算法来解决问题。进入算法世界并磨练你的逻辑能力,这本书涵盖了多种类型的算法,包括了动态和贪心算法。通过练习和解决问题来学习,将会提升你的逻辑能力,尤其是在注重算法的今天。

self-think 买了这本书,但没怎么读,大部头的书。貌似Java程序员都不太熟悉算法,iffor走天下,如果一个if不行,就再来几个。

《Programming in Scala Fifth Edition》

       Scala能够同时支持面向对象和函数式编程,这些年变得越来越流行了。该书已经出了第五版,而第五版相比于之前的版本,是完全的重写。在新原则和详细介绍的帮助下,这本书能够帮助你掌握好Scala

self-think 买了这本书,但完全没读。我评估了下,掌握一门运行在JVM上的语言,不如与Java共进退,尤其是Java8已经面世的今天。

如果是语言和函数思维方面的书,推荐下面这本书,不要错过里面的任何章节。

读起来真的很畅快,能够很好的用函数化思维来重构你的认知,同时让你能够写出更好的函数化程序。注意这本书的封面,它已经出了第二版,涵盖了模块化特性,值得期待。

《Design Pattern》

       设计模式能够提升代码的可用性,并允许开发者实现和重用复杂的组件来减少已有代码的体量。这本书包含了创建、结构和行为模式,而设计模式也是个大公司面试时常问的。深入的掌握多种设计模式,能够帮助不同语言的开发者利用好功能。

self-think 买了这本书,有些年头了,很薄的一个册子,而且基于C++。

由于作者的名头,这本书的影响力很大,但读起来不轻松。如果你想学的轻松一些,推荐下面这本书。

如果不介意大部头,可以读一下Java与模式,这本书更加全面。

但如果想更进一步提升理论,掌握本质,先听这句话:这道理难以被求取,但如果你顺应这些道理,那益处将会自然浮现。你可以将道理换成模式,是不是有些感觉了。设计模式就是这样,你深入去思考每一个模式,不会有什么感觉,但是一旦你在合适的地方使用了它,那好处就会非常自然的出现了。说了这么多,推荐下面这本书。

克里斯托弗将会向你阐述建筑中的模式,让你感受什么是自然和谐的设计。

《Microservices Patterns: With Examples in Java》

微服务现在到处都是,许多组织都在进行从巨石应用向微服务应用的迁移。这本书深入的探讨了微服务架构,并使用了基于Java的例子来让开发者更加容易的理解和实现微服务。在这本书的帮助下,去创建生产应用吧。

self-think 这本书关注了很久,也早都买了,但是没有读。涉及微服务领域的技术被探讨的太多,但是如何构建,有哪些模式,却很少,这本书显得非常特殊。对于我而言,会专门挑时间,仔细读一下。

这里没有其他的书可以推荐。微服务作为一个充满争议的技术走到开发者之间,懂与不懂的人都在争论着,对于懂得人,希望看到讲述模式的书籍,对于不懂的人,总喜欢用自己旧有的知识去度量新生事物。这里我想说:用带有欣赏的眼光去看待它,理解它和使用它。

最后,感谢核心成员Bartek ŻylińskiTyler HawkinsAllan KellyBoris Zaikin对推荐书单的支持。