对想要持续提升其技术水平的java程序员来说,自学最重要的是阅读更多的相关书籍。Java程序员如何向java架构师迈进?我给大家整理了一份必须阅读的书单。
从Java到Java架构师书单
一.Java编写程序门类。
开始时,对没有Java编程经验的程序员来说,随便阅读哪本入门书一样,这一阶段要求你迅速地掌握Java的基本语法和基本用法,其目的是“懒得去解决”,首先熟悉Java。在短时间内快速地完成一遍Java文法,连晕头转向地猜多写代码,要“知其然”。
1.Java编程思想
随着Java编程经验的积累,您需要“知道它是否如此”。现在Java编程思想是一本很不错的书,能让你知道它的基本面向对象知识,对Java基本语法、基本类库有较为清晰的讲解,可以帮助你打出良好的Java编程基础。此书的缺点是实在太厚,也比较罗嗦,不适合现代人快节奏的学习,所以看这本书要懂得取舍,不是每章每节都值得看,挑重点深入地看就行。
2.AgileJava中文版。
我从出版商那里得到了这本书,它把它束之高阁,放在柜子里一页也没翻过,但前两天整理时,却发现这是一本好书!本书的一大特色就是使用单元测试和TDD来编写,在教你如何使用Java的一系列重要基础知识时,会潜移默化地使你的编程思维变得敏捷,走向TDD。此外,本书是一本全新的书籍,基于JDK5.0的语法,学习JDK5.0的新语法也是不错的。此外,本书对于内容的取舍也是非常恰当的,Java语言毕竟类库庞大,可以说出很多东西,本书对内容和内容的不同之处进行了适当的选择,使您能够用最短的时间掌握Java最重要的知识,偶然培养出优秀的编程思想,真是一本不可多得的好书。
二.Java程序设计进阶类。
为Java打好基础,还需要更多的实践经验积累,我认为没有捷径。在这段时间里,应该读两本书,培养好的编程习惯,提高代码质量。
1.《重构 改善既有代码的设计》
此书声名远播,不必多作介绍,可在空闲时多翻翻,多与自己实践互相印证。本书对您的影响是潜移默化的。
2.《测试驱动开发 by Example》
这本书的最大特色就是非常薄,看上去轻松。在周末的下午,你可以边看边干,边干边干,一下午就把书读完,这本书里的例子都不多。本书的作用就是让你在实战中发展TDD思维。
三.Java架构的发展方向。
在此阶段,您应该能够熟练地使用Java编程,并且拥有很好的编程思想和习惯,但您可能仍然缺乏对应用软件总体架构的了解,因此向架构师迈进的第一步。
1.《Expert One-on-One J2EE Design and Development》
本书是罗德·约翰森著名的著作,非常经典,由本书中的代码产生了Springframework。但这本书似乎没有中译本。
2.《Expert One-on-One J2EE Development without EJB》
本书由gigix组织翻译,行业专家也参与其中,尽管署名翻译为JavaEye,其实JavaEye并不算什么,实在是一件令人费解的事。
上面提到的两本书都是罗德·约翰森的经典著作,Java架构师的必读书籍。推荐的这几本书中,有一本我见过最仔细、最认真的书,那时候读它简直就是废寝忘食地读完了。有着儿时挑灯夜读金庸武侠小说的劲头,书中所讲述的内容与自己的经验知识一一印证,又被无比精辟的概括,看了这本书之后,我有一种被打通的感觉,功力爆棚。
但之后我看到了别人的评价,似乎阅读体验不如我,或许这是由于每个人的知识积累和经验的差异所致。当时我正好积累了足够的经验知识,但还没有系统地整理成型,让本书一梳理,立即形成一个完整的知识体系。
3.《企业应用架构模式》
另外一个名字是Martin,但是这本书我只是泛泛地看了一遍,并没有仔细阅读。本书似乎更适合作为框架结构的读者阅读,比如,如果您打算自己编写一本ORM,那么这本书是必须要阅读的。但做应用的人,不要看到外表,也无所谓,但如果有空,我建议仔细看看,会让你明白这个构架为什么要这样设计,这样你的层次可以提升到构架设计师的角度来思考。我一直对Martin的书很有赞赏,但从来没有像RodJohnson的书那么认真地阅读。
4.《敏捷软件开发原则、模式与实践》
UncleBob最著名的敏捷经典名称,这本书比较特别,它不是关于软件开发过程的书,说得更多的是软件体系结构方面的书籍,本书用大量的篇幅讲述了面向对象软件开发的各种模式,并以此为基础,不需要查看GoF的设计模式。
四、软件开发流程。
理解软件开发过程不仅仅是一个提高程序员个人编程习惯的好习惯,而且是加强团队协作的基础。
1.《UML精粹》
UML实际上与软件开发过程没有任何必然的联系,但是它是一个软件团队进行沟通,编写软件文档所需的工具。但UML真正实用的图并不多,只要看这本书就够了,根本没必要啃一些像UML用户指南这样的东西。值得注意的是,本书的中译本翻译得很烂,建议在条件允许的情况下阅读英文原文。
2.《解析极限编程 拥抱变化》XP
本文为KentBeck的第二版,中英文对照。没有什么值得说的,需要读书。
3.《统一软件开发过程》UP
事实上,UP与敏捷没有必然的冲突,UP也很重视迭代、测试,但UP强调的文档和流程驱动是敏捷所没有的。不管怎样,UP是值得您阅读的,毕竟,在中国,几乎没有几家真正采用敏捷的公司,你还需要有一个UP,即使是穿着UP的XP。
4.《敏捷建模》AM
ScottAmbler的名字,本书非常progmatic,它向您展示如何既敏捷又UP,统一敏捷和UP,并且为您提供了大量progmatic的建议和实践。“极限编程融合变革”,“软件开发过程”和“敏捷建模”这三本书一起阅读,从XP与UP的区别出发,再看AM如何统一XP和UP,将三个理论融为一体,形成自己的理论体系,那你也可以去写书。
五.管理软件项目。
假如你突然间升任了项目经理,而你却完全没有项目管理经验,那你一定会心潮澎湃;如果你认为自己对项目的管理不好,又想提高你的项目管理能力,那考PMP肯定是远水难解的。
"快速软件开发"
它也是一本名著。可这么说,有一本书在手,您就有一位项目管理高级参谋为您出谋划策,再也不用担心无法胜任的问题。本书并不讲管理理论,而在实际项目管理中,谈论管理理论并不解决问题,本书有点像《软件工程构想》之类的东西,在所有软件项目中都会遇到各种各样的问题,和怎样解决问题的想法,只要稍微改变一下,找一方抓药就可以了。