我的思路:  
 
1、我觉得先学学JSP,用纯JSP做个日记本简单的小系统,纯粹从语言层面上了解一些基
 
础知识,把tomcat玩熟了,就用记事本编就行,主要是熟悉,能够理解jsp运行机制。然
 
后学学java,看本基础的书,都是那种讲讲语法的,变量怎么定义,流程控制语句怎么写,
 
怎么编写函数,怎么处理表单元素,处理字符串,连接数据库,会一种就行。这些都是浮在
 
语言表面,你编写的程序还是结构化的,跟你以前用asp编的程序没什么区别,但是这很
 
重要。你可以直接选择目前公司里都在使用的Eclips来开发,但是你要区分IDE和Java的
 
区别,不要被IDE邦死了。这些都熟了之后看《thinking in java》,看完之后,看core java
 
两卷,深入了解到java本身。看这些书的时候你可能就懵懂的进入oo世界了,估计还不太
 
明白。可以配合一些oo的理论方面的书,oo不过就是那几个特点,封装分配,多态性,继
 
承,第一个要理解的当然是对象。看完这些后就可以学习UML建模了,主要会画三种图,
 
用例图,类图,序列图,三种图就足够了。不要期望自己一下就学会UML,就会建模,得
 
跟java学习联系起来,编个几万行代码,慢慢就会设计对象了。然后看GOF《设计模式》,
 
对你的面向对象思想一个巨大的提升,这时你一定会去重读继承,接口,抽象类的相关的细
 
节了,并且你会发现你的理解能力上了一个台阶。然后看看三层结构的知识,这时候编程考
 
虑使用jsp+servlet+javabean,分出表示层,业务层和数据访问层,这是基础。  
 
2、 以上都是J2SE,然后看thinking in enterprise java,学习j2ee基础知识,你慢慢就会明
 
白持久层的一些机制了,后面的什么各种新鲜的东西,CMP的东西本质是什么,你都很好
 
理解了。当然你要不断编码,把书里的概念都变成实践,只有自己动手做,才能理解,看会
 
不等于学会,学会不等于学精,学好技术不等于会设计,层次会越来越高。实践是认识的唯
 
一来源!!!一定要实践。  
 
 
 
3、编码时你可以考虑看看《重构》这本书,觉得很好,同时还可以看看Thinking in Design 
 
Pattern with java,会使你的代码越来越漂亮。  
 
 
 
4、 现在你的代码已经很专业了,而且可以分出不同的层次,因为你知道了最基本的原则,
 
那就是要高内聚,低耦合,要不断地解耦,但是怎么更好的解耦,什么是最佳实践,你可能
 
并不知道,虽然你看了下面这本书,你会发现你有些做法已经是最佳实践了,但是依然会存
 
在这种情况,有些你并不确定,那就看看core java pattern吧,都是14年以上开发经验的
 
架构师和众多java大师的经验总结,书中序言所写,看完这本书,你将成为Java架构师。  
 
 
 
5、这些知道之后,你已经对分层的本质很理解了,你可以知道Struts不过是框架而已,只
 
是运用了页面助手,前端控制器,应用控制器等这些表示层或者表示层和业务层(Tier)中
 
间连接层(Layer)的模式,对于标签的理解你也是深刻的。而到集成层,采取不同的策略
 
和模式,数据持久化的理论和经验,框架不过是把大家都用得着的东西做好了给你用,没有
 
框架的话很多事需要你自己做,仅此而已,跟那些伟大的思想相比,它们太简单了。至于到
 
具体的容器,DAO策略还是CMP,BMP,在具体使用怎样的ORM工具,都是更简单的事
 
情了。但是看spring,struts这些框架时你会重新阅读前面的java教程的,因为spring用
 
到了java的反射机制等。  
 
 
 
6、到此为止,你会发现你OOP时,想到的就会是性能,到底用数组还是ArryList,还是用
 
HashMap,OOD时,你会考虑并发性,扩展性,复用性,现有框架,池,事务等方面,你
 
会发现每一个问题,你都有好几种选择方案,你会不断重构你的代码,改良你的设计。   
 
7、下一步是OOA,那就看一本《分析模式》吧,会教你很多分析的现成方法。  
 
 
 
此时,你已经是OO方面的专家了,构架一个大型系统应该没有问题了,而且你的能力可
 
以很轻易的学会Web Service,AJAX等这些时髦的东西,你编程的时候可能最常翻的书是
 
JDK API,但是你会遇到新的问题,就是让你设计一套股票系统,可是你对股票一无所知,
 
现学,这是必须的,但是这时你会发现你基础好差,所以在学技术的同时,多看看各个领域
 
的书吧,其实都是有模式的,比如ERP选型,CRM的几种样子,电子商务的几种模式,
 
看多了你也就会了,所以要学会域建模,因为你是要为商务,政务服务的,是为人服务的。  
 
 
 
我觉得这在技术方面就算到头了,如果你想学管理,当然前提是技术,要不你不知道完成一
 
个项目到底要多久花多少钱。你必须了解开发方法,迭代开发,XP等,当你有了技术,再
 
看这些很容易,因为你会明白为什么要测试先行,在技术上怎么实现技术先行;你也会知道
 
结对编码的意义。学习了这些你会是项目经理。  
 
 
 
但是你可能还需要多看看经济领域的书和法律书,还包括中国政府的报告等等,要政治敏感,
 
这样你才能成为比尔盖茨。这离主题有点远了。  
 
 
 
总的原则是:  
 
1、先从语言层面掌握Java(很多说Java容易的人都是只掌握了语言层面的人,当你面对
 
如何解耦,怎样利用线程,如何更好复用,面向对象时,你就会觉得它好复杂好难)然后再
 
到深入理解Java,先学J2SE再学J2EE。  
 
 
 
2、理论和实践相结合,先看操作,理解本质和原理,然后做,然后翻过来看理论,你会觉
 
得这件事做起来就是顺理成章的了,因为当初理论就是这么被推出来的。  
 
 
 
3、高处着眼,有了基础后,你可以从本质上去跟上时髦的东西,比如ORM,更细点说就
 
是Hibernate等,比如各层框架,Spring,Struts等,都很简单。  
 
 
 
4、学好理论,你用到多线程时可能会觉得自己对于线程机制不慎了解,对对象在内存中的
 
生命周期不清楚,对于JUnit断言的不理解,对调试程序的原理不明白,去看计算机组成原
 
理吧;可能搞不清楚数组的本质,去看数据结构,这时你会发现自己线性代数太差;去讨论
 
Java自带的排序算法和你自己编写的算法,可能觉得自己对一个简单的函数都看不懂,设
 
计复杂的函数就更不会了,去看计算方法吧,这时你可能会感到你的高等数学太差了;不理
 
解HTTP的接收应答机制,不知道AJAX原理,那么多语言都有request,response,到底
 
原理是什么,XML的作用是什么,SOAP协议,怎么在网络上传输这些数据,看看基础知
 
识,这些都很简单。掌握基础,只有到这时你才会觉得它重要,那就等你知道了再去看吧,
 
也不会太晚,而且你会学的更好。不要羡慕那些硕士博士,他们没编过程序,照样不如你,
 
有些都是真的是你不做就永远不理解,不做底层,理解不了上层。  
 
 
 
5、学好外语,因为你会发现很多资料很多问题的答案很多调试错误的解释都是外文的,这
 
时google是最好的工具,但是你的英文要起码可以读懂人家说什么;还有研究Web service,
 
SOA之类的东西,往往都是英文的。  
 
 学好我说的这些,大约需要3年,但是学好JAVA,达到语言层面,只需要1周,达到内部,
 
需要半年,达到会设计,需要做3个以前项目,达到架构师,估计得2到3年,同时那些
 
基础中的基础,你更需要好好学,那些是最慢的。  
 
 
 
学到语言层面只需要两样东西:玩会IDE+拿一本包含我所说的那些基本语法的书。玩会IDE
 
你要做到会简单配置,能运行出东西,会调试(不会调试就没法编程),然后拿本JDK API,
 
打开google和百度,有了错误就去搜索,这样学习Java真的很简单。  
 
 
 
Linux也是要先会玩,要能上网,会下载东西,安装软件,写文档,然后就是能听歌看电影,
 
就够了。接下来在编程,关键要会shell那些命令。看看多用户操作系统的书,建立一个理
 
论高度,就OK了  
 
 
 
最后说一句,中国大多数程序都停留在语言层面,很多人都是在懵懂中编程,可能调不通程
 
序,突然改了个东西就通了,但是深层原因并不知道,很多都是东试西试试验出来的,都是
 
黑箱编程,总感觉隔着雾看程序,我身边很多人写了一万行代码,还不理解equals和==的
 
区别呢,还不知道Class object=new Class()等号左右两边各代表什么呢。但是他们一样
 
能编程,一样能开发出系统,很多人都以为这样就算Java高手了,什么都能编并不等于编
 
的好,当然什么都能编是个前提。所以要学,就学深入,起码一种语言要学深,在web开
 
发方面,我推荐java学深,或者说沿着java路学深,这样去研究C#,.Net平台就很容易,
 
再看ASP和PHP就觉得大家都一样了,上升到高度不过也就是设计模式的问题了,殊途
 
同归。

3--------------------------- 

如何学好JAVA编程的更多相关文章

  1. 怎样才能自学好Java?

    经常有初学Java的同学问:怎么样才能学好Java?自学Java难吗? 我认为自学Java并不难.相对于其他语言来说,因为Java95年才出来,所以相对比较新,旧的语言中一些不合适的东西在Java里面 ...

  2. 我们如何学好java

    转载:http://www.zhihu.com/question/19945685 马士兵有一篇文章,我觉得写得很好,原文转载如下,希望题主可以好好读读. ---------------------- ...

  3. JAVA编程思想(第四版)学习笔记----4.8 switch(知识点已更新)

    switch语句和if-else语句不同,switch语句可以有多个可能的执行路径.在第四版java编程思想介绍switch语句的语法格式时写到: switch (integral-selector) ...

  4. 《Java编程思想》学习笔记(二)——类加载及执行顺序

    <Java编程思想>学习笔记(二)--类加载及执行顺序 (这是很久之前写的,保存在印象笔记上,今天写在博客上.) 今天看Java编程思想,看到这样一道代码 //: OrderOfIniti ...

  5. #Java编程思想笔记(一)——static

    Java编程思想笔记(一)--static 看<Java编程思想>已经有一段时间了,一直以来都把笔记做在印象笔记上,今天开始写博客来记录. 第一篇笔记来写static关键字. static ...

  6. [Java编程思想-学习笔记]第3章 操作符

    3.1  更简单的打印语句 学习编程语言的通许遇到的第一个程序无非打印"Hello, world"了,然而在Java中要写成 System.out.println("He ...

  7. Java编程思想重点笔记(Java开发必看)

    Java编程思想重点笔记(Java开发必看)   Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而 ...

  8. JAVA编程讲座-吴老

    JAVA系列公开课第4讲:多态系列课程:从JAVA编程零基础讲起,同时结合工作中遇到的具体实例,语言清晰易懂,连续10周+深入讲解,打下编程基础,让我们一起打来自动化测试的大门时间:4月25日(周一) ...

  9. 《java编程思想》读书笔记(一)开篇&amp;第五章(1)

    2017 ---新篇章  今天终于找到阅读<java编程思想>这本书方法了,表示打开了一个新世界. 第一章:对象导论 内容不多但也有20页,主要是对整本书的一个概括.因为已经有过完整JAV ...

随机推荐

  1. 【Win10开发】响应式布局——AdaptiveTrigger

    接触过Windows10的童鞋已经知道Universal app不仅可以运行在pc上,还可以运行在mobile或者其他平台上.那么这样势必会带来一个问题,如何针对不同屏幕来进行布局适配.所以微软提供了 ...

  2. Linux可插拔认证模块(PAM)的配置文件、工作原理与流程

    PAM的配置文件: 我们注意到,配置文件也放在了在应用接口层中,他与PAM API配合使用,从而达到了在应用中灵活插入所需鉴别模块的目的.他的作用主要是为应用选定具体的鉴别模块,模块间的组合以及规定模 ...

  3. SVM系列之拉格朗日对偶

    在学习SVM(Support Vector Machine) 支持向量机时,对于线性可分的分类样本求出的分类函数为: 其中,分类超平面可以表示为:

  4. 用canvas制作酷炫射击游戏--part2

    今天这一部分主要讲游戏的实现原理与游戏循环的代码实现. 先说原理,大家都看过动画吧.在我看来,游戏就是玩家能人为控制动画剧情发展方向的动画.所以,我们的游戏引擎其实说白了就是个动画引擎再加上鼠标事件. ...

  5. jQuery和JS原生方法对比

  6. SQL SERVER2012中使用游标来备份数据库

    在SQL SERVER中,添加JOB,可以使用以下语句设置定期备份数据库. DECLARE @name VARCHAR(50)--databasename DECLARE @path VARCHAR( ...

  7. Qt——树的搜索

    一.Qt中的树 Qt中树的实现有两种方式.第一种是使用Qt提供的QTreeWidget,很多函数都封装好,比较方便:另一种是通过QTreeView实现,设置它的数据模型,比如使用QStandardIt ...

  8. 纯CSS制作三角(转)

    原原文地址:http://www.w3cplus.com/code/303.html 原文地址:http://blog.csdn.net/dyllove98/article/details/89670 ...

  9. 关于IOS框架的解释

  10. 消息队列之RabbitMQ

    参考教程: http://www.rabbitmq.com/getstarted.html http://www.cnblogs.com/shanyou/p/4067250.html http://w ...