Java之美之Java学习方法


前段时间逛论坛,总会有很多新手很迷茫,问到:到底该怎么学好Java,这个问题很重要,尤其对于像我们这样大多数都是靠自学的人来说,找到一个好的学习方法至关重要!于是乎,我就给大家回答了很多,突然间想到了很久以前,看过的马士兵老师的一篇关于Java自学之路的文章,于是在网上找了找,结果找到了,马士兵老师的视频,是我目前最为推崇的Java学习视频,虽然还有很多,如张孝祥、黎活明、李兴华老师等,他们的都很好,本人曾经都看过,李兴华老师的基础视频,黎活明老师的EJB,都是经典!但是本人强烈推荐老马的(尽管老马有时讲的实在是太细,连他自己都说之前的80%,都可以忘记...甚至:接下来的你可以不听...<此处省略N个字>),为什么相信马士兵老师?

1、马士兵老师有多年的开发经验,十几个大型项目经验(百度百科有介绍)。

2、老马比较幽默,很多的时候听着都能让人大笑(经典语录:1、豆芽长得再高,它也是颗菜!我想怎么吃,就怎么吃!2、你是生长在石器时代的人吗?...你是生长在...)。

3、老马的普通话比较标准,听着舒服,清华的苗子,霸气侧漏!

4、学技术的同时,能学到很多道理。(1、给你一辆自行车,先骑着,再去研究它的原理。2、三流公司卖产品,二流公司卖服务,一流公司卖标准)

5、老马讲课有一个非常完整的word文档,上面明确写了讲课内容,重要程度,而且他会在讲课的过程中明确哪个是重点,哪个不是重点,这样我们就可以有选择性的学习。举个例子,比如说讲到spring框架的时候,其实每个框架都希望开发者用自己来实现所有的功能,所以像spring它也提供自己的MVC,也提供包括持久层、View层的实现,但事实是持久层和view层我们大多时候会选择其他的框架来做,如hibernate、ibatis、struts等,所以,对于spring来说,其它方面就不能说成是重点(当然你要全面学习spring,这些你都应该学好)。不过老师给你讲明白这些后,怎么学习,看你了。

当然,这只是我的个人建议,大家可以自己选择喜欢的老师。本章系Java之美[从菜鸟到高手演变]之Java学习方法。希望广大学子能尽早找到适合自己的学习方法,早日打开技术的大门,学好技术,创造未来!

在阅读过程中有任何问题,请及时联系:egg。

邮箱:[email protected] 微博:http://weibo.com/xtfggef

如有转载,请说明出处:http://blog.csdn.net/zhangerqing

以下文章来自尚学堂官网,经本人整理,不过有些链接已经打不开了,不过,想得到上面的资源的话,自己去尚学堂的官网(http://www.bjsxt.com)找就行了。

[原创 - 尚学堂科技 - 马士兵老师]

JAVA自学之路 一:学会选择

[转载请注明出处:http://www.bjsxt.com/zixue/zixuezhilu_1.html]

为了就业,不少同学参加各种各样的培训。

决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机、嵌入式、游戏、3G、测试等。

那么究竟应该选择什么方向呢?

我的意见是,不要太过相信各种培训机构或是抢手文章的说法(包括我),当你要走向社会的时候,就不要再把自己当成学生,不要把自己的将来交给别人,学会运用自己的眼睛去观察,去了解这个世界吧。 每个培训机构都会宣传自己的好处,并不能说明大的趋势。一些新闻文章很有可能是枪手写的,不必太过相信。国外背景的教师和课程,未必适合你。

那么怎么才能确定自己将来的方向?如何才能从纷繁复杂、或真或假的数据世界中挖出一条路?

我讲一个通过招聘网站的观察方法。

可以到各种招聘的网站上查询信息(可以到google上查询招聘的网站),例如:

http://www.51job.com

http://www.chinahr.com

http://www.zhaopin.com

以及csdn的招聘频道等

还有一个网站也不错,http://www.jobui.com,综合了各大招聘网站的数据。

这些数据都是最真实不掺假的原始数据,你可以每隔一段时间搜索一次,一些规律就会被总结出来了。

比如说我在http://www.jobui.com中搜索java,全国大概提供了3万个职位。

然后要多翻几页,这样不仅能够看清楚大概有多少是有效的职位,而且还可以看清楚用人单位最关心的技能是什么,这个很重要,决定着你将来要花多少时间和精力在特定的知识点上,比如说swing,搜了一下,全国只有700个左右的职位,仔细读了一下,也并非全是有效的职位,花太多时间和精力在这个上面就不值得了,当然自己感兴趣或者为了研究的话另当别论。不过如果是为了快速的就业,把太多时间和精力花在很多职业生涯的前一、二年用不到的知识上就太可惜了。

同时,并非某一个行业的职位数目少,就不能当作一个方向进行选择,比如.NET,我搜索到的职位数是1.6万左右,比java少,是不是就选java了呢?不一定,因为java职位虽然多,但是可能竞争者可能也多,有些方向虽然职位数不多,但是和你竞争这些职位的人数量也少,不见得就不能选择。

 

不过,如果某一个方向的职位数目过少,你可就要小心了,选择这样的方向风险会非常大,如J2ME。我个人觉得java/J2EE、.net、嵌入式开发是不错的三个方向。

如果非要在java和.net中选择的话,我个人是推荐java的,原因:

1:Java能够开发linux、unix服务器上的程序

2:JavaEE和.NET在企业应用方面的关注点是差不多的,但是学习了java如果将来想转到.net上会比较简单,几天的学习然后上手开发应该是问题不大的,但是反之就不行了。

当然如果有了些经验之后,你就会发现语言或者平台不再是技术上的阻碍,一些原理性的东西学到手,然后再加上项目经验,使用什么平台,反而不是最重要的。不过如果非要用一种平台进入企业开发的领域,至少在目前,2007年9月,我推荐java。

完全可以不同意我的观点,但是无庸置疑,如果是为了就业,多到招聘网站阅读阅读职位的信息,对你将来的方向和学习是大有益处的。选择是最痛苦的,看看《天生购物狂》中的刘青云就知道了,不过既然无法逃避,就作出自己的选择吧。每个人都会受到别人的影响,在作出决定之前,要想尽各种办法让自己理性一些吧。这样,你的选择会离正确的方向更近一些。

[原创 - 尚学堂科技 - 马士兵老师]

JAVA自学之路 二:JAVA自学路线图

[转载请注明出处:http://www.bjsxt.com/zixue/zixuezhilu_2.html]

有不少的同学发信给我,和我探讨java的自学过程应该是什么样的,毕竟有很多人因为各种各样的原因不能参加培训。我试着给出自己的见解,抛砖引玉吧。

这个路线图是给那些为了就业的人准备的,如果只是兴趣,不一定照这个走。

这里只是讲了路线图,关于路线中的各个阶段,学到什么程度,如何学习等,可以参考后面的JAVA自学之路七:《路线图明细》。

首先要学JavaSE,这是无庸置疑的。

与此同时,是的,与此同时,和JavaSE的学习同步,建议大家研究一下数据结构与算法

在这儿之后,你可以选择向J2ME、或者Java GUI、Socket编程等方向努力,但是通过第一篇的办法,你可以很容易就将这方向过滤掉(永远不要忘了我们是为了就业),好吧,暂时和它们诀别,还是向着J2EE的方向前进吧。

在JavaSE完成之后,可以试着完成一些小项目,同时关注一下设计模式的内容,不必强求自己能够完全掌握各种细节,往前走吧。

掌握一种编程工具,比如说Eclipse

数据库,可以选择使用Oracle或者MySQL开始。

JDBC,用Java连接数据库。

可以选择在这个地方切入Hibernate,也可以选择在Struts之后。

HTML CSS JavaScript,这些东西是做web项目必需的内容。

Servlet JSP,服务器端必需。

XML AJAX,新的流行趋势不能不了解。

作一些小项目吧。比如BBS、留言系统、学籍管理、商城等等,随便着一些业务逻辑比较简单的来做一做。

Struts,MVC的典型应用

Hibernate,OR Mapping的典范之作。

Spring IOC + AOP, 面向对象 + 面向切面,完善的旅程。

把以前自己的小项目加入Struts、Spring、Hibernate的元素吧。

去研究各种商业项目的业务逻辑吧,才能在你的简历中加入浓重的一笔。

EJB3.0,java在走了很多弯路后的回归之作,值得研究。

SOA,业界铁定的未来趋势,要紧紧跟随。

在后面,我会告诉你每一步的学习方法和学习重点。

[原创 - 尚学堂科技 - 马士兵老师]

JAVA自学之路 三:要动手

[转载请注明出处:http://www.bjsxt.com/zixue/zixuezhilu_3.html]

无论如何,请坚持不懈的动手实验!

学习Java要动手,仅仅是看和听是不能够学好编程的。

总有同学来信问我们这样的问题,说:"老师我看了视频了(下载:http://www.bjsxt.com/download.html),可是怎么一动手就没有任何思路呢?"

对此,我一般都会说不要着急,如果你只是看了视频就想行云流水的话,那老师这些年的锻炼真是白费了,这么多年的苦练才能略有些行云流水的感觉,你一朝一夕就想自己能够达到,不是太奢侈了吗:)

 

作为编程的过来人想一下,当年自己学编程的时候是什么时候有思路的呢?至少也是照猫画虎画了一段时间之后吧,我本人是在某一个领域画虎画了上万行代码的时候才慢慢有自己思路的。就像写作文,要有自己思路总是一般来说要经过几个阶段,首先学习词汇,然后学习造句,然后大量阅读别人的文章,自己模仿着写一些,逐渐的经验积累,才能形成自己的思路。学编程,恐怕也得慢慢的来吧,只是看一看、听一听视频,是不足以学好编程的。所以,动手吧,跟着做,一行一行的跟着敲,一个项目敲完了,比如坦克,再试着加一些自己的功能,按照自己的思路敲一些代码,收获远比干听大的多。如果遇到,暂时对于一些思路不能理解的同学,我一般都会劝告说,动手写,先写代码,量变会引起质变的。而这种质变的确发生过不少次。提醒一句,要理解代码思路之后再跟着敲 ,背着敲,千万不要左边摆着别人的程序,右边自己一个一个子母的写,这就不再是程序员了,成了打字员了。

纸上得来终觉浅,所以:

别问那么多,别想那么多,动手写吧。

[原创 - 尚学堂科技 - 马士兵老师]

JAVA自学之路 四:要事为先

[转载请注明出处:http://www.bjsxt.com/zixue/zixuezhilu_4.html]

对待人生的任何事情都要:抓大放小,要事为先

 

对于一个以前从来没有接触过java的人,java无疑是庞大的,似乎每个领域都可以拓展开来都是一片开阔地,每一个领域要想深入接触到每一个细节所耗费的精力都是巨大的。这个时候大家都胸怀壮志,两眼发光的盯着每一个崭新的知识点,遇见了任何一个知识点都恨不得抠的清清楚楚,明明白白。难道这有什么不对吗?我的意见是,没什么大毛病,但是学习效率太低了!我们推荐的学习方式是:抓大放小,要事为先。比如说学习J2SE的时候,学到GUI这一章,有的同学认为,既然学到这儿了,我们去把SWING细细的了解一遍吧;还有的同学,遇到了在Linux下的Shell编程,就恨不得把Shell先学成专家才肯,或者是才敢,继续往下学习;有没有过这样的感觉,一本书的上册没有学好,觉着下册心里也没底儿,甚至非要把上册复习一遍才敢继续学习。如果你也是这样,要去看看心理医生啦,没准儿会有洁癖的毛病:)。任何事情都要追求完美才敢继续往后进行,是一种性格缺陷。

 

大胆的放弃一些东西吧,有失才有得,把自己有限的、宝贵的精力用在对于就业直接相关的地方,这才是最有效率的学习方式!等你参加工作,有了可持续发展的事业动力和经济基础,有时间有精力闲的没事儿干的时候,再去研究那些其它吧。

 

曾经有一个故事,说得是产能和产量的关系。

一个人喜欢读书,读了一辈子,无所不通,这时候要做任何工作都可以,他的产能到了极致,但是,他老了,即便每天产出大量的东西也不能维持多久了,一辈子的产量并没有多少。另一个人直接工作,忙,天天在机器旁日复一日,做了一辈子,没时间学习和进修,可以想象,产量能有多大呢。人的一生,要锻炼产能,也要及时产出,引擎要转,也要停下来加油,这两者平衡的越好,你的贡献和产量就会越大。如果钻研的东西和产能目标(或者说近期的产能目标)无关的话,要舍得放手。所以,对于SWING,暂时先扔在一边吧。对于shell,对于各种协议过于详细的细节,对于喜欢的游戏编程,对于javascript各种华而不实的效果,都暂时和它们分别吧。一切和我们的直接工作目标关联不大的东西,扔在一边或者弄清楚到足够支持下一步的学习就可以了。

 

那这样岂不是妨碍我成为通晓各种细节的高手了吗?

我一向不认为一个人掌握了很多很多知识点的细节就是高手了,一个人如果告诉你,回字有四种写法,你会认为他是高手吗?毫不客气的说,现在我们所教授的所有知识细节在网上或书中都可以找到,只要你肯花时间花精力去动手试,去钻研,没有什么不能掌握的。struts、spring你能掌握吗?当然能!但是如果把时间花在spring的各种细节的研究上,花在研究中国企业应用不广泛地的spring mvc上,这个精力就太浪费了,而且学习的积极性会受到打击,谁愿意整天泡在细节的蜘蛛网中挣扎不出来呢?谁愿意天天经历风雨却总是不能见到彩虹呢?

 

盖房子,要先建骨架,再谈修饰。

画山水,要先画结构,再谈润色。

认识一台结构复杂的机器,应该首先认清楚脉络,然后再逐步认识每一个关节。

为了应付从小学到大学的考试,我们背了各种各样的不应该提前掌握的细节,同时也养成了见到细节就抠的学习习惯。而现在,是到改改的时候了。

 

请在合适的时间,做合适的事情吧。

把时间和精力花在作项目上面,花在写作品以及锻炼解决问题的能力上面吧,这是迈向高手的正确的而且快速的方向。

 

我一直不认为一个课程提供了很多很多的细节就是优秀的价值高的课程了,掌握必要的细节,这个不含糊,至于其他,或者通过视频给出(这样可以给出更多的细节,但是不占上课时间,课上只讲重要的、必要的细节知识),或者在掌握了自学的能力后自己能够查出,这才是正途。当你看书到某个地方暂时不理解的时候的,暂时放手吧,追求一些行云流水、自然而然的境界吧,只是不要停下前进的脚步,不要被大路旁边的支根末节干扰了你前进的行程,项目,真实的项目,这才是目的,就在不远的前方。

 

陶渊明读书,叫做不求甚解,但他是大诗人。

诸葛亮读书,总是观其大略,但他是大政治家。

作研究的,是在确定了方向之后才详细的研究深入的东西。

到了庐山,脉络形状扔在一边,盯着一棵棵小草、一粒粒石子的看,怎么样才能识得真面目

作为应用型的人才,是研究回字的n种写法还是抓紧时间向着主要应用的方向努力,请自己作出抉择。

项目驱动自己的学习吧,当把握了技术的脉络之后再去补充细节的研究,是正途。

这辈子就不研究其他的方向了吗?

当然要研究!但是在将来合适的时间再说吧。

所以,抓大放小,要事为先!

那么,在JAVA的这些课程中,哪些才是大,才是要事呢?请继续读下去。

你可能感兴趣的:(Java之美之Java学习方法)