【VC++开源代码栏目提醒】:网学会员,鉴于大家对VC++开源代码十分关注,论文会员在此为大家搜集整理了“JAVA程序员的推荐书籍 - 技术总结”一文,供大家参考学习!
JAVA程序员的推荐书籍 学习Java最痛苦的事情莫过于对未来职业方向的选择。
尤其是选择开发Java Application还是Java Web方向在你先定好大类后还有数不尽的小类教你无从学起。
因此作为初学者的你必须看完本文。
从中你将了解到如何学习Java并选择适合自己的Java。
我想就我自己读过的技术书籍中挑选出来一些按照学习的先后顺序推荐给大家特别是那些想不断提高自己技术水平的Java程序员们。
一、Java编程入门类 如果你是初学者仅仅学过一点C语言或VB语文对于没有Java编程经验的程序员要入门随便读什么入门书籍都一样只要你认真的学习JAVA这个阶段需要你快速的掌握Java基础语法和基本用法宗旨就是“囫囵吞枣不求甚解”先对Java熟悉起来再说。
用很短的时间快速过一遍Java语法连懵带猜多写写
代码要“知其然”。
没错你就要在知其然不知其所以然前期只要求你掌握JAVA的大体框架然后我们再进入深层次的学习JAVA。
下面我们介绍第一本Java书籍。
1、《Java编程思想》 在你学会了一些基础的JAVA语法及类后你需要“知其所以然”了。
这个时候强烈推荐你学习《Java编程思想》是一本让你知其所以然的好书它对于基本的面向对象知识有比较清楚的交待对Java基本语法基本类库有比较清楚的讲解可以帮你打一个良好的Java编程基础。
在看《Java编程思想》这本书你一定要注意因为它实在是太厚了要小心不要砸到自己的脚也比较罗嗦不适合现代人快节奏学习因此看这本书要懂得取舍不是每章每节都值得一看的挑重点的深入看就可以了。
另外当你看完《Java编程思想》后也可以把它当作枕头用。
睡醒后还能拿来看几眼简直是一本居家旅行学习进步不可多得之物。
2、《Agile Java》中文版 这是第二本了呵 《Agile Java》中文版这本书一大特点是以单元测试和TDD来贯穿全书的在教你Java各种重要的基础知识的过程中潜移默化的影响你的编程思维走向敏捷走向TDD。
TDD的最大优点在于它可以改变你对JAVA的思维模式。
二、Java编程进阶类 打算以程序为生的程序员们在学期完基础的Java入门后要再接再厉学习Java的重构及框架了。
打下一个良好的Java基础还需要更多的实践经验积累我想没有什么捷径。
有两本书值得你在编程生涯的这个阶段阅读培养良好的编程习惯提高你的
代码质量。
1、《重构 改善既有
代码的设计》 业内非常有名的书几乎是所有JAVA进阶级高手必看的一本书。
其实不论你是JAVA高手还是JAVA菜鸟我都推荐你看一下这本有关JAVA重构的书。
别等你的程序员朋友问你是否看过《重构 改善既有
代码的设计》 时你尴尬地告诉其它JAVA程序员说没看过呵。
2、《测试驱动开发 by Example》 本书最大特点是很薄看起来没有什么负担。
你可以找一个周末的下午一边看一边照做一个下午就把书看完这本书的所有例子跑完了。
这本书的作用是通过实战让你培养TDD的思路。
Very Tiny的一本书看起来很带劲通俗易懂。
是你学习TDD的简易途径。
三、Java架构师之路 哇你已经学到了JAVA架构师的水平了现在的你应该已经非常娴熟的运用Java编程而且有了一个良好的编程思路和习惯了但是你可能还缺乏对应用软件整体架构的把握现在就是你迈向架构师的第一步。
你准备好了吗OK.Lets GO准备好看你一个经典入门JAVA架构师的书籍吧。
1、《Expert One-on-One J2EE Design and Development》 2、《Expert One-on-One J2EE Development without EJB》 咱也不说了这本书估计全世界学JAVA的有一半都会看一看但看得明白和看得懂的估计能有百分之一就不错了。
这本书由gigix组织翻译多位业界专家参与虽然署名译者是JavaEye其实JavaEye出力不多实在是忝居译者之名。
以上两本书都是Rod Johnson的经典名著Java架构师的必读书籍。
在我所推荐的这些书籍当中是我看过的最仔细最认真的书我当时读这本书几乎是废寝忘食的一气读完的有小时候挑灯夜读金庸武侠小说的劲头书中所讲内容和自己的经验知识一一印证又被无比精辟的总结出来读完这本书以后我有种被打通经脉功力爆增的感觉。
3、《企业应用架构模式》 《企业应用架构模式》 Martin的又一本名著但这本书我只是泛泛的看了一遍并没有仔细看。
这本书似乎更适合做框架的人去看例如如果你打算自己写一个ORM的话这本书是一定要看的。
但是做应用的人不看貌似也无所谓但是如果有空我还是推荐认真看看会让你知道框架为什么要这样设计这样你的层次可以晋升到框架设计者的角度去思考问题。
Martin的书我向来都是推崇但是从来都没有像Rod Johnson的书那样非常认真去看。
4、《敏捷软件开发 原则、模式与实践》 《敏捷软件开发 原则、模式与实践》 Uncle Bob的名著敏捷的经典名著这本书比较特别与其说是讲软件开发过程的书不如说讲软件架构的书本书用了很大篇幅讲各种面向对象软件开发的各种模式个人以为看了这本书就不必看GoF的《设计模式》了。
四、软件开发过程 了解软件开发过程不单纯是提高程序员个人的良好编程习惯也是增强团队协作的基础。
1、《UML精粹》 《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的把这三种理论融为一炉形成自己的理论体系那么你也可以去写书了。
五、JAVA软件项目管理 如果你突然被领导提拔为项目经理而你完全没有项目管理经验你肯定会心里没底如果你觉得自己管理项目不善很想改善你的项目管理能力那么去考PMP肯定是远水不解近渴的。
1、《快速软件开发》 JAVA项目管理教程 这也是一本名著。
可以这样说有本书在手你就有了一个项目管理的高级参谋给你出谋划策再也不必担心自己不能胜任的问题了。
这本书不是讲管理的理论的在实际的项目管理中讲这些理论是不解决问题的这本书有点类似于“软件项目点子大全”之类的东西列举了种种软件项目当中面临的各种问题以及应该如何解决问题的点子你只需要稍加变通找方抓药就行了。
六、总结 在这份推荐阅读书籍的名单中我没有列举流行的软件框架类学习书籍例如StrutsHibernateSpring之类也没有列举AJAX方面的书籍。
是因为这类书籍容易过时而上述的大半书籍的生命周期都足够长值得你去购买和收藏。
推荐文章: Java 数组详解 用java数组实现基本链表和可自扩充的链表 Myeclipse7.X和8.X汉化 eclipse生成javadoc static 关键字详解 java日期格式大小写汇总 JDK5 枚举详解 JAVA Enum 枚举特性 JAVA启动线程的方法 JAVA得到各个字节码对应的实例对象 java 排序小实例 方法中的内部类访问方法中的局部变量为什么要加final关键字 Java 堆、栈和常量池 详解 static、final修饰符、内部类 与内存的关系 JDK5 交通灯模拟控制系统 Java SE 6 新特性: HTTP 篇 jdk1.6新特性 jdk1.5的新特性 Java 理论与实践: 使用浮点数和小数中的技巧和陷阱 JDK5 代理类与工厂模式合作示例 JDK5 Proxy代理类的小实例 编写一个函数 要求将一个二维数组以回形针的顺序依次填入一个二维数组 java的线程同步机制synchronized关键字的理解 java线程的若干技巧 抽象方法为什么不能是static或native或synchronized JAVA EE企业级开发四步走完全攻略 I JAVA EE企业级开发四步走完全攻略 II JAVA EE企业级开发四步走完全攻略 III JAVA EE企业级开发四步走完全攻略 IV 关于JAVA项目config.properties配置的说明 JAVA5创建动态类及查看其方法列表信息示例 掌握以下知识 可以算是精通java了 国内外最好的java开发论坛及站点汇总 java 线程锁synchronized应用技巧 java基础知识点汇总 I java基础知识点汇总 II java基础知识点汇总 III JAVA正则表达式高级用法分组与捕获 java正则表达式小应用更新 第三版 解决Myeclipse8.5启动时自动关闭的问题 Servlert 在 web.xml 中的配置说明 java正则表达式小应用更新 第二版 关于java线程锁的问题 Java 类中方法重载详解 java
开源项目Log4J 详解 java正则表达式小应用 Java7: 正则表达式将支持命名捕获组 Jsp select top 无效的游标状态 解决办法 验证哥德巴赫猜想 : 1-100之内所有大于2的偶数都是两个素数之和 禁用myeclipse indexes 及 优化myEclipse 启动速度 在MyEclipse中导入 import javax.servlet. 包时报错的解决办法 Java 相对路径与绝对路径的问题 2 Java 相对路径与绝对路径的问题 Tomcat5 中文乱码问题 java newInstance 和 new Class 的区别 JAVA基础面试题 java 注解实例 Java 提供的三个基本注解 Java核心API需要掌握的程度 关于java内省机制的一些描述与说明 关于 quotMyEclipse 快速提取方法的技巧quot 文章中get方法的另类实现源码工程下载 MyEclipse 快速提取方法的技巧 Apache Common BeanUtils 介绍及下载 JAVA反射机制详解 --- 反射基础及应用实例 JAVA反射机制详解 --- 通过Class类取得完整结构了解 JAVA反射机制详解 --- 反射的进一步应用理解 JAVA帮助文档全系列 JDK1.5 JDK1.6 JDK1.7 官方中英完整版下载 优化设置来提升MyEclipse8.5 软件性能 在MyEclipse 打开的html 标记属性值的智能提示 关于 myeclipse 中的ISO-8859-1编码问题 修改MyEclipse的智能感知功能 Myeclipse优化智能提示、javadoc、解决jsp页面假死 MyEclipse常用快捷键 CKEditor文件上传之JSP 实例 用记事本保存的UTF-8格式的java文件不能编译通过的解决方法 Tomcat5.5 安装文件夹结构及配置说明 TOMCAT 5.5 服务器 打开就关闭 的解决方法 JDK1.5 下载及安装环境配置 初学者笔记刚接触Java是的学习方法及心情 JAVA学习----读此文章 有如醍醐灌顶 豁然开朗 J2ME里面的一些未实现的三角函数 相当不错的忠告------如何编出健壮的
代码 java编程30条规则 运行第一个JAVA程序 坦克大战
代码_框架 1.如何学习程序设计 JAVA是一种平台也是一种程序设计语言如何学好程序设计不仅仅适用于JAVA对C等其他程序设计语言也一样管用。
有编程高手认为JAVA也好C也好没什么分别拿来就用。
为什么他们能达到如此境界我想是因为编程语言之间有共通之处领会了编程的精髓自然能够做到一通百通。
如何学习程序设计理所当然也有许多共通的地方。
1.1 培养兴趣 兴趣是能够让你坚持下去的动力。
如果只是把写程序作为谋生的手段的话你会活的很累也太对不起自己了。
多关心一些行业趣事多想想盖茨。
不是提倡天天做白日梦但人要是没有了梦想你觉得有味道吗可能像许多深圳本地农民一样打打麻将喝喝功夫茶拜拜财神爷每个月就有几万十几万甚至更多的进帐凭空多出个quot食利阶层quot。
你认为这样有味道吗有空多到一些程序员论坛转转你会发现他们其实很乐观幽默时不时会冒出智慧的火花。
1.2 慎选程序设计语言 男怕入错行女怕嫁错郎。
初学者选择程序设计语言需要谨慎对待。
软件开发不仅仅是掌握一门编程语言了事它还需要其他很多方面的背景知识。
软件开发也不仅仅局限于某几个领域而是已经渗透到了各行各业几乎每一个角落。
如果你对硬件比较感兴趣你可以学习C语言/汇编语言进入硬件开发领域。
如果你对电信的行业知识及网络比较熟悉你可以在C/C等之上多花时间以期进入电信软件开发领域。
如果你对操作系统比较熟悉你可以学习C/Linux等等为Linux内核开发/驱动程序开发/嵌入式开发打基础。
如果你想介入到应用范围最广泛的应用软件开发包括电子商务电子政务系统的话你可以选择J2EE或.NET甚至LAMP组合。
每个领域要求的背景知识不一样。
做应用软件需要对数据库等很熟悉。
总之你需要根据自己的特点来选择合适你的编程语言。
1.3 要脚踏实地快餐式的学习不可取 先分享一个故事。
有一个小朋友他很喜欢研究生物学很想知道那些蝴蝶如何从蛹壳里出来变成蝴蝶便会飞。
有一次他走到草原上面看见一个蛹便取了回家然后看着过了几天以后这个蛹出了一条裂痕看见里面的蝴蝶开始挣扎想抓破蛹壳飞出来。
这个过程达数小时之久蝴蝶在蛹里面很辛苦地拼命挣扎怎么也没法子走出来。
这个小孩看着看着不忍心就想不如让我帮帮它吧便随手拿起剪刀在蛹上剪开使蝴蝶破蛹而出。
但蝴蝶出来以后因为翅膀不够力变得很臃肿飞不起来。
这个故事给我们的启示是欲速则不达。
浮躁是现代人最普遍的心态能怪谁也许是贫穷落后了这么多年的缘故就像当年的大跃进一样都想大步跨入共产主义社会。
现在的软件公司、客户、政府、学校、培训机构等等到处弥漫着浮躁之气。
就拿笔者比较熟悉的深圳IT培训行业来说吧居然有的打广告宣称quot参加培训100就业quot居然报名的学生不少简直是藐视天下程序员。
社会环境如是我们不能改变只能改变自己闹市中的安宁弥足珍贵。
许多初学者C/JAVA没开始学立马使用
VC/JBuilder会使用
VC/JBuilder开发一个HelloWorld程序就忙不迭的向世界宣告quot我会软件开发了quot简历上也大言不惭地写上quot精通
VC/JAVAquot。
结果到软件公司面试时要么被三两下打发走了要么被驳的体无完肤无地自容。
到处碰壁之后才知道捧起《C编程思想》《JAVA编程思想》仔细钻研早知如此何必当初呀。
quot你现在讲究简单方便你以后的路就长了quot好象也是佛经中的劝戒。
1.4 多实践快实践 彭端淑的《为学一首示子侄》中有穷和尚与富和尚的故事。
从前四川边境有两个和尚一个贫穷一个有钱。
一天穷和尚对富和尚说quot我打算去南海朝圣你看怎么样quot富和尚说quot这里离南海有几千里远你靠什么去呢quot穷和尚说quot我只要一个水钵一个饭碗就够了。
quot富和尚为难地说quot几年前我就打算买条船去南海可至今没去成你还是别去吧quot一年以后富和尚还在为租赁船只筹钱穷和尚却已经从南海朝圣回来了。
这个故事可解读为任何事情一旦考虑好了就要马上上路不要等到准备周全之后再去干事情。
假如事情准备考虑周全了再上路的话别人恐怕捷足先登了。
软件开发是一门工程学科注重的就是实践quot君子动口不动手quot对软件开发人员来讲根本就是错误的他们提倡quot动手至上quot但别害怕他们大多温文尔雅没有暴力倾向虽然有时候蓬头垢面的一副quot比尔盖茨quot样。
有前辈高人认为学习编程的秘诀是编程、编程、再编程笔者深表赞同。
不仅要多实践而且要快实践。
我们在看书的时候不要等到你完全理解了才动手敲
代码而是应该在看书的同时敲
代码程序运行的各种情况可以让你更快更牢固的掌握知识点。
1.5 多参考程序
代码 程序
代码是软件开发最重要的成果之一其中渗透了程序员的思想与灵魂。
许多人被《仙剑奇侠传》中凄美的爱情故事感动悲剧的结局更有一种缺憾美。
为什么要以悲剧结尾据说是因为写《仙剑奇侠传》的程序员失恋而安排了这样的结局他把自己的感觉融入到游戏中却让众多的仙剑迷扼腕叹息。
多多参考
代码例子对JAVA而言有参考文献4.3有API类的源
代码JDK安装目录下的src.zip文件也可以研究一些
开源的软件或框架。
1.6 加强英文阅读能力 对学习编程来说不要求英语但不能一点不会。
最起码像JAVAAPI文档参考文献4.4这些东西还是要能看懂的连猜带懵都可以旁边再开启一个quot金山词霸quot。
看多了就会越来越熟练。
在学JAVA的同时学习英文一箭双雕多好。
另外好多软件需要到英文网站下载你要能够找到它们这些是最基本的要求。
英语好对你学习有很大的帮助。
口语好的话更有机会进入管理层进而可以成为剥削程序员的quot周扒皮quot。
1.7 万不得已才请教别人 笔者在ChinaITLab网校的在线辅导系统中解决学生问题时发现大部分的问题学生稍做思考就可以解决。
请教别人之前你应该先回答如下几个问题。
你是否在google中搜索了问题的解决办法 你是否查看了JAVAAPI文档 你是否查找过相关书籍 你是否写
代码测试过 如果回答都是quot是quot的话而且还没有找到解决办法再问别人不迟。
要知道独立思考的能力对你很重要。
要知道程序员的时间是很宝贵的。
1.8 多读好书 书中自有颜如玉。
比尔盖茨是一个饱读群书的人。
虽然没有读完大学但九岁的时候比尔盖茨就已经读完了所有的百科全书所以他精通天文、历史、地理等等各类学科可以说比尔盖茨不仅是当今世界上金钱的首富而且也可以称得上是知识的巨富。
笔者在给学生上课的时候经常会给他们推荐书籍到后来学生实在忍无可忍开始抱怨quot天呐这么多书到什么时候才能看完了quotquot学软件开发感觉上了贼船quot。
这时候我的回答一般是quot别着急什么时候带你们去看看我的书房到现在每月花在技术书籍上的钱400元这在软件开发人员之中还只能够算是中等的quot学生当场晕倒。
注这一部分学生是刚学软件开发的 对于在JAVA开发领域的好书在笔者另外一篇文章中会专门点评。
该文章可作为本文的姊妹篇。
1.9 使用合适的工具 工欲善其事必先利其器。
软件开发包含各种各样的活动需求收集分析、建立用例模型、建立分析设计模型、编程实现、调试程序、自动化测试、持续集成等等没有工具帮忙可以说是寸步难行。
工具可以提高开发效率使软件的质量更高BUG更少。
组合称手的武器。
到飞花摘叶皆可伤人的境界就很高了无招胜有招手中无剑心中有剑这样的境界几乎不可企及。
在笔者另外一篇文章中会专门阐述如何选择合适的工具该文章也可作为本文的姊妹篇。
2软件开发学习路线 两千多年的儒家思想孔孟之道中庸的思想透入骨髓既不冒进也不保守并非中庸之道而是找寻学习软件开发的正确路线与规律。
从软件开发人员的生涯规划来讲我们可以大致分为三个阶段软件工程师→软件设计师→架构设计师或项目管理师。
不想当元帅的士兵不是好士兵不想当架构设计师或项目管理师的程序员也不是好的程序员。
我们应该努力往上走。
让我们先整理一下开发应用软件需要学习的主要技术。
1 A基础理论知识如操作系统、编译原理、数据结构与算法、计算机原理等它们并非不重要。
如不想成为计算机科学家的话可以采取quot用到的时候再来学quot的原则。
B一门编程语言现在基本上都是面向对象的语言JAVA/C/C等等。
如果做WEB开发的话还要学习HTML/Javript等等。
C一种方法学或者说思想现在基本都是面向对象思想OOA/OOD/设计模式。
由此而衍生的基于组件开发CBD/面向方面编程AOP等等。
D一种关系型数据库ORACLE/SqlServer/DB2/MySQL等等 E一种提高生产率的IDE集成开发环境JBuilder/Eclipse/VS.NET等。
F一种UML建模工具用ROSE/VISIO/钢笔进行建模。
G一种软件过程RUP/XP/CMM等等通过软件过程来组织软件开发的众多活动使开发流程专业化规范化。
当然还有其他的一些软件工程知识。
H项目管理、体系结构、框架知识。
正确的路线应该是B→C→E→F→G→H。
还需要补充几点 1对于A与C要补充的是我们应该在实践中逐步领悟编程理论与编程思想。
新技术虽然不断涌现更新速度令人眼花燎乱雾里看花但万变不离其宗编程理论与编程思想的变化却很慢。
掌握了编程理论与编程思想你就会有拨云见日之感。
面向对象的思想在目前来讲是相当关键的是强势技术之一在上面需要多投入时间给你的回报也会让你惊喜。
2对于数据库来说是独立学习的这个时机就由你来.