我理解的JAVA学习流程

才学了一年的JAVA,但是颇有感触,JAVA作为一个平台十分强大,目前也有许多开发者使用,那么我下面想写一写我认为比较好的JAVA学习流程,记录一下自己的学习历程并提供给想要入门学习JAVA的同学们参考,这其中也包含了我这一年的学习路程。当然对于做过很多年开发的大神来说,这篇文章可能看起来就比较幼稚了,因为本文目的主要是想记录一下我的学习历程并写一写自己的见解,顺便留给大家参考和建议,见笑。


首先有人会说 学习JAVA之前是不是一定要学习C/C++啊?其实不然,C/C++相比JAVA难的多,学过的同学都知道 指针在大家的学习路上简直是梦魇,而且做C/C++开发室一辈子离不开指针的,因此JAVA作为一个封装的十分完善的语言,指针这种比较棘手的工具演变为对象了,而且做JAVA开发我们关注的并不是内存,因此相对而言学习起来容易。那说到这里 大家有这种想法无非是现在多数学校的计算机专业 的第一门课程通常都是C语言程序设计 ,而大家目前所学的C语言其实都是十分简单的没有技术含量的C语言罢了,因此会认为要学习其他语言 必须先学C语言(或许会有帮助,但是你会发现从面向过程转到面向对象是个很吃力的过程,反不利于你学JAVA)。多学习一下也有好处,也许今后你会换方向呢也说不定。 其实在国外,有很多学校是以Python 位入门基础的,Python学起来也是十分容易(别跑题了  还是继续说吧)。


那么学习JAVA,就要先了解JAVA;JAVA不仅仅指一个语言,也是一个平台。通常会听说 JAVA 阵营  和.NET阵营 这是两大web开发平台,就不能简单地说JAVA是一门语言了。

JAVA也分为三个部分  J2SE  J2EE  J2ME  , '2' 就是 'to' 意思分别是 JAVA标准版  JAVA 企业版 JAVA 微型版 ,说到这里有人会问 这是代表学JAVA以后的三个方向嘛?其实不是这样的。这三个版的JAVA基本语法那些都是一样的,唯一不一样的是他们的API(application interface) 就是官方提供的类库 是不一样的,但是请大家注意,J2SE是后者的基础,因为

一切有关JAVA的开发,其最底层 还原到最简单的部分是用的J2SE的内容。

J2SE包括 JAVA面向对象基础 异常 IO 线程 Swing Socket编程 XML 等。按照我的理解 就是 你学会了J2SE的基本知识  做一些简单的桌面程序  是没有问题的(贪吃蛇啊,写字板啊等。我也有作品文章结尾提供链接),socket和多线程能够让你编写简单的有关通讯的程序例如山寨QQ什么的。

那么J2EE呢?J2EE之所以叫企业版 就是因为 真正的企业级开发  用得比较多的是 J2EE  也就是web开发;包括JSP,Servlet,JAVABean JDBC Spring Struts Hibernate mybaties JavaMail等框架(新手看到这么多奇怪的词先不要蒙,等大家学到了就知道是什么意思了)。大家现在上网看到的网站有很多是JAVA做的,有人会讲 网站明明是html css js做的啊,你说的是静态网页,网站的存在 是要提供给用户使用的,既然有用户就存在 交互,例如我现在在CSDN博客里发表了这篇文章  这个功能单纯用静态网页是不能实现的,需要用JAVA来处理这些信息。学会了这部分的知识 (说是学会了,其实现在绝大多数人只是停留在熟练上,真正精通的人还是少数) 就能做一些简单的小网站,熟练使用两三个框架后就能去参加小型单位的面试 并做做项目了。


J2ME这个技术说实话 800年没人用的,从前是用来开发移动端程序的(手机软件),现在做的最多的是android开发 (IOS需要用object-c)。所以这一块儿大家无需学习。有兴趣做移动端开发的同学去学安卓就行了。


那么学习流程呢,我大致总结一下,并写一下学习过程中我觉得比较有帮助的地方,尽量让大家少走弯路,也警醒一下自己 今后学习的时候少走走弯路。


首先给大家一个学习计算机编程的理念:先知其然而不知其所以然,基础牢固后,必知其所以然。带着这个理念学对大家有帮助的。

基础永远是最重要的,基础学多少遍都不为过,J2SE是大家的入门基础,一定要学好(算不上精通,但是一定要熟练)。这里说的学好,不是指大家在学校学JAVA然后考个试90多分就算是好的了(记住考试成绩高说明不了你技术好,但是成绩很差说明技术绝对不好。通常有很多人考试分很高,但是到了做课设编程序什么也不会大有人在),真正算得上学得好的人,是能够在平时的联系中总结规律,能够轻松debug,独立完成一个小程序的。推荐大家看传智播客的JAVA基础视频(毕向东的张孝祥的都不错,我看的是老毕的感觉效果很好),书的话推荐大家看 JAVA学习笔记(林信良的),有很多人推荐JAVA核心技术我觉得不科学,这本书难度很高,说实话这本书看透了都能去做框架了(如果你很有自信,你可以去借一本看看)。   学习的时候,可以先看视频,边看视频边练习,然后回过头看书。如果大家一味看书,有时候看到比较难的地方看不进去,或者书上有时候不会提供源代码 这样对于新手来说学习进度会很慢。要循序渐进,基础的地方要学会了,会自己编了,明白了。然后再去学下一个知识点,不要为了图新鲜跳过很多重要的知识点。 一般来说要是放假在家的话。一个多月就能学完JAVA基础,在学校可能事情比较多不能连贯的学,那就每天晚上学一两个小时,效率还是有的。注意看视频的时候最好记一些笔记。  开发工具  一开始建议大家用记事本就好(notepad++  不要用微软自带的),然后后面学习深入了,用eclipse编程。主要是让大家养成一个好习惯。从基础的开始学。否则脱离开发工具了大家又是什么也不会了。


接下来你有了J2SE基础,就该你选一下你的方向了。JAVA程序员除了做web开发,还有一个就是android开发。我学长就是做安卓开发的现在在北京工作薪资不低呢。因为近两年做移动端比较火,而且做web开发的人过于饱和,所以这里还是请大家自己斟酌,各有各的好处。但是提醒一句,如果你打算深入学习一个方向,就不要想着中间换回去或者半道儿学点另一个,这样做十分浪费时间,有的人可能说多学点总是有好处的,我强调一下,作为一个初学者的话,基础知识不牢固,学东学西,要是不是天生的人才,到头来只能一瓶子不满半瓶子晃,两头都学不精。如果大家想开拓视野多学学的话,建议在一个方向上多学学(比如做web开发的 多接触一下linux,学学AJAX等一些web服务端方面的技术),要想都学呢也不是不行,建议你在一个方向上学到一定程度了以后,再去学另一个,不要一上来就一边学web一边学android(我其实就是这么干的所以一开始耽误了两个多月的时间到头来android没学好web进度也很慢),比如等你SSH三大框架的基本使用会了,能做一个小网站,然后去学android;学安卓的呢,就安心学安卓布局啊,四大组件啊,做一些小东西,然后学学通信,有了一定经验再去学一点web,那个时候就不会耽误你的正事儿了。


我选的是web,(android最近也在做因为班里面老师给我们了一个android项目,所以也要学)。web的话 可能有很多东西上来会让大家比较蒙,很多API类大家不明白。这里我再次推荐大家看看韩顺平的教程http://pan.baidu.com/s/17sOzd  建议大家学J2EE之前要学会一点html css js 的知识(花上一个礼拜看看传智播客的那些前端视频)然后巩固一下TCP/IP协议,也就是请求响应那一套,再去学J2EE(有好处的,否则只会JAVA编程的话有很多概念你都不知道学起来很累) 先会使用tomcat  学习JSP,然后学习Servlet.这两个学的时候要多调试(404是初学者遇到最多的我当初为了404还总结了一套404的错误可能,建议大家也总结),开始可能不太适应这些编程习惯和用法,多尝试一下就好的了。

单纯学这俩还做不了很好的网站,学习一下数据库吧,比较经典的中小型数据库有MS SqlServer 和MySql ,在网上看看这两个数据库怎么安装。建议大家使用MySql  因为以后大家在linux上做开发  是用不了MS SqlServer 的(好像有linux版的但是不好用)。学一些基本的sql语句,然后尝试结合JSP  Servlet去做更高级的东西。学到这里,大家要有一个意识了,就是变成习惯,通常 我们写程序是要有层次的,不能把代码都放在一个地方,第一是方便管理,第二是效率的问题,因此这里要求大家学一下MVC的概念,利用MVC的编程思想做一些小的程序,并形成习惯。

MVC用的差不多了,那么大家就开始学学框架吧。按说前面所有的这些学起来,我大概是花了半年(在学校效率很低,特别是有段时间犹豫不定学web还是安卓导致浪费了很多时间,甚至还花时间去学了一阵子C++,所以在此提醒大家前期初学的时候方向一定要明确不可动摇,想多学点知识等你的方向根基问了再说),差不多到暑假了。学习框架大家会有一个共同的问题:看不懂( 当然这句话是给水平一般的同学说的,有的同学理解起来快学起来快可能看一个demo就懂了,有的人需要多写一个多看几个,这都不是问题)。所以这时候大家要机智,就像我开始说的 先知其然而不知其所以然。虽然你看不懂代码和配置的具体意思,但是通过运行结果你能猜测到,通过你的猜测自己配置一下验证一下自己的想法,然后去网上搜搜。这个方法十分有效,但是不是主要的学习方法,学习框架我还是推荐大家看看视频,要是整个过程都要自己试也是不现实的。

大家可能觉得框架式多么神奇的东西,其实就是别人封装过的代码罢了,要透过现象看本质,学习了两三个框架后,就尝试把先前的代码改成用框架的。多练习几遍,意在掌握其基本使用。

框架的基本使用掌握了之后,大家可以选择深入的学习一种框架,例如Spring的高阶部分,会比较难,甚至对于初学者用的很少,但是去面试的时候你能很有自信的说自己深入了解了这个框架。多学习总是有帮助的。当然你现在已经有了框架的基本的熟练使用了,如果觉得再学习的话会比较枯燥,可以选择学一些常用web开发的技术,学学JS,JQuery,AJAX技术什么的,简单好学,还能做出成果,这个时候学起来就比较快了。然后做做分页,级联,XML读取什么的小功能,就可以自己开发一个相对大一点的网站了。

再往后建议大家学习linux系统,装个虚拟机,先学习基本操作,然后尝试部署一些JAVA开发环境,shell.简单的接触一下linux。然后你可以去租个服务器(一般系统都是linux),自己部署一下玩玩。有个服务器的好处是要是你去面试的话,直接给HR看你的作品就好了。想做linux系统管理员或者linux编程的同学就请深入学习linux。

有兴趣的同学还能学学爬虫,学学搜索引擎(前提是要巩固算法和数据结构)。

要是你想深入学习框架,就深入学学Spring(很多企业会有自己的框架但多数都是持久层框架,Spring用的很多)。然后自学一下23种设计模式(设计模式属于思想上的东西,但是要有实践的配合才能完全理解,我没有深入研究过我不深入探讨了)。这一块儿要是能搞懂了,那就尝试读Spring源码,然后自己开发框架吧(估计需要相当长的一段时间,前辈们都说10年精通  估计说的就是这)。

到这一步基本就一年了,因为我是在学校,事情很多学起来很慢,要是新手们有足够多的时间和耐心,肯定学得更快。我的进度也就差不多到熟悉框架和简单使用linux这块,至于今后的方向呢我还是想做web开发。有想做web开发的同学可以一起学习学习,共同进步。

分享一下我的部分作品  有J2SE的还有J2EE的

J2SE:

写字板 http://download.csdn.net/detail/rpgmakervx/7803207

贪吃蛇 http://download.csdn.net/detail/rpgmakervx/7803203

 魔塔  http://download.csdn.net/detail/rpgmakervx/7978975

J2EE:

购物车  http://download.csdn.net/detail/rpgmakervx/8304289

聊天室  http://download.csdn.net/detail/rpgmakervx/8433361




评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值