我的Java之路----盘点从学校走向公司的点点滴滴

         先来缕缕我的学习之路吧。大宇从2017年2月19日那天,在经过一夜沉思后,与舍友一拍即合,要做一名出色的Java程序员。一眨眼时间就到了2018年八月份。在决定学习Java之前,大宿舍的同学,从来没有停止关于“工作”的讨论。讨论的结果就是:没背景的同学就要老老实实读书。

        在学习Java的路上,我跟大家一样,走了许多弯路。系统学习Java是看的网络上的教学视频。大宇从教学视频里面学会了基本的Java语法,能够熟练的打出System.out.println(a+b);。我接着看了数据库的视频,在同学的帮助下,在自己的电脑上安装了mysql数据库。第一次成功的用Java插入一条数据到数据库那天我激动万分,我想很多朋友应该也感同身受。学会Java语法与基本的数据库大概花了两个多月的时间。在17年五月份开始进入框架的学习。大概到了六月底,学完了Struts2、Spring、SpringMVC框架的基本使用。

        当时是大三了,一眨眼就到了七月份,放暑假了。我一想到开学就要大四,面临着要找工作了,可是自己还学艺不精,害怕自己毕业就失业。所以,在2017年的那个夏天,我居然第一次主动不玩游戏,要求上进学习。

        七月份吧,花了半个月学习完了Hibernate框架。虽然是学习完了所谓的“三大框架”的使用,但是对这些框架的理解还十分的模糊。对Java是用来干嘛的此时还是一知半解的状态,因为System.out.println()看起来毫无卵用。于是,在网上疯狂找寻学习Java的出路。在此期间,发现了一个web系列的博客:孤傲苍狼JavaWeb学习总结。我足足花了一个夏天,去学习JavaWeb的知识。为了表达我对孤傲苍狼的崇拜,后来我创建了一个“苍狼小跟班”的帐号。现在看来,当初连最基本的Servlet都不知道,居然就先去学习三大框架了,这是不对的。正确的学习思路是,先学会JavaWeb的基本知识,再去学习三大框架,将会有事半功倍的效果。举个最简单的例子,Strust2的拦截器本质就是JavaWEB中的Filter过滤器。

 

 

        九月份开学了,大宇就是一个大四的学生了。开学的时候,舍友们都是身怀绝技过来的,看样子这个夏天,几乎所有人都意识到要毕业了,不能再玩了。学编程的、考研的、考公务员的、进银行的,似乎每个同学都有了自己的目标,计算机专业主流的路线就这几种。我当时的感觉是回到了高中一样,顿时压力山大,但是也不知道自己的未来在何方。迷茫随之而来,不知道进一步应该干什么。细算一下,Java基础、JavaWEB基础、Java三大框架都已经学过了,接下来应该学什么?

       在这迷茫的时候,我在网上买了一本关于三大框架的书,重点学习了Spring框架的部分。我当时发现,WEB层有SpringMVC与Struts2。数据库层有Hibernate与Mybatis,而项目的中间层永远是Spring框架。我意识到Spring框架是一个值得学习的框架。但是因为一些特殊的原因,再加上自身的懒得,九月份几乎没怎么学习。到了十月中旬,班长开始在班级群里发布招聘信息了,这惊醒了堕落已久的我。我觉得自己不能再这样懒惰下去了。时隔一个多月后,重新开始学习Java。

        十月下旬,我在网上买了一本Java界公认的优秀著作《Java编程思想》,英文名是《Thinking in Java》。我记得读完《多态》那一章的时候,真的是佩服Java的伟大魅力。这本书我花了一个月的时间,学到了泛型之前的章节。

         十一月初,学校里开始频繁安排校招。因为我们的学校是一个很普通的二本学校,所以来招聘的企业并不是什么大公司。并且重要的是,来校招的人不是专业的技术人员,而是公司里面的人事部的人。我在投了三四份简历以后,收到了两家公司的面试邀约。但是遗憾的是,其中一家公司希望我去做的不是Java,而是他们指定的另外一种编程语言,能够在机器上运行的,具体是什么,我也不知道。最后,我还是拒绝了他们公司的面试邀请。另外一家公司在经过笔试以后,也杳无音讯了。

          17年11月20日。我做火车来到了南京的大型毕业生招聘会。我准备好多份简历,最终只投出去四五家公司。原因是很多公司明确的说,不再招聘Java实习生了,因为已经招满了。有一家南京的公司邀请我去笔试,可惜我没有通过他们的笔试。剩下的所有投简历的公司都杳无音信。简历投出去如石沉大海,我对此十分沮丧。灰溜溜的做火车又回到了学校。此时,天空仿佛都是灰色的,我内心无比渴望一份工作。

          回到了学校,校招还在继续。学校安排了最后一次也是最大的一次校招,如果这次还没有企业要我,那么我将举步维艰。学校安排在11月22日进行最大规模的校招,几百家企业来招聘。但是,要知道,这几百家里面包含了学校里面的所有的专业。事实上,最不幸的消息是,招聘Java的其实也就是三四家公司而已。我这几家公司我都投了简历,几乎所有的收简历的人都告诉我,如果我的简历通过了,将会有一次电话技术面试。如果在11月28日之前还没有接收到回音的,那么也就意味着凉了。

          从11月22日到11月28日这个星期里面,我几乎天天在宿舍,准备着电话面试,深怕错过公司打来的电话。这个星期我过的是提心吊胆的日子,每个电话都令我为之一怔。差不多就是那种茶不思、饭不想的状态吧。可是,即使我做了充足的准备,一个星期过后,我仍然没有收到任何公司的消息,这让我非常的难过,痛恨自己的无能。说我晚上内心在流泪,绝对不为过。

          11月29号,我心灰意冷,已经绝望,盘算着春招。下午忽然有家公司打来电话,说我在十一月初的校招投过他们公司的简历。我突然想起来在十一月初,笔试过一家公司,我以为早就凉了,没想到快一个月了才给我回复。那家公司的HR对我说,觉得我的所学符合他们公司的Java实习生位置。于是,在11月底,他们公司的技术人员对我进行了电话面试。令我十分高兴的是,面试官问的问题都是十分基础的Java问题,比如说抽象类与接口的区别,简单的数据结构,Servlet生命周期还有Spring的核心等。因为我准备了真的很久,从十一月份开始准备面试题目,足足花了一个月的时间。我幸运的被录取为了Java实习生。后来据公司的HR说,当时有31个人竞争剩下的7个Java实习生位置。可见学Java的大学生有多少。真的算是绝境逢生吧,要知道,在没有实际项目经验的情况下,去求的一份Java的工作,需要鼓气很大的勇气。这里要值得一提的是,十一月初的那天早上,班长在群里说下午开招聘会,有兴趣的可以去投简历,其中就包含了后来录取我的公司。在那个时间点上,动手准备找工作的同学还寥寥无几,班上去参加这个招聘的同学估计就三四个人,我也是随便投了几份简历,没想到就化解了一个月后找不到工作的窘境。所以,我以后牢牢记住了一个道理:不要轻易放弃一些机会,要相信手上的机会就是当前最需要的机会。因此,如果你还是大学生,我想对你说,不要轻易的放弃学校里投简历的机会,因为社招要求远比校招高的多得多。

          十二月份中旬,到了现在这家公司里办了实习手续,正式的开始了自己的实习之路。第一次看到了正式项目的大小,Java类的数量直接把我吓尿了。以前我整个项目就一个实体类User类,现在居然有数都数不清的实体。在找到工作以后,我又开始重新堕落了。之前电话面试我的技术人员成了我的师傅,他是有着十年工作经验的项目经理。但是可能我是实习生吧,布置的任务都是非常简单的。很快,20天一晃就过去了,只学会了公司里面的基本的编码规范和一些常见的JavaScript写法。

          转眼就到了元旦,2018年到来了。在一片祥和的气氛里面,我决定不能再这样下午,混日子不是我的风格。

          一月份,公司里面不忙,所以自学的时间很多。公司的项目开发是多人协作开发,所以每个人负责部分模块。Git版本控制就成了必须要学习的一部分。刚进公司的我怎么可能会?有一次,在我提交升级后的登录和注册代码后,全项目组都登录不上了,这个时候我痛下决心,一定要学会Git版本控制。另外,实际项目对安全性的要求很高,所以当时就去学习了一个叫Shiro安全框架的东西,是用Java编写的轻量级框架。到了一月底吧,我能够在基本的项目里面集成了这个新的安全框架。

          二月份,过年了。过年期间没怎么学习。年后回到公司,整理了自己所学的Java基础部分,将其整理成文,编写成博客。主要整理了一些基础的部分,比如类和对象的关系、接口、多态,还整理了一些集合框架的东西。年初上班的时候,二月份就剩下了最后一个星期,所以没弄出什么名堂。

          三月份,已经到了毕业季。学校里面还是有很多事情,特别是关于毕业设计的事情。我所在的项目组又恰好处于项目上线的时候,很多事情不能也不敢交给实习生做。所以我在这个月,有着非常充裕的空余时间。我用在公司期间的所学,为自己的毕业设计,设计了十张表左右的数据库,并完成了后台的编写。至于前端页面,大宇花了七毛钱买了一个前端页面的模版。至于前端页面里面的JavaScript,我在公司几乎每天都接触,所以解决的并不困难。就这样,毕业设计就算是独立完成了。当然了,我深知一个学Java的要自己写页面是多么的蛋疼。弄毕业设计最大的收获就是,学到了非常多的Mybatis知识。Mybatis我以前在学框架的时候,没有特别去学习此框架,所有关于Mybatis的知识,是我在实习期间自学的。毕业设计的目标就是在SSM框架中集成所学的Shiro安全框架。

          毕业设计源码已经分享:https://blog.csdn.net/yanluandai1985/article/details/83213855

          四月份,毕业设计的后顾之忧解决了以后。我又开始了重新的迷茫,我应该学习什么?这个时候,一个叫"设计模式"的名词进入了我的视线。四月份主要研究了很多不同的设计模式。但是令我失望的是,实际用到设计模式的Java代码十分的稀少,甚至可以说是没有,因为可以想象到的是,基于SSM框架的Java代码无非就是增删改查。这对我的学习热情产生了极大的负面影响。直到有一天下班,我去另外一个同事座位上去玩玩,我说:这个input标签的监听器好像就是设计模式里面的观察者设计模式。他们项目组的项目经理正好也在这里,和蔼地对我说:“嗯,对的,监听器其实就是观察者设计模式,在安卓应用的开发里有着广泛的应用”。我很高兴能够听到关于设计模式的探讨,于是重新燃起了学习设计模式的热情。

          五月份,继续把剩下的设计模式研究完毕,并整理成文以后,就没再做了什么有建设性意义的事情。因为这个时候,已经临近毕业,学校里面要求我们要返校。在回到学校里面以后,所有同学好像又回到了天堂一样。大家兴奋极了,七嘴八舌的讨论着丰富的实习经历,仿佛每个人都去过一趟外星球一样。也难怪,读了十几年的书,还是第一次离开校园。那个月,我的英雄联盟游戏次数,突破新高。

          六月份,我们拍毕业照,班级聚餐,试图珍惜最后的大学时光。但时间总是匆匆而过,一转眼就大学毕业了。我含着眼泪踏出校园,离开了吐槽了四年的大学校园,那一天,是6月15号。回到公司以后,又开始了重新的Java学习。从事了这一行,就意味着有无数的新知识要去学习。这个时候,一种新技术映入了我的眼帘,那就是“Activity工作流”。六月份正好上个项目刚好做完,下一个项目还在需求分析阶段,所以时间还是比较充足的。在这段时间里面,我自学了Activity工作流,做了一个简单的OA请假系统。

          七月份,再也没有暑假了。像往常一样,我又重新开启迷茫模式。这个时候,我开始查看一些招聘信息,看看市场上的需求是什么。在多家招聘信息里面,我经常看到一条:“有高并发、高负载的经验者优先”。所以,这个时候,Thread类引起了我的注意。于是我买了一本关于多线程的书籍,在工作之余进行研读。到七月底,坚持看完了这本书,受益匪浅。

          时间过的真快,不知不觉就快写到了现在。这个八月份主要处理了公司里面的事情,真正坐下来学习新东西的时间不多。

          好了,现在基本上是成了一个Java程序员了。年初拟定的计划,现在执行的情况已经是南辕北辙。时间很快,2018年的八个月已经被消费了,只剩下四个月可以使用。其实通过盘点自己的所作所为或者说是学习路线,也没什么值得炫耀或者批评的。在成为大牛的路上,谁不是摸石头过河,第一次探索呢?很难说现在学的东西将来有什么用。但毕竟,谁不愿意成为一个厉害的人物,从而让别人另眼相看呢?

          伟大的哲学家叔本华说过:"我们会轻易地的过分责备自己。其实,我们走过这样的人生路程并不完全是我们的所为。这是两种因素 ---- 一连串的外在事件和我们不断做出的决定 ---- 公共发挥作用的结果。这两种因素纠缠在一起,并相互影响。人生就像一盘棋局,我们计划好了一套走法,但是实施一套计划的条件确是由棋局中的对弈者 ---- 亦即生活中的运气 所决定的。通常,我们对自己的计划要做出大幅度的调整修正,这样,在计划实施的时候,原来的计划已经变得面目全非了"。

          所以,正如叔本华说的,不要过分责怪自己。如果过去没有努力,从今天开始就行了。不管过去学了什么,也不管未来能不能用上,它都是我们人生中的一段不可或缺的经历。

posted @ 2018-08-28 21:15  小大宇  阅读(188)  评论(0编辑  收藏  举报