要成为程序员,不仅需要大量的实践,同时也要具备丰富的理论知识。下面分享8本书《代码整洁之道》、《程序员修炼之道:从小工到专家》、《重构——改善既有代码的设计》、《Java并发编程实战》、《设计模式:可复用面向对象软件的基础》、《微服务架构设计模式》、《Scala编程(第3版)》、《算法导论(第3版)》。这些书通过介绍大量的理论知识和实际案例,能够为编程初学者提供灵感,从理论走向实践。
1.《代码整洁之道》
作者:Robert C. Martin
程序员的工作不仅仅是要知道如何写代码,理解并代码同样重要。初学者需要从理解代码开始,掌握代码的理论基础。因为一旦形成了代码风格,在之后很难进行改动。如果在初期可以掌握识别不好的代码的能力,并将其转换为干净的代码,之后才能有效地进行编码。书中认为,代码的质量与其整洁度成正比。干净的代码可以为后期的维护和升级奠定良好的基础。这本书为代码清理和软件开发提供了宝贵见解,废除了许多的方法和规范,并通过实际案例进行详细的说明,是适合初学者乃至专业程序员的最经典的编程书之一。
2.《程序员修炼之道:从小工到专家》
作者:Andrew Hunt/Dave Thomas
在具备丰富的理论知识之后,学会如何将理论运用于实践显得更加重要。而这本《程序员修炼之道》则完美的符合这一需求。本书由Andrew Hunt和Dave Thomas合著,以用户的需求为中心,旨在用最为简洁的代码完成达成最大的目标。该书重在从实际角度而不是理论上解决问题,在过去几十年里一直是入门编程的书籍之一,帮助了许许多多的开发人员。这本书注重实际,风格幽默且浅显易懂,能够照顾到刚学习编程的程序员,其中全面阐释了从编码到调试以及测试的内容。不管是初学者还是颇有经验的程序员,这本书都能让他们收获良多,每次阅读都会有新的收获。
3.《重构——改善既有代码的设计》
作者:Martin Fowler
随着编程的不断发展,重构逐渐成为编码世界中的常见技术。编写后的代码势必不是一成不变的,需要不断对其完善,而在这个过程中,即使是微小的改变也会导致一连串的错误。因此,本书介绍了重构的概念以及如何有效的进行重构,以更为有效地进行编程,避开常见的错误。书中提到了60多种重构方式,为程序员提供重构参考。
4.《Java并发编程实战》
作者:Brian Goetz/Tim Peierls/Joshua Bloch/Joseph Bowbeer/David Holmes/Doug Lea
如果想要了解Java多线程与并发相关的知识,并对Java多线程进行全面的了解,这本书绝对是初次涉及Java并发编程的不二之选。即使是在Java的高频率更新下,《Java并发编程实践》依旧是Java开发人员的必读书目,是想学习Java多线程的人不可错过的经典书籍。书中涵盖了Java并发中几乎所有的基础知识点,并通过对实际案例的讲解,帮助程序员夯实基础。
5.《设计模式:可复用面向对象软件的基础》
作者:Erich Gamma/Richard Helm/Ralph Johnson/John Vlissides
设计模式可以氛围创建型、结构型以及行为型,设计模式使得程序员能够实现重复使用复杂的组建,从而减少代码的空间。四位作者均为面向对象软件方面的专家,在这一领域积累了丰富的经验,此书是他们对于代码开发经验的总结,他们从设计中挑选出了23个设计模式,结合实际案例,总结出在面向对象设计中最为实用的设计,以供初学者以及专业人士参考。
6.《微服务架构设计模式》
作者:Chris Richardson
微服务如今无处不在,过去几十年来,许多公司正通过Java编程语言从单体应用改造为微服务。本书作者由微服务架构的先驱克里斯·查理森进行编写,共12章,分为概念篇、开发篇、运维篇和实战篇,从设计到实现、测试和集成都做了非常详细的描述,从基础到进阶手把手教初学者如何开发和部署微服务架构应用,是一本权威的微服务实用指南。同时书中提供了大量的架构设计模式,帮助程序员更好地进行理解,从而有效实现微服务。
7.《Scala编程(第3版)》
作者:Martin Odersky/Lex Spoon/Bill Venners
Scala是一门现代的多范式编程语言,旨在以简练的方式表达常用的编程模式。Scala不仅支持面向对象编程,同时还支持函数式编程,近年来受到了越来越多人的欢迎。本书由直接参与Scala编程语言开发的马丁·奥德斯基编写,对Scala进行了详尽的介绍,提出了非常新颖的概念,可帮助掌握了一定编程经验的程序员学习。即便是不直接使用Scala的程序员,也能从《Scala编程(第3版)》学到大量关于函数式和面向对象的编程概念和技巧。
8.《算法导论(第3版)》
作者:Thomas H.Cormen/Charles E.Leiserson/Ronald L.Rivest/Clifford Stein
算法作为编程当中的重要部分,是程序员不可或缺的技能之一。通过算法来处理复杂的任务是开发员的必备技能,对于个人的逻辑能力要求较高。此书结构清晰、内容合理,深入浅出地介绍了多种类型的算法,包括动态规划和贪心算法。通过学习并解决书中的实际案例,我们能够更好地锻炼自己的逻辑能力。当然,这本书由于它非常全面且详尽,为算法方面的巅峰之作,适合在算法上拥有一定基础的程序员进行研读。