自学Java,靠的就是自己!!!

[转]自学Java,靠的就是自己!!!
本文系由松迪科技首席技术专家田雪松老师经过多年技术研发与教学实践的磨砺总结出来的经验,对初学Java的学员十分有益!

我的JAVA自学之路 致后来者
很多人都写过学JAVA的经历,比如 先学 JAVA 语言,然后 JSP、Servlet, 最后J2EE/JEE(EJB,Spring,Hibernate,JSF)。但对新手来说操作起来还是有些难度的。学java没有绝经,但是按照一定的顺序可以避免走弯路。利用网络资料更是自学不可以缺少的手段。我认为,学好JAVA/JEE至少要看的书和看书顺序为:
(1)Think in Java(Fourth Edition)-->(2)The Java EE 5 Tutorial(Third Edition)-->(3)Pro Spring-->J2EE design and development-->(4)Core J2EE Patterns(Second edition).

在看这些书的同时,要用eMule 软件下载视频配合看(传智播客的java系列不错)。

几个好的java 网站: (1)java.sun.com (2) springside.com (3)csdn.net的java频道 (4)jdon.com (5)javaeye.com

我最早接触java是1999年(我2001年大学毕业),由于当时流行的是 VC/MFC,我不是计算机专业学生,也没有人指导,我花了至少4年才理清MFC头绪(我第一次学MFC没有学懂,然后有人推荐我学C++builder,我很快上手,然后再转学MFC就比较明白了,直到看了<<深入浅出MFC>>才恍然大悟)。
由于我自学了C和C++,所以,对其它语言就不太感兴趣。当我第一次接触java,我买了当时的Jbuilder 安装试用,结果在我的586机器上慢的像蜗牛。我想这个语言可能不是我想要得,而且当初java主要用来做applet。后来就放弃了,全面转向C++。

一般认为Java 1995年出来,2003年应用全面爆发,我在2006年8月才又开始真正开始重新学习java。(未完代续。。。)

          只靠自学是否行,是否有必要花费很多MONEY做个专业培训,这是很多想学习JAVA的朋友
最感觉头疼的地方,但不管怎样有很多人选择了花费动辄数以万计的费用去学软件开发,结局不想评论,很多人心知肚明了已经。大家 都想找个学校,通过学习,然后找工作(不知道大家是否觉得上大学是不是也是一样的思路,但结局呢?),这就是非自学人士走的思路。

此种心情可以理解,但你是否考虑过通过培训找工作的可行性,是否考虑过我们上大学为什么失败,大家都聚集到一个教室里,听彼此没有区别的课,读完全相同的教科书,拿一个版式的毕业证,我们为什么找不到工作,找不到好工作?就是因为我们太一样了,就象流水线上造出的啤酒瓶没有任何区别,用人单位还没有把我们看做机器之前,我们已经提前把自己看做机器,看做编码的机器,看做工作的机器了,我们的愿望虽然都是做软件开发的工作,但我们为什么必须要读一样的书,要做一样的例子,要听一样的课?难道软件开发真要求大家这样吗?难道真的仅仅是因为我们少读了几本书,少写了些简单的不能再简单的代码所以才找不到软件开发相关的工作的吗?如果你仅仅是个入门你不工作之前对JAVA的应用水平最高能高到哪里?真的能赶上那些工作了N年甚至1年的货真价实的程序员吗?

 

我因为工作的原因认识了很多参加培训学习的朋友,我发现他们很多人在到培训之前从没尝试过:去了解软件工作,去了解软件行业,90%多的人从没有应聘过软件开发的工作!!!一些人不知道软件企业到底需要什么样的人,自己跟软件企业的用人要求到底差距在哪里,自己到底该学什么,自己要多长时间?等等这些最最基本的问题都没有调查,分析,研究过!他们只有一个最淳朴,最简单的愿望,通过培训学校学好JAVA,然后找个好工作,却从没想过其他的!用人单位是不喜欢淳朴的人的,一个人不知道怎么规划自己,不知道怎么保护自己的利益,怎么能让企业相信他能为企业的工作做好计划,能切实实现企业单位的利益呢?

有人可能会反驳我,说不学好怎么去找工作?这里的一个场景也许对大家有所启发:

有一天面试单位的程序员,最后进来一个看上去很憨厚的小伙子,脚穿一双比较破的球鞋,手里拿着个小本子,另一只手里纂着支笔,表情特别的来到我面前,问我:他可以坐下吗?我示意他可以(当天的面试者中他是唯一问:他可以坐下吗的人),接下来我们开始了下面的谈话:
===========================================================================================================================
我:你知道我们招什么样的人吗?

小伙子:知道,**公司这么有名,我很早就想到这里工作了,现在公司需要熟悉JAVA,数据库和财务知识,做过财务软件的程序员对吗?

我:那你为申请这份工作做了哪些准备工作?你觉得你为什么可以做好这份工作呢?

小伙子: 说心里话,我申请这份工作也没有把握,因为我刚毕业,如果你觉得我有哪些差距我可以记下来,以后提高,说着他把小本 子拿出来铺到桌子上,但是我的确已经做了我能力所及的最大努力了,我是大3的时候通过老师知道的JAVA,当时我问老师 如果我把C学好了是否可以找到份好工作,老师给我推荐的JAVA,说JAVA比较有前景,所以我就学了,因为我们学校的机房 开放的时间有限而且没安装JAVA软件,所以我没有练习的机会,学校里也不开JAVA课程,我只能去离我们学校的新华书店 每天在那里站4-6个小时,从最基础的JAVA入门开始,一开始看不明白就用纸抄下来好好研究,反复看,实在不明白就放一
放,看另外的书,每天看书我都记很多笔记,记很多名字什么B/S什么Applete什么的,然后抄书里面的例子,因为我没有 机器可用,一般我都是在本子上想着写,就当上机锻炼了,这样我看了大概半年的书,也在本子上练习了很多例子,我开始 找兼职的工作,找到的第一份工作是做个证券类的网站,因为我动手能力差,那家公司安排我翻译JAVA技术的英文资料。
我上午翻译资料,下午在哪里练习2个小时,我没给那家公司要工资,因为我太需要一台机器锻炼一下了,我怕他们不要 我。这样我在那家软件公司做了半年就到了现在,我只懂得点股票证券的业务知识,也跟同事学了些证券类产品开发的经验 但我没有财务方面的知识,不知道行不行?我已经记了10本JAVA技术笔记了,我在本子上练习的JAVA代码我都记不清楚了 我现在又经过半年的公司实习,我想我应该可以胜任公司的工作的......如果你觉得不不行,你能给我提点建议吗?我会永远记住你的帮助的。最后他补充到。

这个小伙子走后,技术部跟人力资源部商议以后,录取了那位小伙子,现在他发展的很好。

其实如果你是初学者,你被企业认可的话,往往就是你的学习过程,因为你没有工作过,或没有做过软件类似的工作,用人单位只能从 你学习JAVA的过程中,看你是否热爱JAVA,是否能很好的处理学习问题,是否主动的克服困难,是否积极主动,有学习能力。
而你本人也是在学习的过程中,除了积累必要的技术知识外,还培养了自己独立学习的能力,独立研究技术的能力,独立发现问题解决问题 的能力,也学会了如何在论坛上,在现实中向别人请教,同时也培养了比学校学习更优秀的学习方法。

我个人觉得,学习JAVA要依靠自己的努力,要多读代码多写代码,多利用网络资源,多总结,多整理,形成适合自己的学习方法,大学里 那种通用的学习思路和学习方法,学JAVA是行不通的。

学习别太急功近利,别奢望让人教一下,所有问题就解决了,更没必要花很多钱去专门学软件开发,软件开发就是个职位,就象开车 学习是必要的,参加学校类学习也是必要的,但是没必要很夸张的用N千大洋或是N万大洋另加动辄小半年的时间去专修,那么学JAVA就有 些过犹不及,显得沉重了。

多去网上认识些比你优秀的技术人员,谦虚的向别人请教,跟人家做朋友,这样你可以学到很多书本上没有的东西。

学Java的一点忠告
严格来说,Java其实并不能算是一种编程语言,而是一门十分庞杂的技术。对于一个初学者来说,面对纷繁复杂的新技术,往往会不知所措。我在这里提些建议:
  1、一定要系统地学好Java语言基础;
  好多初学者,仗着自己有C语言基础,上来就直接学JSP。但其实C和Java之间的区别还是很大的。很多人JSP已经学得很熟了,但对于==比较和equals方法比较之间的区别还没搞明白。这样,当程序出现错误时,很难定位。
  前两天看到有人在写JSP代码时出了错误,他想以一个用户名登录系统,但怎么都不能登录进去,他的代码是这么写的:
if(request.getParameter(“name”)==”system”) target=”/success.jsp”;
else target=”/errors.jsp”;
  看上去一点错误都没有,但就是只能进入errors.jsp。如果他明白==与equals方法是区别,明白引用与对象的区别,就不会出这个问题。而这种问题,往往会让人觉得无法解决,浪费很多时间。
  当你学了很多的Java技术后,你会发现,基础远比各种技术重要。
  Java世界里有很多开源框架,比如Struts、Spring和Hibernate等等,太多了,每年都有新的东西出来。我基本上都可以做到,它一出来,我就能一两天搞明白它是怎么回事。而很多人要费上很多力气才能明白。为什么?因为我了解底层最基本的知识,我基础好。所有的框架都是建立在这些基础知识之上的,所以我甚至马上也能编写出与它一模一样的框架来。
  所以基础真的是最重要的,一定要学好!
2、一定要培养自学能力;
  可以说,我是看着Java长大的,呵呵!
  Java发展的速度真是太快了。从96年正式发布JDK1.0以来,今天已经发展到了6.0,而JDK7也正在研发中。你从任何书上学来的知识,都是已经过时了的知识。因为英文的东西出来到国内写成书稿时,新技术就又已经出现了。所以你必须时刻保持学习的态度,否则你就不可能走在技术的最前端。
  所以,我并不建议去书店买书。我基本都是直接到技术的源头去找资料。比如,我在学习Java时,是直接到Sun公司的网站上去找资料;学习Struts时,是直接到apache上找资料等等。所以,我基本上没怎么买过书。我买过一本《设计模式》,是因为我比较尊敬Gamma这个作者。
  只有这样,我们才能了解技术发展的最新情况,才不会落后。开始时,我的英文也不好,但看多了,慢慢地就习惯了英文的一些表达方式。久而久之,看英文的网页就不觉得有多困难了。
  只有拥有了自学能力,我们才可能在新技术出现时不至被抛在后面!
3、一定要有钻研精神;
  因为工作原因,我给许多所谓“名企”的软件工程师做过技术培训。让我惊讶的是,他们中很多人写程序都是按照一定的模式写,但从来不知道为什么。尤以做日企外包软件开发的程序员最为明显。
  最典型的是有些人在写数据库操作的程序时,知道必须要按照格式关闭连接,但从来都不知道为什么要按照那个格式写出来。其实这也没什么,只要你写出来的程序不出错就行了。但从个人发展来说,谁愿意总在做简单的重复性劳动呢?如果你真想成为技术高手,能够像你现在的技术经理一样做系统架构就必须要有钻研精神,敢于去了解底层那些你从未接触过的东西。
  多的不想说了,如果你现在想开始学Java,或者已经有些Java基础了,我觉得最为重要的还是先把基础打好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值