一位java语言自学者的心得

本人是一名大专毕业生,由于对所学的专业不是很感兴趣,毕业后的工作也不是很顺心,决定换个行业重新开始。了解到Java软件工程师的发展前景很不错,经过一番痛苦的挣扎,最终狠下心来,辞掉了工作,在家里开始自学Java。从2011年3月开始,花了8个月的时间,最后成功在年底于成都找到5k的工作。工作了两年,最近闲下来的时候,回想了一下自己当初自学Java的种种经历,想到还有很多自学Java的同志们还在苦战当中,于是想把我的一些经验分享给你们,让自学Java的同志们少走点弯路,多一点自信,对美好的未来有更多的憧憬。


自学的过程确实很辛苦,由于对编程一点概念都不懂,开始和大多数自学者一样找视频找资料,稀里糊涂的乱看一气。网上凡是有讲Java的视频教程和书籍我大部分都看过,比如大家所熟悉的老师的视频教程(排名不分先后):韩顺平老师,郝斌老师,张龙老师,李腾飞老师,马士兵老师,王勇老师,孙鑫老师,毕向东老师,孔浩老师,张孝祥老师,郭克华老师,赵栋老师,汤阳光老师等等(太多了,有些名字都记不清楚了)。首先感谢这些老师,对于家庭比较贫寒的我来说,经济条件不允许的情况下不能到培训学校学习,但通过老师们的视频被领进了Java的大门。(再次由衷的感谢他们)


其实学习任何一样东西都有一个所谓的学习曲线,一旦经历过后,一切都变得轻松而快乐。对于自学者来说,我总结了以下几个方面的问题:
1.学习的目的不清楚。
2.学习的路线不知道。
3.学习的方法不正确。
4.学习的毅力不坚强。
5.学习的信念不坚定。


首先来谈谈学习的目的,我认为做任何一件事情都有目的的。如果没有目标的话,就不知道自己当前处在什么状态,就会产生可有可无的想法,一旦有此种思想的时候,恭喜你,对于将要完成的事情,你一定不可能实现,所以明确目的是非常重要的。对于自学Java而言,你可能是因为兴趣,就业,考试,工作等等或其他什么原因,但不管是什么原因,请先问问自己,我自学Java的目的是什么,我是因为什么要学习它。只有先把这个重要的问题搞清楚,才不会让你在以后自学的日子里感到迷茫和痛苦。


接下来就是学习的路线问题,这个问题依赖于你学习Java的目的而定的。我们知道搞Java开发有几个方向:①Java card(智能卡方向) ②Java SE(桌面应用) ③Java EE(企业级应用) ④Java ME(移动应用)。不管你选择那个方向,首先都是要先学习Java SE作为基础,然后再向其他的方向发展。就现在的情况来看,Java card和Java ME使用的情况都不是很如意,发展的前景不是很好(个人认为)。Java card几乎没有用了,Java ME 也被 Android 代替了。如果想朝着Java软件工程师方向为目的而就业的话,Java EE 则是你的首选。如果仅仅只是对Java感兴趣的话,只了解Java SE也是可以的。


结合本人自身的经历,让那些想通过自学Java而就业的同志们节约宝贵的时间,把主要的精力用在刀刃上,说说 Java EE 方向的学习路线情况。Java EE 是针对企业级的应用提供的解决方案,因此是包含最为广泛,使用也是最多,所要求掌握的技术也是最多的一个(所以薪水也是最高的^_^)


Java EE =  常用开发工具 + Java SE + Java Web + 数据库 + 开源框架 + 相关规范
这是一个比较笼统的公式,但个人认为对刚接触Java的人来说能有一个比较形象的认识,可能不是很准确,请见谅!!!


常用开发工具如下:
编辑器: gvim,EditPlus
Java的IDE: eclipse,myeclipse,IDEA,NetBeans
mysql数据库工具: SQLYong
oracle数据库工具: sqlplus,toad
UML工具: JUDE,StartUML,RationalRose


Java SE基础要掌握以下的内容:
熟练掌握Java基础语法
熟练应用面向对象的思想(继承,封装,多态),抽象类和接口的使用
熟练使用常用类、集合框架的api操作
熟练使用IO流的操作,反射,泛型
熟练使用jdbc相关操作
了解注解的使用(后期大量框架会经常使用)
了解多线程和网络(后期才重点研究)


Java Web包括以下内容
html,xml,css,javascript,jQuery,JSON,Ajax等的使用
Servlet+JSP+JSTL+EL+Filter+Listener的熟练运用
服务器tomcat,jboss,weblogic等的使用
UML建模


数据库方面:
mysql+oracle的使用


开源框架:
S2SH三大框架的思想及熟练应用
dom4j,junit,log4j,mybatis,jpa,springmvc,jbpm,lucene......
RESTful和WebService


以上的内容,是本人觉得几个大方面的学习路线和内容,如果你看到上面的东西感觉太多,马上头就大了,那我建议你不要以学习Java而就业作为目的,不然你会在没有自学到1个月的时间,就感到痛苦而放弃。这样反而浪费你的宝贵时间。(其实当你学习完后,回头来看看这些,其实就那几样东西没有多少内容)


下面谈谈学习的方法问题。任何一样技能的掌握都是有一定的规律和方法可以遵循的,如果掌握了它会帮助你节省学习的成本(时间、金钱、身体等),但是如果不知道的话,就只有自己慢慢的总结和摸索(这个是相当痛苦和费时的事情),当然付出的代价就是时间。本人的学习方法可能不一定适合你,但是肯定是可以复制的(毕竟我最总找到了工作)。就编程的学习而言,主要的或称为捷径的方法当然是动手多做实验,多敲代码,多练习。计算机是一门实践性很强的学科,它不是你看看书,背上几段代码,就可以工作的。往往你看懂了代码,觉得自己已经学会掌握了,不用练习的时候,往往实际上你并没有真正的理解,只是短暂的记住它而已。到真正上机练习的时候,才发现自己脑袋里面是一片空白,有时连一个单词都敲不出来(本人前期是有过深刻的教训的,这也是浪费时间的惨痛代价,各位同志们要借鉴啊!!!)。但是敲代码也是有讲究的,也有方法和规律的。首先不是照着例子敲代码,这个是大忌。一定要在理解的基础上来实践,刚开始语法不熟悉是很正常的,当你实践的越多你的自信也会越强。在这个过程中,你可能会遇到很多的问题,请记住这个也是很正常的,怎么都不可能避免的。请你自己尝试的解决它们,这个其实就是你升级的过程。如果你遇到了实在解决不了的问题或连方向都不清楚的时候,我提供你几个常用的解决方案:
A:使用Google搜索引擎(记住你是在搞开发,使用baidu等引擎,那样显得不专业并且浪费你解决问题的时间)
B:到论坛或相关的地方提问(解答的时间要看你的运气了)
C:到相关的书籍中寻找答案(初学者不建议,你会迷失方向的)
D:实在等不急了或不能解决的话可以联系本人(我会尽力帮你解决的,QQ:1435109329)


自学的确是考验一个人毅力最佳的测试,因为在自学的过程当中你会遇到很多很多的问题,一个个的问题是那么的陌生,又是那么的令人抓狂。有时候一个小小的问题可能你解决它要花上一天甚至更多的时间,整整一天你都在处理一个问题,试问如果你没有好的耐性和毅力的话,怎样坚持下来整个自学的过程(我不是在这里打击你的信心,我本人曾经在一个Exception上花了两天时间来解决,这个是真实存在的事实,但当我解决掉它后,带来的成就感那也是不言而喻的爽啊),如果没有坚强的毅力,很快会使人奔溃掉的。所以请准备好你的毅力,让自己能够静的下心来,才不会因为那些小小的bug和Exception来阻碍你前进的道路。


最后对学习的信念谈谈我的看法。本人是下定了决心往Java软件工程师发展的,所以狠下心辞掉了工作专心的自学(但不是推荐你也一定要跟我学,自己要根据实际的情况来定),所以我是抱着不管有多么的困难都一定会学会的信念的,自己相信不管有多么的艰难我都会克服,因为有这样的信念作支撑,又以Java就业为目的,最终通过8个月的时间,将本人从一个不知何为变量,转变为一名Java软件工程师的,其中的各种酸甜苦辣,可能只有完成自学Java的同志们能够体会,其他什么文字我觉得都不能够完全来形容它。所以如果你也是自学Java的一员,请不要放弃,坚定你的信念,坚持你的目标,成功的到来指日可待。不要被眼前的困难给吓到了。当你完成自学阶段的时候,回过头就会发现当初的困难其实真的没有什么,也不算什么。




很高兴你能看到这里,说明你至少是想学习Java或有这方面想法的人(同道中人,也是一种缘分),谢谢你耐着性子听我说了一大堆的唠叨话。接下来是我对自学的你提供几个建议和帮助。


因为我是在没有任何编程基础的前提下,完成自学的,我很清楚整个自学过程会遇到哪些问题和困难。我认为在自学中,你不仅仅要对程序语言了解,还要对你的操作练习环境所熟悉,掌握和了解一些常用的软件及使用和配置(虽然这些不是开发必须使用的,但我认为对你是很有帮助的)
1)保护眼睛的设置(我们一天到晚的对着电脑,眼睛的保护是必须的),推荐使用一款软件:眼睛卫士,它会设置电脑的保护色和定时提醒你休息,它是我花了很长的时间才找到满足各种条件的一款)
2)浏览器的使用(上网查找资料使用chrome,因为它的速度快并且对Google的支持很好。而开发时推荐使用firefox,它的插件对开发的支持太完美了)
3)视频播放软件(推荐使用PotPlayer,本人是一个绿色软件爱好者,此款软件可以满足你几乎90%的播放需求,绿色软件解压就可以使用,再也不为重装系统后安装各种软件而烦恼了)
还有其它的软件我就不一一例举了,这些软件都是在帮助你节省成本(时间和身体),以上是我在长期的测试和使用中觉得比较好的软件,推荐给未来Java软件工程师的你(纯属个人爱好,你可以当作吹牛听,如果你觉得可以,本人也提供我经常使用的其它软件,如果你需要可以联系我)


最后我给那些想自学Java的同志们提几点建议和忠告
1.你近视的度数如果大于800度建议你不要自学和搞编程
2.如果你的年龄大于25岁,建议你不要走自学软件开发这条路
3.如果你是个急性子或好动的人,建议你不要从事编程工作


以上的建议是我真心的忠告,你也可以不听。我不是阻止你,而是以一个过来人的经历提醒你而已。因为软件开发每天面对电脑10个小时以上是家常便饭(加班也是常事),如果你的度数太大的话,可能会影响你今后的生活。至于年龄的问题,如果你都在25岁以上了,个人觉得现在才开始自学Java的话,可能你需要很大的勇气和克服家庭的压力(需要你自己多多的考虑)。再者编程其实是一个单一重复的工作,长时间坐在板凳上。如果你是个急性子或好动的话,试问你怎么能受的了漫长的调试和分析bug的工作过程。所以如果你符合以上的条件,建议你不要自学Java或搞编程。


请注意,以上仅仅是个人的建议,至于情况怎样,请根据自己的实际情况多多的考虑。如果你没有方向,我也可以给你提供一些建议和咨询,至于最后的决定还是要靠你自己的。




下面再简单谈谈我在自学当中遇到的问题,其实自学Java我遇到的最大的困难有下面几个
1.不清楚整个学习的体系和方向
2.没有合适的入门资料(在学习的过程中寻找,花费了大量的时间)
3.调试排除错误的方法和技巧完全不知道(这个是最花时间的,因为没有人指导,其实有些错误,有经验的人一眼就可以看出来,这些错误完全是没有必要花去大量的时间的)
4.整个项目真正的开发流程是怎样的




其中最让自学花费时间的分为两个阶段:
第一阶段: 资料的发掘
相信有大批想学习Java或程序的同志们都有这样的经历,开始决定学习了,通过各种渠道download大量的电子书和视频教程,花在这个上面的时间占据我们学习的一大半时间。存在硬盘中少说都是几十个G的容量,几乎没有动过。看到比较好的资料继续的下载,周而复始的重复以上的步骤。硬盘上的存储的容量一天天的增加,可自己的知识任然在原地毫无起色,但是每下载一个新的资源又热血沸腾,觉得只要将精心收集的资料看完一定就可以学成,但就是没有静下心来学习。试问为什么你要下载那么多的资料呢,你真的有必要花那么多的时间来看完吗?究竟是什么原因让你不停的重复上面的步骤呢?我思考了很久才想通,答案就是:你没有经验和方向,不知道什么教程适合自己,所以一直在寻找自己认为最权威和系统的教程,期望它就是你下载的那个,能够让你系统全方位快速的学习Java。其实Java一点都不像你想象中的那么难,不需要太多的资料,也根本不用下载那么多(请你节约宝贵的时间来完成你的目的,请注意宝贵的时间),这也是我在学习完成后,饶了很大的一个弯,看过了太多的资料和视频,浪费了很多的时间总结出来的。如果单单对想学习Java来就业说,需要的资料也就那么一些(仅仅是针对满足工作的需要来说,请不要会错意),因为你下载的资料越多,对于那些知识的重复出现的频率就越高,但你在同一个知识上花费看的时间也就越多,但练习的时间反而却越少,这对于以就业为的目的来说,就是在浪费宝贵的时间和精力(请记住只有当你练习的时间和量足够,你对知识理解和掌握才会越深刻,你的自信和底气才会越足,光花时间看是没有用的)。所以请停止下来吧,不要再去下载那些你认为很好的资料,静下心来,开始你的Java学习。不要把精力和时间都花在了寻找资料上。(如果你没有很好的学习资料,请联系我,我将会提供给你经过我筛选出来合适的资料,给你节约出宝贵的时间)


第二阶段: 排错和调试阶段
这个对于自学的同志们来说是最大的问题,因为我们没有别人的指导,所有的bug和Exception都要自己来解决,再加上平台、环境等其他复杂因素综合在一起,所以是让很多自学者学到一半就放弃的主要原因。试想一下自己努力写好的代码,就是怎么也运行不出预期的效果,反而跳出来一堆的错误提示,自己调试了半天,异常错误提示不减反而递增,这样的情况怎么会不让你灰心和气馁,放弃的想法立马就会浮现在眼前。但是请你自己冷静的想一想,这些问题你在下定决心自学前难道没有考虑过吗?如果考虑过了,你就不会这么轻易的放弃。其实对于开始自学Java而言,错误和异常就只有那么几种,当你遇到了做好笔记,下次就不会手忙脚乱了(当然做笔记也是有技巧的)。初学的时候犯的更多的是语法错误和单词的拼写问题,所以请不要灰心,这些都只是很小的问题。 不要把它放在心上(如果你遇到了一个问题一天都不能解决的话,可以和我联系下,看看能否帮助到你,大家一起来学习)
当你学习了一段时间(1-2个月),上面的问题你基本上80%都能自己解决,接下来的学习就是怎样处理逻辑错误了,说实话逻辑错误才是你升级的重头戏,我常常和朋友开玩笑说,我情愿报异常和错误,也不希望看不到半点异常和错误提示。可能有人会想,看到一大堆异常提示你还高兴吗?是的,有异常提示是一件非常高兴的事情,说明错误的位置和方向大概已经定知道了,你只要耐性的排除即可。但是逻辑的错误它却没有语法和编译的问题,运行的时候非常正常,但就是不出现预期的结果,所以这个的排查就需要一定的经验和总结了。对于它而言,没有其它的办法,唯一的解决方法就是多练习,练习的越多,你的经验就越丰富,遇到了才知道怎样解决。




其实我认为培训机构能让你快速在4-6个月掌握Java开发的技能的原因,主要是能够解决我上面提出的前3个问题,也是能让你节约出时间的地方。前提是你需要用一大笔银子来作为条件交换。如果经济条件允许的话,我认为去一个好的培训机构也是一个不错的选择(如果你决定要往软件开发方向发展的话)。但如果你和我是相似的情况,家里的经济条件不是很宽裕,又想通过Java来改变生活和未来,你可以和我联系(QQ:1435109329)。我会以一个过来人的身份将我的那些宝贵的经验传递给你,告诉你哪些东西你应该重点掌握,哪些东西目前你可以暂时丢掉,怎样通过做笔记和复习来提高效率,哪些阶段看什么样的资料,哪些阶段该做怎样的项目练习,完成自学后怎样找工作(写简历,投简历,笔试,面试等等),这样才不会让你在Java这个浩瀚的大海中迷失方向和失去重心,快速的成为一个底气十足的Java面试者,让你不要像我当初一样,在一些不该花时间的地方徘徊,在一些对于找工作暂时没有用的知识点上花费大量的时间和精力,让你也能在最后找到一份满意的工作,成为一名Java软件工程师。告诉他们,我们是通过自学Java办到的!!!


说了这么多,有点累了,如果你看到了这里,我非常地开心,又多认识了一个新朋友。非常感谢,谢谢你的耐心和毅力,能够坚持听我啰嗦的说了这么多(其实还有很多的话题,由于篇幅的关系,我会在以后继续)。我其实非常崇拜Linux的精神,喜欢它的GPL条款,软件其实就应该是自由的,共享的,免费的,搞那些注册码真是烦人(但人还是要面对生活,所以可以适当对售后的服务收取一点点服务费用或通过自愿捐助,Linux的软件就是这样的)。如果你下定决心想自学Java,欢迎联系我,大家一起进步,我会提供给你很多的帮助。如果你想通过Java就业的话,我会把我的相关学习资料,方法和工作经验传递给你,同时会根据你的实际情况,为你制定一套学习方案和学习计划(包括后期找工作和就业面试等等问题),这样你就不会像我那样花费那么长的时间了,有了这些经验,我相信勤奋的你只会用我原来一半的时间甚至更少的时间完成自学(请相信你自己,同时也相信我),但我会收取一点点费用(毕竟我也要生活得嘛,不可能把所有的时间全部无偿的作为帮助提供给你),如果你认为我是个骗子或其它什么的,那你就把我的话当做饭后的消遣吧,娱乐的听听,毕竟它不会给你带来什么损失,你说是不是。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值