我的思路:  
 
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编程,构造器、方法重载、this关键字、垃圾回收机制,这4关一定要过!

    有人说,你应该关注时事.财经,甚至流行的电影.电视剧,才有可能趁着热点写出爆文:有人说,你别再写“无聊”的技术文了,因为程序员的圈子真的很小,即便是像鸿洋那样的招牌大牛,文章是那么的干货,浏览量有多少 ...

  2. 怎样才能自学好Java?

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

  3. 我们如何学好java

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

  4. 零基础6个月学好java月薪1w+看看他是怎么学好java的

    21世纪进入信息时代,信息科技给人类的生产和生活方式带来了深刻的变革,信息产业已成为推动国家经济发展的主导产业之一,Java作为含金量极高的一门IT技术,很多人希望从事这个行业,那么想学好Java,要 ...

  5. Java小白如何一步步学好Java,听听企业Java培训师的实践经验吧

    今天我准备给小主展示一篇Java培训老师的文章,希望能给Java小白一个学好Java的路径或者提示.以下就是原文: 从大学到现在,我使用Java已经将近20年,日常也带实习生,还在公司内部做train ...

  6. Java中的泛型 --- Java 编程思想

    前言 ​ 我一直都认为泛型是程序语言设计中一个非常基础,重要的概念,Java 中的泛型到底是怎么样的,为什么会有泛型,泛型怎么发展出来的.通透理解泛型是学好基础里面中非常重要的.于是,我对<Ja ...

  7. 如何学好Java大数据并快速提升

    Java作为一种最流行的,最热门的编程语言,可以说它无处不在,目前全球有着数十亿的设备正在运行着Java,很多服务器程序都是用Java编写,用以处理每天超过数以千万的数据.无论是手机软件.手机Java ...

  8. 0基础小白怎么学好Java?

    自身零基础,我们应该先学好Java,小编给大家介绍一下Java的特性: Java语言是简单的 Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java.Java丢弃了C+ ...

  9. Java教程到处都是,究竟怎样能学好Java?

    学习Java如何入门?学习教程要点是什么?如何精通?做好以下这些点,入门更快,掌握Java更轻松. Java必备基础知识 1.你需要精通面向对象分析与设计(OOA/OOD).涉及模式(GOF,J2EE ...

随机推荐

  1. 利用 spring bean 的属性 init-method 解决因为数据库连接没有初始化而导致首次点击页面超慢的问题

    问题的描述: 一个项目,涉及到了 两个数据源,分别使用的是 两个不同的 数据库连接池,其中一个是 poxool 连接池,问题在于,spring在启动时,只初始化其中的一个 数据库连接池中的数据库连接, ...

  2. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理9

    前两天因有事就没来得及写.今天刚刚好空了.这次写的是对角色和管理员对页面按钮之间的控制.先看页面效果 说明:先根据角色设置好角色的权限,然后管理员在对应的角色下的权限去设置其权限. 在设置角色权限的时 ...

  3. mybatis 配置返回集合collection时只有一条记录

    查询语句配置如下: <select id="selectCustomerList" resultMap="CustomerDtoMap" paramete ...

  4. 【读书笔记《Bootstrap 实战》】5.电子商务网站

    构建了公司网站之后,接下来就可以考虑设计一个在线商店了. 此次的设计以上一章的设计为基础, 只是添加了一个包含如下元素的新页面: □ 包含商品小图.标题和说明的产品网格: □ 位于左侧的变懒,用于按类 ...

  5. BZOJ3130: [Sdoi2013]费用流[最大流 实数二分]

    3130: [Sdoi2013]费用流 Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 960  Solved: 5 ...

  6. POJ1703Find them, Catch them[种类并查集]

    Find them, Catch them Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 42416   Accepted: ...

  7. hadoop安装

    环境 RedHad Linux9.0  java6   hadoop1.2.1 hadoop下载地址:http://mirror.bit.edu.cn/apache/hadoop/common/ 版本 ...

  8. B树、B-树、B+树、B*树

    B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right) 2.所有结点存储一个关键字 3.非叶子节点的左指针指向小于其关键字的字数,右指针指向大于其关键字的字数: 如: B树的 ...

  9. Qt——一些工具的使用

    一.使用Qt需要安装哪些软件 如果不使用VS,那么只需Qt组件就行了,安装完成后使用QtCreator进行编程. 如果使用VS,则需要安装下面几个: 1.Visual Studio 2.Qt组件 3. ...

  10. knockoutJS学习笔记08:表单域绑定

    前面的绑定都是用在基本标签上,这章主要讲表单域标签的绑定. 一.value 绑定 绑定标签:input text.textarea. <p>用户名:<input type=" ...