该文章曾在去年发表于我的blog上,现转到这里,因为我觉得不管什么时候文章中所谈的一些东西都会对大家起到警示作用,毕竟里面的所有内容完全都是我的切身经验,没有半点虚构成分,真心希望大家少走弯路,努力进取。总有一天,梦想会照进现实的。
等我从家回来时看到还有一个公司在招聘兼职,而且做的项目也比较大,我就去了,很幸运,有一次通过了,我想幸运是一方面,更重要的还是自身的努力 吧。可能有人会说我怎么没有呆在之前那个公司呢,我主要是考虑现在是兼职,想多接触一些东西为以后的就业打下基础,而之前的那个公司的技术框架已经很熟悉 了,在呆下去学到的东西有限,所以就离开了,当然公司的领带还是很希望我能留下的,呵呵。
来到了新公司,这个项目是上海市公安局治安管理系统,采用的技术架构是struts+hibernate,当时hibernate在国内用的也不是 非常多,所以我还是比较早的接触了该框架,这个项目规模非常大,业务逻辑非常复杂。也就是这个项目让我学到了最多的东西。这个项目干到了一半时,项目经理 走了,而在公司里面我对这个项目是最熟悉的,无论从技术层次还是从业务需求来说,所以公司领导希望我能负责完成这个项目,这是我第二次负责一个项目,而且 这个项目也是一个比较大的项目,自然感觉到肩上的担子更重了,自己也去客户那里谈需求,回来做设计,当时真的感觉每天都非常忙, 但也非常充实,这个时候也是我技术能力提升最大的阶段。经常加班,晚上有时候就在公司睡了,呵呵,因为当时只有一个念头,一定要把这个项目完成好,经过半 年多的努力,这个项目终于顺利完成了,项目中java类的数量有400多个,jsp页面有300多个,数据库表有30多个,事后想想自己也真强,这么大项 目在自己手上完成,真的好有成就感,呵呵!
我自我感觉我这个人表达能力还是比较强的,在这其中我在上海的不少培训学校担任过培训讲师,主要讲J2EE方面的课程,还给不少公司做过企业培训, 比如西门子(上海)移动有限公司,上海华腾软件系统有限公司,浙江人本集团,贵州电力系统有限公司等等,在这期间自己的技术又得到了很大提高,而且表达能 力也不断加强。因为你自己会一个东西不难,难的是给别人讲出来,还要讲明白,要将复杂的技术讲的浅显易懂。这期间,我在这方面的能力得到了加强。
其实在上研的2年多时间里,我大部分时间是在外面度过的,很少在学校,自己也确实做了很多事情,可以这么说,计算机系的学生用了4,5年时间学的东 西,我用了2年多,而且掌握的还非常扎实,无论从理论的细节,还是宏观的架构,都有一定的积累。这其中的艰辛只有我才能体会到。每个人都不笨,智商也都差 不了太多,决定你是否能够成功很大程度上在于你的努力和付出,我是一直坚信这一点。在公司里面时我也发现了很多问题,那就是现在社会上很多都太浮躁了,都 太急功近利了。无论学什么都浅尝辄止,不想去深入研究,拿我之前的第一个struts项目来说,其实我从用struts到最后掌握,花的时间并不多,只是 由一般的jsp,servlet到struts的过度开始让我不太适应,不过这个阶段过后,后面就一马平川了,为什么这样呢?因为我之前jsp和 servlet以及http协议与原理性的东西掌握的很好,这些都是最最重要的基础,可以说任何web框架都是构建在这上面的,有了好的基础再去学习其实 会很快的,而且也不会觉得特别困难。但是这些基础的东西是不会给你带来直接的收益的,他们的作用都是隐性的,会在你不知不觉中给你带来帮助。真的是这样 的。就像现在很多人上来就struts,hibernate,spring,然后会发现这些东西好难,其实并不是这些东西难,而是你该有的基础还不具备, 比如很多人连HttpServletRequest是什么都不知道,request与session是什么关系也不知 道,request.getParameter与request.getAttribute也不清楚是什么区别,这种情况就去学那些优秀的框架无异于高中 数学还没学就去学高等数学一样,也许你能看着别人的例子自己照猫画虎的做出来,可是一旦让你自己去做你就无法下手了。为什么这样呢?还是基础不行的缘故。 甚至有很多人连最重要,最基本的HTTP协议都不了解就敢作项目。所以在这里我希望这些人能静下心来好好学一下基础的东西,原理清楚了再去学习高级的东西 是水到渠成的事情。
不知不觉到了找工作的时候了,自己也和很多同学一样每天去笔试,面试到处的奔波,还好我的找工作也还是比较顺利的,签下了现在这个公司,后来又有cisco,hp等公司邀请我去面试,也都被我婉言谢绝了。
不知不觉中写了这么多,也很感谢大家能耐着性子坚持看完,最后我给大家提一些建议,这些建议都是我的切身体会,未必适合每一个人,但是只有能对大家起到帮助的作用我就满足了
1. 基础的重要性。我总是不断强调基础的重要性,因为我是有切身体会的。基础的东西可以让你受用一生。struts出来了,webwork出 来,tapestry出来了,jsf出来了,struts2也出来了,等等等等。但是这些框架或者标准都是新东西吗?其实每个人都知道并不是的,他们都是 基于HTTP协议的,欢聚换说都是构建在jsp与servlet基础之上的,有很多人连这两个基础都没掌握好,就去学这些框架,这真是难以想象的。有了好 的基础会让你学习新东西更快,也更扎实,走的也更远,否则你永远都是在跟着别人的脚步。
2. 还是基础。我们都知道Spring是非常优秀的框架,也是很多公司采用的技术选型。但是你是否真的了解Spring的核心IOC与AOP了吗?适当看些设计模式的书会让你受益匪浅。其实你只要掌握了java的动态代理对于AOP的理解就是自然而然的事情了。
3. 舍得投入。 有时间的话买些书看看,好书可以让你系统的学习一些技术,而不是一些支离破碎的技术点。
4. 抓紧时间。 将游戏的时间控制的少一些,把精力放在学习上吧,如果你想投身it行业,做好不断学习的准备
5. 要有激情。 没有激情的人生是惨淡的人生。生活和学习要有激情,否则你体会不到淋漓尽致的快乐与苦痛。
6. 要有耐心。 没有耐心是无法成为一个优秀的程序员的。其实写程序的时候大部分时间是与错误,异常相伴的,不要幻想一下就能将程序写对,优秀的程序实际上是不断重构的过程。
7. 要能耐得住寂寞。 很多时候我们都是与计算机为伴的,如果你没有对程序的兴趣与热情,时间长了你会坐不住的。
8.英语的重要性,如果你想进外企的话,那么英语是必须要过的一关(主要体现在听说上)。
9. 最后一点,坚持学习。活到老学到老是对程序开发人员最好的描述。
以上就是我的一些学习感悟与走过的路,希望与你共勉!(完)