﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-jay-随笔分类-java</title><link>http://www.blogjava.net/zibeline/category/26408.html</link><description>jay</description><language>zh-cn</language><lastBuildDate>Mon, 08 Oct 2007 18:44:37 GMT</lastBuildDate><pubDate>Mon, 08 Oct 2007 18:44:37 GMT</pubDate><ttl>60</ttl><item><title>Java程序员的推荐阅读书籍</title><link>http://www.blogjava.net/zibeline/archive/2007/10/08/151186.html</link><dc:creator>zibeline</dc:creator><author>zibeline</author><pubDate>Mon, 08 Oct 2007 15:08:00 GMT</pubDate><guid>http://www.blogjava.net/zibeline/archive/2007/10/08/151186.html</guid><wfw:comment>http://www.blogjava.net/zibeline/comments/151186.html</wfw:comment><comments>http://www.blogjava.net/zibeline/archive/2007/10/08/151186.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zibeline/comments/commentRss/151186.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zibeline/services/trackbacks/151186.html</trackback:ping><description><![CDATA[site: http://www.javaeye.com/topic/52992<br />
<p>《Java程序员的推荐阅读书籍》</p>
<p>JavaEye (http://www.javaeye.com)</p>
<p>范凯(http://robbin.javaeye.com)</p>
<p>作为Java程序员来说，最痛苦的事情莫过于可以选择的范围太广，可以读的书太多，往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些，按照学习的先后顺序，推荐给大家，特别是那些想不断提高自己技术水平的Java程序员们。</p>
<p><span style="font-size: 18pt">一、Java编程入门类</span></p>
<p>对于没有Java编程经验的程序员要入门，随便读什么入门书籍都一样，这个阶段需要你快速的掌握Java基础语法和基本用法，宗旨就是&#8220;囫囵吞枣不求甚解&#8221;，先对Java熟悉起来再说。用很短的时间快速过一遍Java语法，连懵带猜多写写代码，要&#8220;知其然&#8221;。</p>
<p>1、《Java编程思想》 <br />
<img src="http://www.douban.com/lpic/s1959358.jpg" border="0"  alt="" /> <br />
在有了一定的Java编程经验之后，你需要&#8220;知其所以然&#8221;了。这个时候《Java编程思想》是一本让你知其所以然的好书，它对于基本的面向对象知识有比较清楚的交待，对Java基本语法，基本类库有比较清楚的讲解，可以帮你打一个良好的Java编程基础。这本书的缺点是实在太厚，也比较罗嗦，不适合现代人快节奏学习，因此看这本书要懂得取舍，不是每章每节都值得一看的，挑重点的深入看就可以了。</p>
<p>2、《Agile Java》中文版 <br />
<img src="http://www.douban.com/lpic/s2008093.jpg" border="0"  alt="" /> <br />
这本书是出版社送给我的，我一拿到就束之高阁，放在书柜一页都没有翻过，但是前两天整理书柜的时候，拿出来一翻，竟然发现这绝对是一本好书！这本书一大特点是以单元测试和TDD来贯穿全书的，在教你Java各种重要的基础知识的过程中，潜移默化的影响你的编程思维走向敏捷，走向TDD。另外这本书成书很新，以JDK5.0的语法为基础讲解，要学习JDK5.0的新语法也不错。还有这本书对于内容取舍也非常得当，Java语言毕竟类库庞大，可以讲的内容太多，这本书选择的内容以及内容的多寡都很得当，可以让你以最少的时间掌握Java最重要的知识，顺便培养出来优秀的编程思路，真是一本不可多得的好书。</p>
<p>虽然作者自己把这本书定位在入门级别，但我不确定这本书用来入门是不是稍微深了点，我自己也准备有空的时候翻翻这本书，学习学习。</p>
<p><span style="font-size: 18pt">二、Java编程进阶类</span></p>
<p>打下一个良好的Java基础，还需要更多的实践经验积累，我想没有什么捷径。有两本书值得你在编程生涯的这个阶段阅读，培养良好的编程习惯，提高你的代码质量。</p>
<p>1、《重构 改善既有代码的设计》 <br />
<img src="http://www.douban.com/lpic/s1826359.jpg" border="0"  alt="" /> <br />
这本书名气很大，不用多介绍，可以在闲暇的时候多翻翻，多和自己的实践相互印证。这本书对你产生影响是潜移默化的。</p>
<p>2、《测试驱动开发 by Example》 <br />
<img src="http://www.douban.com/lpic/s1441607.jpg" border="0"  alt="" /> <br />
本书最大特点是很薄，看起来没有什么负担。你可以找一个周末的下午，一边看，一边照做，一个下午就把书看完，这本书的所有例子跑完了。这本书的作用是通过实战让你培养TDD的思路。</p>
<p><span style="font-size: 18pt">三、Java架构师之路</span></p>
<p>到这个阶段，你应该已经非常娴熟的运用Java编程，而且有了一个良好的编程思路和习惯了，但是你可能还缺乏对应用软件整体架构的把握，现在就是你迈向架构师的第一步。</p>
<p>1、《Expert One-on-One J2EE Design and Development》 <br />
<img src="http://www.douban.com/lpic/s1501574.jpg" border="0"  alt="" /> <br />
这本书是Rod Johnson的成名著作，非常经典，从这本书中的代码诞生了springframework。但是好像这本书没有中译本。</p>
<p>2、《Expert One-on-One J2EE Development without EJB》 <br />
<img src="http://www.douban.com/lpic/s1496227.jpg" border="0"  alt="" /> <br />
这本书由gigix组织翻译，多位业界专家参与，虽然署名译者是JavaEye，其实JavaEye出力不多，实在是忝居译者之名。</p>
<p>以上两本书都是Rod Johnson的经典名著，Java架构师的必读书籍。在我所推荐的这些书籍当中，是我看过的最仔细，最认真的书，我当时读这本书几乎是废寝忘食的一气读完的，有小时候挑灯夜读金庸武侠小说的劲头，书中所讲内容和自己的经验知识一一印证，又被无比精辟的总结出来，读完这本书以后，我有种被打通经脉，功力爆增的感觉。</p>
<p>但是后来我看过一些其他人的评价，似乎阅读体验并没有我那么high，也许是因为每个人的知识积累和经验不同导致的。我那个时候刚好是经验知识积累已经足够丰富，但是还没有系统的整理成型，让这本书一梳理，立刻形成完整的知识体系了。</p>
<p>3、《企业应用架构模式》 <br />
<img src="http://www.douban.com/lpic/s1607804.jpg" border="0"  alt="" /> <br />
Martin的又一本名著，但这本书我只是泛泛的看了一遍，并没有仔细看。这本书似乎更适合做框架的人去看，例如如果你打算自己写一个ORM的话，这本书是一定要看的。但是做应用的人，不看貌似也无所谓，但是如果有空，我还是推荐认真看看，会让你知道框架为什么要这样设计，这样你的层次可以晋升到框架设计者的角度去思考问题。Martin的书我向来都是推崇，但是从来都没有像Rod Johnson的书那样非常认真去看。</p>
<p>4、《敏捷软件开发 原则、模式与实践》 <br />
<img src="http://www.douban.com/lpic/s1671095.jpg" border="0"  alt="" /> <br />
Uncle Bob的名著，敏捷的经典名著，这本书比较特别，与其说是讲软件开发过程的书，不如说讲软件架构的书，本书用了很大篇幅讲各种面向对象软件开发的各种模式，个人以为看了这本书，就不必看GoF的《设计模式》了。</p>
<p><span style="font-size: 18pt">四、软件开发过程</span></p>
<p>了解软件开发过程不单纯是提高程序员个人的良好编程习惯，也是增强团队协作的基础。</p>
<p>1、《UML精粹》 <br />
<img src="http://www.douban.com/lpic/s1648691.jpg" border="0"  alt="" /> <br />
UML其实和软件开发过程没有什么必然联系，却是软件团队协作沟通，撰写软件文档需要的工具。但是UML真正实用的图不多，看看这本书已经足够了，完全没有必要去啃《UML用户指南》之类的东西。要提醒大家的是，这本书的中译本翻译的非常之烂，建议有条件的看英文原版。</p>
<p>2、《解析极限编程 拥抱变化》XP <br />
<img src="http://www.douban.com/lpic/s2008432.jpg" border="0"  alt="" /> <br />
这是Kent Beck名著的第二版，中英文对照。没什么好说的，必读书籍。</p>
<p>3、《统一软件开发过程》UP <br />
<img src="http://www.douban.com/lpic/s1843342.jpg" border="0"  alt="" /> <br />
其实UP和敏捷并不一定冲突，UP也非常强调迭代，测试，但是UP强调的文档和过程驱动却是敏捷所不取的。不管怎么说，UP值得你去读，毕竟在中国真正接受敏捷的企业很少，你还是需要用UP来武装一下自己的，哪怕是披着UP的XP。</p>
<p>4、《敏捷建模》AM <br />
<img src="http://www.douban.com/lpic/s1264986.jpg" border="0"  alt="" /> <br />
Scott Ambler的名著，这本书非常的progmatic，告诉你怎么既敏捷又UP，把敏捷和UP统一起来了，又提出了很多progmatic的建议和做法。你可以把《解析极限编程 拥抱变化》、《统一软件开发过程》和《敏捷建模》这三本书放在一起读，看XP和UP的不同点，再看AM是怎么统一XP和UP的，把这三种理论融为一炉，形成自己的理论体系，那么你也可以去写书了。</p>
<p><span style="font-size: 18pt">五、软件项目管理</span></p>
<p>如果你突然被领导提拔为项目经理，而你完全没有项目管理经验，你肯定会心里没底；如果你觉得自己管理项目不善，很想改善你的项目管理能力，那么去考PMP肯定是远水不解近渴的。</p>
<p>1、《快速软件开发》 <br />
<img src="http://www.douban.com/lpic/s1696681.jpg" border="0"  alt="" /> <br />
这也是一本名著。可以这样说，有本书在手，你就有了一个项目管理的高级参谋给你出谋划策，再也不必担心自己不能胜任的问题了。这本书不是讲管理的理论的，在实际的项目管理中，讲这些理论是不解决问题的，这本书有点类似于&#8220;软件项目点子大全&#8221;之类的东西，列举了种种软件项目当中面临的各种问题，以及应该如何解决问题的点子，你只需要稍加变通，找方抓药就行了。</p>
<p><span style="font-size: 18pt">六、总结</span></p>
<p>在这份推荐阅读书籍的名单中，我没有列举流行的软件框架类学习书籍，例如Struts，Hibernate，Spring之类，也没有列举AJAX方面的书籍。是因为这类书籍容易过时，而上述的大半书籍的生命周期都足够长，值得你去购买和收藏。</p>
<img src ="http://www.blogjava.net/zibeline/aggbug/151186.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zibeline/" target="_blank">zibeline</a> 2007-10-08 23:08 <a href="http://www.blogjava.net/zibeline/archive/2007/10/08/151186.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>