马士兵java学习之路.docx
《马士兵java学习之路.docx》由会员分享,可在线阅读,更多相关《马士兵java学习之路.docx(14页珍藏版)》请在冰豆网上搜索。
马士兵java学习之路
作者:
马士兵老师
目录
JAVA自学之路一:
学会选择1
JAVA自学之路二:
JAVA自学路线图2
JAVA自学之路三:
要动手2
JAVA自学之路四:
要事为先3
JAVA自学之路五:
问题解决之道4
JAVA自学之路六:
项目的自学7
JAVA自学之路七:
路线图明细8
JAVA自学之路一:
学会选择
我个人是推荐java的,原因:
1:
Java能够开发linux、unix服务器上的程序
2:
JavaEE和.NET在企业应用方面的关注点是差不多的,但是学习了java如果将来想转到.net上会比较简单,几天的学习然后上手开发应该是问题不大的,但是反之就不行了。
当然如果有了些经验之后,你就会发现语言或者平台不再是技术上的阻碍,一些原理性的东西学到手,然后再加上项目经验,使用什么平台,反而不是最重要的。
不过如果非要用一种平台进入企业开发的领域,至少在目前,2007年9月,我推荐java。
完全可以不同意我的观点,但是无庸置疑,如果是为了就业,多到招聘网站阅读阅读职位的信息,对你将来的方向和学习是大有益处的。
选择是最痛苦的,看看《天生购物狂》中的刘青云就知道了,不过既然无法逃避,就作出自己的选择吧。
每个人都会受到别人的影响,在作出决定之前,要想尽各种办法让自己理性一些吧。
这样,你的选择会离正确的方向更近一些。
JAVA自学之路二:
JAVA自学路线图
有不少的同学发信给我,和我探讨java的自学过程应该是什么样的,毕竟有很多人因为各种各样的原因不能参加培训。
我试着给出自己的见解,抛砖引玉吧。
这个路线图是给那些为了就业的人准备的,如果只是兴趣,不一定照这个走。
这里只是讲了路线图,关于路线中的各个阶段,学到什么程度,如何学习等,可以参考后面的JAVA自学之路七:
《路线图明细》。
首先要学JavaSE,这是无庸置疑的。
与此同时,是的,与此同时,和JavaSE的学习同步,建议大家研究一下数据结构与算法。
在这儿之后,你可以选择向J2ME、或者JavaGUI、Socket编程等方向努力,但是通过第一篇的办法,你可以很容易就将这方向过滤掉(永远不要忘了我们是为了就业),好吧,暂时和它们诀别,还是向着J2EE的方向前进吧。
在JavaSE完成之后,可以试着完成一些小项目,同时关注一下设计模式的内容,不必强求自己能够完全掌握各种细节,往前走吧。
掌握一种编程工具,比如说Eclipse。
数据库,可以选择使用Oracle或者MySQL开始。
JDBC,用Java连接数据库。
可以选择在这个地方切入Hibernate,也可以选择在Struts之后。
HTMLCSSJavaScript,这些东西是做web项目必需的内容。
ServletJSP,服务器端必需。
XMLAJAX,新的流行趋势不能不了解。
作一些小项目吧。
比如BBS、留言系统、学籍管理、商城等等,随便着一些业务逻辑比较简单的来做一做。
Struts,MVC的典型应用Hibernate,ORMapping的典范之作。
SpringIOC+AOP,面向对象+面向切面,完善的旅程。
把以前自己的小项目加入Struts、Spring、Hibernate的元素吧。
去研究各种商业项目的业务逻辑吧,才能在你的简历中加入浓重的一笔。
EJB3.0,java在走了很多弯路后的回归之作,值得研究。
SOA,业界铁定的未来趋势,要紧紧跟随。
在后面,我会告诉你每一步的学习方法和学习重点。
JAVA自学之路三:
要动手
无论如何,请坚持不懈的动手实验!
学习Java要动手,仅仅是看和听是不能够学好编程的。
总有同学来信问我们这样的问题,说:
“老师我看了视频了,可是怎么一动手就没有任何思路呢?
”对此,我一般都会说不要着急,如果你只是看了视频就想行云流水的话,那老师这些年的锻炼真是白费了,这么多年的苦练才能略有些行云流水的感觉,你一朝一夕就想自己能够达到,不是太奢侈了吗:
)
作为编程的过来人想一下,当年自己学编程的时候是什么时候有思路的呢?
至少也是照猫画虎画了一段时间之后吧,我本人是在某一个领域画虎画了上万行代码的时候才慢慢有自己思路的。
就像写作文,要有自己思路总是一般来说要经过几个阶段,首先学习词汇,然后学习造句,然后大量阅读别人的文章,自己模仿着写一些,逐渐的经验积累,才能形成自己的思路。
学编程,恐怕也得慢慢的来吧,只是看一看、听一听视频,是不足以学好编程的。
所以,动手吧,跟着做,一行一行的跟着敲,一个项目敲完了,比如坦克,再试着加一些自己的功能,按照自己的思路敲一些代码,收获远比干听大的多。
如果遇到,暂时对于一些思路不能理解的同学,我一般都会劝告说,动手写,先写代码,量变会引起质变的。
而这种质变的确发生过不少次。
提醒一句,要理解代码思路之后再跟着敲,背着敲,千万不要左边摆着别人的程序,右边自己一个一个子母的写,这就不再是程序员了,成了打字员了。
纸上得来终觉浅,所以:
别问那么多,别想那么多,动手写吧。
JAVA自学之路四:
要事为先
对待人生的任何事情都要:
抓大放小,要事为先
对于一个以前从来没有接触过java的人,java无疑是庞大的,似乎每个领域都可以拓展开来都是一片开阔地,每一个领域要想深入接触到每一个细节所耗费的精力都是巨大的。
这个时候大家都胸怀壮志,两眼发光的盯着每一个崭新的知识点,遇见了任何一个知识点都恨不得抠的清清楚楚,明明白白。
难道这有什么不对吗?
我的意见是,没什么大毛病,但是学习效率太低了!
我们推荐的学习方式是,抓大放小,要事为先。
比如说学习J2SE的时候,学到GUI这一章,有的同学认为,既然学到这儿了,我们去把SWING细细的了解一遍吧;还有的同学,遇到了在Linux下的Shell编程,就恨不得把Shell先学成专家才肯,或者是才敢,继续往下学习;有没有过这样的感觉,一本书的上册没有学好,觉着下册心里也没底儿,甚至非要把上册复习一遍才敢继续学习。
如果你也是这样,要去看看心理医生啦,没准儿会有洁癖的毛病。
任何事情都要追求完美才敢继续往后进行,是一种性格缺陷。
大胆的放弃一些东西吧,有失才有得,把自己有限的、宝贵的精力用在对于就业直接相关的地方,这才是最有效率的学习方式!
等你参加工作,有了可持续发展的事业动力和经济基础,有时间有精力闲的没事儿干的时候,再去研究那些其它吧。
曾经有一个故事,说得是产能和产量的关系。
一个人喜欢读书,读了一辈子,无所不通,这时候要做任何工作都可以,他的产能到了极致,但是,他老了,即便每天产出大量的东西也不能维持多久了,一辈子的产量并没有多少。
另一个人直接工作,忙,天天在机器旁日复一日,做了一辈子,没时间学习和进修,可以想象,产量能有多大呢。
人的一生,要锻炼产能,也要及时产出,引擎要转,也要停下来加油,这两者平衡的越好,你的贡献和产量就会越大。
如果钻研的东西和产能目标(或者说近期的产能目标)无关的话,要舍得放手。
所以,对于SWING,暂时先扔在一边吧。
对于shell,对于各种协议过于详细的细节,对于喜欢的游戏编程,对于javascript各种华而不实的效果,都暂时和它们分别吧。
一切和我们的直接工作目标关联不大的东西,扔在一边或者弄清楚到足够支持下一步的学习就可以了。
那这样岂不是妨碍我成为通晓各种细节的高手了吗?
我一向不认为一个人掌握了很多很多知识点的细节就是高手了,一个人如果告诉你,回字有四种写法,你会认为他是高手吗?
毫不客气的说,现在我们所教授的所有知识细节在网上或书中都可以找到,只要你肯花时间花精力去动手试,去钻研,没有什么不能掌握的。
struts、spring你能掌握吗?
当然能!
但是如果把时间花在spring的各种细节的研究上,花在研究中国企业应用不广泛地的springmvc上,这个精力就太浪费了,而且学习的积极性会受到打击,谁愿意整天泡在细节的蜘蛛网中挣扎不出来呢?
谁愿意天天经历风雨却总是不能见到彩虹呢?
盖房子,要先建骨架,再谈修饰。
画山水,要先画结构,再谈润色。
认识一台结构复杂的机器,应该首先认清楚脉络,然后再逐步认识每一个关节。
为了应付从小学到大学的考试,我们背了各种各样的不应该提前掌握的细节,同时也养成了见到细节就抠的学习习惯。
而现在,是到改改的时候了。
请在合适的时间,做合适的事情吧。
把时间和精力花在作项目上面,花在写作品以及锻炼解决问题的能力上面吧,这是迈向高手的正确的而且快速的方向。
我一直不认为一个课程提供了很多很多的细节就是优秀的价值高的课程了,掌握必要的细节,这个不含糊,至于其他,或者通过视频给出(这样可以给出更多的细节,但是不占上课时间,课上只讲重要的、必要的细节知识),或者在掌握了自学的能力后自己能够查出,这才是正途。
当你看书到某个地方暂时不理解的时候的,暂时放手吧,追求一些行云流水、自然而然的境界吧,只是不要停下前进的脚步,不要被大路旁边的支根末节干扰了你前进的行程,项目,真实的项目,这才是目的,就在不远的前方。
陶渊明读书,叫做“不求甚解”,但他是大诗人。
诸葛亮读书,总是“观其大略”,但他是大政治家。
作研究的,是在确定了方向之后才详细的研究深入的东西。
到了庐山,脉络形状扔在一边,盯着一棵棵小草、一粒粒石子的看,怎么样才能识得“真面目”?
作为应用型的人才,是研究回字的n种写法还是抓紧时间向着主要应用的方向努力,请自己作出抉择。
以项目驱动自己的学习吧,当把握了技术的脉络之后再去补充细节的研究,是正途。
这辈子就不研究其他的方向了吗?
当然要研究!
但是在将来合适的时间再说吧。
所以,抓大放小,要事为先!
那么,在JAVA的这些课程中,哪些才是大,才是要事呢?
请继续读下去。
JAVA自学之路五:
问题解决之道
既然是学习,就不可能不遇到问题。
既然是自学,就没有方便的和老师探讨的机会。
那么,遇到问题之后,环境配不通,程序调不过,运行不正常,遇见这些恼人的问题的时候,该怎么办呢?
首先我要恭喜你,遇见问题,意味着你又有涨经验的机会了,每解决一个问题,你的JAVA经验值就应该上升几百点,问题遇到的越多,知识提升的越快。
但是总是解决不了也是很恼人的,怎么办呢?
我一般要求我们的学生都是这样来进行的。
当你遇到一个问题的时候:
1:
要仔细的观察错误的现象,是的,要仔细
有不少同学的手非常快,在编译一个程序的时候,报了一大堆的错误,扫了一眼之后就开始盯着代码一行一行的找,看清什么错误了吗?
没有!
有的时候安装软件出问题了,一个对话框弹出来说出错了,马上举手问老师:
“不得了了,出错了,出错了”。
“什么错误?
”
“还没看呢?
”
这都是典型的不上心的方法!
请记住,学习编程并不是一件很容易的事情,自己首先要重视,要用心才可以。
在开发中,仔细观察出错信息,或者运行不正常的信息,是你要做的第一件事。
读清楚了,才能在以后的步骤中有的放矢,哭了半天,总要知道哭的是谁才成。
这里又分三种情况:
A:
错误信息读懂了,那么请进入2步:
要仔细思考问题会出在哪些环节
B:
没读懂,愣是一点没看懂,进入第4步吧:
google
C:
读了个半懂,有些眉目但是不太能确定,第2步和第4步结合着来。
2:
要仔细思考问题会出在哪些环节(重要)
当你读懂了一个问题之后,要好好的思考这个问题可能会在哪些环节上出错。
一辆汽车从总成线上下来,车门子关不上!
哪错了?
你怎么查?
当然是顺着生产线一站一站的查下来。
程序也是一样的,也是一系列语句完成后产生的结果。
写一个网络程序,总是发现服务器端打印不出接收的数据,有几个环节会出错?
仔细分析这个现象的环节:
客户端产生数据->按“发送”按钮->发送到服务器->服务器接收到后打印
这几个环节都有可能会出错: