要成为程序员,不仅需要大量的实践,同时也要具备丰富的理论知识。下面分享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 HCormen/Charles ELeiserson/Ronald LRivest/Clifford Stein
算法作为编程当中的重要部分,是程序员不可或缺的技能之一。通过算法来处理复杂的任务是开发员的必备技能,对于个人的逻辑能力要求较高。此书结构清晰、内容合理,深入浅出地介绍了多种类型的算法,包括动态规划和贪心算法。通过学习并解决书中的实际案例,我们能够更好地锻炼自己的逻辑能力。当然,这本书由于它非常全面且详尽,为算法方面的巅峰之作,适合在算法上拥有一定基础的程序员进行研读。
要看学编程的目的是什么。由于没有任何编程基础,可以先学习高级语言,学delphi。delphi的语言是pascal,pascal是公认的适于教学的计算机语言,语法严谨,而且delphi功能极其强大,可以媲美c语言,在windows下编程基本没有delphi做不到,所以有人说“真正的程序员用c语言,聪明的程序员用delphi”。如果只是业余爱好或只是把编程做为自己主要工作的辅助工具,delphi就足够了。推荐教材《delphi5开发人员指南》,网上可以下载。如果想将来从事编程工作,还要学习一些热门语言,比如c、java或一些脚本语言。在学好delphi后,你将有非常扎实的编程功底,再学c、java将会大大提高效率。另外你还要学习数据库设计和编程、网络基础等其它相关知识。
1CPrimerPlus。推荐《CPrimerPlus》作为自学编程的入门书籍。这本书是经典的C语言字典,适合有基础的人阅读,但不建议入门者深入学习。它提供了大量的例子和练习,帮助读者掌握C语言。此外,它还解释了C++的基础知识,让读者在继续前进时不至于迷茫。如果觉得这本书超厚有压力,可以再看《C++Primer》等其他书籍。
2啊哈C语言。推荐《啊哈C语言》作为自学编程的入门好书,它是一本有趣不枯燥的书籍,适合完全没有基础的人。这本书介绍了C程序设计语言,对于想进阶的人来说非常友好。此外,推荐《C语言入门经典》和《C语言解惑》作为其他自学编程的书籍,它们都从“错误”的角度出发进行讲授,帮助读者具备编制高质量程序的能力。
3深入理解计算机系统。推荐《深入理解计算机系统》这本书,它以程序员的视角全面剖析了计算机系统的实现细节,深入理解了程序的行为和计算机系统的运作原理。这本书包含了计算机领域里的很多课程,比如操作系统、组成原理、计算机的体系结构等,从程序员的视角全面剖析,让读者深刻理解程序的行为。学习计算机,最重要的是想了解计算机是怎么运行的,我们的电脑硬件是如何工作的,操作系统为什么能够帮助我们完成这么多事情,代码能够被运行,这就是这本书要告诉我们的东西。
4算法导论。推荐《算法导论》这本书,它是一本经典的算法教材,涵盖了算法的基本概念和高级主题。全书对于算法概念、分析和实现等方面都有详细的阐述,适合初学者和专业从业者阅读。书中专门讨论了线性规划、动态规划、随机化、线性规划技术的近似算法等,还有递归求解、快速排序中用到的划分方法与期望线性时间顺序统计算法,以及对贪心算法元素的讨论。此书还介绍了对强连通子图算法正确性的证明,对哈密顿回路和子集求和问题的NP完全性的证明等内容。全书提供了900多个练习题和思考题以及叙述较为详细的实例研究。
5计算机网络:自顶向下。推荐《计算机网络:自顶向下方法》这本书作为自学编程的入门书籍。它从应用层协议开始沿协议栈向下讲解,强调应用层范例和应用编程接口,使读者尽快进入每天使用的应用程序环境之中进行学习和“创造”。本书的讲解以因特网为例,学以致用,注重教学法,深入浅出地重点讲解计算机网络的基本原理。对于想要深入了解计算机网络的人来说,这本书是不可或缺的。
6大话数据结构。推荐《大话数据结构》作为自学编程的书籍之一。这本书以趣味方式叙述了数据结构的基本概念和经典算法,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。全书通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容。这本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物。
7代码大全。推荐《代码大全》这本书,它不仅是一本编程实践的百科全书,更是一本关于软件开发技术的信息来源。书中介绍了各种编程语言和技术的应用,不仅填补了初级与高级编程实践之间的空白,也为程序员们提供了一个有关软件开发技术的信息来源。此外,书中还提供了许多实用的技巧和方法,帮助读者编写整洁的代码。这本书口碑评分高达87,是一本值得自学编程的书籍。
8程序员修炼之道。推荐《程序员修炼之道(第2版)》,这是一本涵盖了许多不同方面的最佳实践和重大陷阱的书籍。它不仅可以帮助初学者入门编程,还可以探究出编程的本质,创造出更好的软件。此外,它还注重实际,风格幽默且浅显易懂,能够照顾到刚学习编程的程序员。无论是初学者还是有经验的程序员,这本书都能让他们收获良多。
9Java编程思想。推荐《Java编程思想》作为自学编程的入门书籍。该书深入浅出地讲解了Java编程的各个方面,包括面向对象编程、多线程编程、GUI编程等。对于想要深入学习Java编程的读者来说,该书是一本非常有价值的书籍。虽然这本书内容比较厚,也比较罗嗦,但对于已经有一定Java编程经验的人来说,它可以帮助你打好Java编程基础。挑重点的深入看就可以了,不需要每章每节都值得一看。
10算法第四版。推荐《算法第四版》作为自学编程的书籍。这本书是Java语言描述算法领域经典的参考书,全面介绍了关于算法和数据结构的必备知识,特别针对排序、搜索、图处理和字符串处理进行了论述。书的内容非常多,可以说是Java程序员的必备书籍之一。豆瓣评分高达93分,是一本非常值得推荐的书籍。
11HeadFirstJava。推荐《HeadFirstJava》这本书,它是一本非常适合初学者的Java书籍,采用生动有趣的方式讲解Java基础知识,并通过大量的实例和练习帮助掌握Java编程的基本技能。这本书采用了玩乐式教学,让学习Java成为一种风尚。虽然这本书争议较大,但它的内容可以帮助读者更好地掌握Java编程,提高编程能力。建议先借书/看电子版,然后再购买。
12集体智慧编程。推荐《集体智慧编程》这本书,它通过具体实例的方式展示了Python的编程技巧,让读者深入了解人工智能和机器学习中的经典算法。这本书不仅介绍了算法的优缺点,还提供了Python代码和配置好环境可直接运行。此外,它还涵盖了协作过滤技术、集群数据分析、搜索引擎核心技术、搜索海量信息并进行分析统计得出结论的优化算法、贝叶斯过滤技术、用决策树技术实现预测和决策建模功能、社交网络的信息匹配技术、机器学习和人工智能应用等。对于想要自学Python的人来说,这本书是非常值得推荐的。
一、Java编程入门类
对于没有Java编程经验的程序员要入门,随便读什么入门书籍都一样,这个阶段需要你快速的掌握Java基础语法和基本用法,宗旨就是“囫囵吞枣不求甚解”,先对Java熟悉起来再说。用很短的时间快速过一遍Java语法,连懵带猜多写写代码,要“知其然”。
1、《Java编程思想》
在有了一定的Java编程经验之后,你需要“知其所以然”了。这个时候《Java编程思想》是一本让你知其所以然的好书,它对于基本的面向对象知识有比较清楚的交待,对Java基本语法,基本类库有比较清楚的讲解,可以帮你打一个良好的Java编程基础。这本书的缺点是实在太厚,也比较罗嗦,不适合现代人快节奏学习,因此看这本书要懂得取舍,不是每章每节都值得一看的,挑重点的深入看就可以了。
2、《Agile Java》中文版
这本书是出版社送给我的,我一拿到就束之高阁,放在书柜一页都没有翻过,但是前两天整理书柜的时候,拿出来一翻,竟然发现这绝对是一本好书!这本书一大特点是以单元测试和TDD来贯穿全书的,在教你Java各种重要的基础知识的过程中,潜移默化的影响你的编程思维走向敏捷,走向TDD。另外这本书成书很新,以JDK50的语法为基础讲解,要学习JDK50的新语法也不错。还有这本书对于内容取舍也非常得当,Java语言毕竟类库庞大,可以讲的内容太多,这本书选择的内容以及内容的多寡都很得当,可以让你以最少的时间掌握Java最重要的知识,顺便培养出来优秀的编程思路,真是一本不可多得的好书。
二、Java编程进阶类
打下一个良好的Java基础,还需要更多的实践经验积累,我想没有什么捷径。有两本书值得你在编程生涯的这个阶段阅读,培养良好的编程习惯,提高你的代码质量。
1、《重构 改善既有代码的设计》
这本书名气很大,不用多介绍,可以在闲暇的时候多翻翻,多和自己的实践相互印证。这本书对你产生影响是潜移默化的。
2、《测试驱动开发 by Example》
本书最大特点是很薄,看起来没有什么负担。你可以找一个周末的下午,一边看,一边照做,一个下午就把书看完,这本书的所有例子跑完了。这本书的作用是通过实战让你培养TDD的思路。
三、Java架构师之路
到这个阶段,你应该已经非常娴熟的运用Java编程,而且有了一个良好的编程思路和习惯了,但是你可能还缺乏对应用软件整体架构的把握,现在就是你迈向架构师的第一步。
1、《Expert One-on-One J2EE Design and Development》
这本书是Rod Johnson的成名著作,非常经典,从这本书中的代码诞生了springframework。但是好像这本书没有中译本。
2、《Expert One-on-One J2EE Development without EJB》
这本书由gigix组织翻译,多位业界专家参与,虽然署名译者是JavaEye,其实JavaEye出力不多,实在是忝居译者之名。
以上两本书都是Rod Johnson的经典名著,Java架构师的必读书籍。在我所推荐的这些书籍当中,是我看过的最仔细,最认真的书,我当时读这本书几乎是废寝忘食的一气读完的,有小时候挑灯夜读金庸武侠小说的劲头,书中所讲内容和自己的经验知识一一印证,又被无比精辟的总结出来,读完这本书以后,我有种被打通经脉,功力爆增的感觉。
但是后来我看过一些其他人的评价,似乎阅读体验并没有我那么high,也许是因为每个人的知识积累和经验不同导致的。我那个时候刚好是经验知识积累已经足够丰富,但是还没有系统的整理成型,让这本书一梳理,立刻形成完整的知识体系了。
3、《企业应用架构模式》
Martin的又一本名著,但这本书我只是泛泛的看了一遍,并没有仔细看。这本书似乎更适合做框架的人去看,例如如果你打算自己写一个ORM的话,这本书是一定要看的。但是做应用的人,不看貌似也无所谓,但是如果有空,我还是推荐认真看看,会让你知道框架为什么要这样设计,这样你的层次可以晋升到框架设计者的角度去思考问题。Martin的书我向来都是推崇,但是从来都没有像Rod Johnson的书那样非常认真去看。
4、《敏捷软件开发 原则、模式与实践》
Uncle Bob的名著,敏捷的经典名著,这本书比较特别,与其说是讲软件开发过程的书,不如说讲软件架构的书,本书用了很大篇幅讲各种面向对象软件开发的各种模式,个人以为看了这本书,就不必看GoF的《设计模式》了。
四、软件开发过程
了解软件开发过程不单纯是提高程序员个人的良好编程习惯,也是增强团队协作的基础。
1、《UML精粹》
UML其实和软件开发过程没有什么必然联系,却是软件团队协作沟通,撰写软件文档需要的工具。但是UML真正实用的图不多,看看这本书已经足够了,完全没有必要去啃《UML用户指南》之类的东西。要提醒大家的是,这本书的中译本翻译的非常之烂,建议有条件的看英文原版。
2、《解析极限编程 拥抱变化》XP
这是Kent Beck名著的第二版,中英文对照。没什么好说的,必读书籍。
3、《统一软件开发过程》UP
其实UP和敏捷并不一定冲突,UP也非常强调迭代,测试,但是UP强调的文档和过程驱动却是敏捷所不取的。不管怎么说,UP值得你去读,毕竟在中国真正接受敏捷的企业很少,你还是需要用UP来武装一下自己的,哪怕是披着UP的XP。
4、《敏捷建模》AM
Scott Ambler的名著,这本书非常的progmatic,告诉你怎么既敏捷又UP,把敏捷和UP统一起来了,又提出了很多progmatic的建议和做法。你可以把《解析极限编程 拥抱变化》、《统一软件开发过程》和《敏捷建模》这三本书放在一起读,看XP和UP的不同点,再看AM是怎么统一XP和UP的,把这三种理论融为一炉,形成自己的理论体系,那么你也可以去写书了。
五、软件项目管理
如果你突然被领导提拔为项目经理,而你完全没有项目管理经验,你肯定会心里没底;如果你觉得自己管理项目不善,很想改善你的项目管理能力,那么去考PMP肯定是远水不解近渴的。
1、《快速软件开发》
这也是一本名著。可以这样说,有本书在手,你就有了一个项目管理的高级参谋给你出谋划策,再也不必担心自己不能胜任的问题了。这本书不是讲管理的理论的,在实际的项目管理中,讲这些理论是不解决问题的,这本书有点类似于“软件项目点子大全”之类的东西,列举了种种软件项目当中面临的各种问题,以及应该如何解决问题的点子,你只需要稍加变通,找方抓药就行了。
六、总结
在这份推荐阅读书籍的名单中,我没有列举流行的软件框架类学习书籍,例如Struts,Hibernate,Spring之类,也没有列举AJAX方面的书籍。是因为这类书籍容易过时,而上述的大半书籍的生命周期都足够长,值得你去购买和收藏。
希望能帮到你,Java的路很长,坚持下来一定行的!
1、《实战Java程序设计》
这是一本既注重实战,同时也注重底层“内功”训练的书,非常适合初学者阅读!
2、《程序员修炼之道——从小工到专家》
这本是指导程序员从低等级向高等级转变的必要圣经。每一篇幅都需要仔细阅读,深入思考,作者多年的经验可以给我们在实际项目中处理给予很大的帮助。通过在实践中,摸索,探讨,最终都会发现很多问题都能在这本书找到最好的指导。
《重构:改善既有代码的设计》,这本书确实牛掰,尤其适合当代程序员读。近几年软件开发的门槛降低了很多,好多公司都因为初级程序员的存在累积了一大批shit一样的代码,重构也讲技巧和原则,不是单纯地删除重写。看了几页就有收获,推荐给各位开发的朋友,没事儿读读,肯定有启发。
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)