马上转正了
来公司已经快三个月了,也就是试用期马上就要结束了,公司的转正程序有点麻烦,还要进行答辩,不知道是真刀真枪还是花拳绣腿、走过场,但是对于我来说,都会认真对待,而且答辩这种小事,我已经游刃有余了,hiahia
都做了啥
刚到公司的几天,我就感觉到了公司安逸的氛围,基本上没什么事做,虽然公司实行了导师制,一位能力很强的的项目经理(最近才知道他很强)带我,但是他手上没什么事给我做,我是闲不住,就总找他要事做,最后他就拿出几本秘籍给我(N年前的开发文档)让我“拜读”。说实话,当看到文档的日期的时候,我内心是崩溃的,因为我对新鲜事物充满100%激情,但是看到“古董”,我真的累觉不爱!莫名的抵触心理,出乎我自己意料的是,我竟然一字一字的看完了,有的还看了两遍,是它真写得好吗?不然,是我内心想赶紧参与开发的狂热让我专注。花了两天时间看完了文档(转正答辩之前还得温习一遍),内心更是“饥渴难耐”,双手早就燥痒,想着赶紧写代码。可是经理还是没有事让我做,在我百般“要求”之下,他终于让我自己写代码——在原有代码中加个增删改查(具体查啥我自己看着办),哎呀,我那个开心啊,赶紧考代码,就在我打开工程的时候,那纷杂冗长的代码包给我泼了一瓢冰水,从何看起啊!我内心在狂吼“谁告诉我从哪看啊!”这个时候我又不能去问经理,怕他觉得我很菜,连怎么看都不知道,还写个屁。于是我硬着头皮跟这些没有注释,奇怪名称的古董代码周旋了几天,在走头无路的时候,突然灵光一闪,梳理了代码的业务逻辑,找到了添加功能的借口(其实就在页面上),于是我把自己造就写好的增删改查加了上去,调了几个简单的Bug,终于成功了!当看到自己的代码顺利执行的时候,真的很开心!这就是做程序猿最大的好处,成就感随时随地!开心的我把代码发给了经理,他没有任何评价,只是让我更新了OA上的任务进度,哎,在他眼里,这根本不算啥,我的兴奋就这样被浇灭了,但是我还是很有自知之明,这点东西确实不算啥,初级程序员的必备技能。于是我收拾心情接着找经理要任务,每天多做几个任务,就可以多升几级,程序员的晋升之路就跟游戏一样,整天领任务、打怪(搞定BUG)、升级,还好我乐在其中!接下来的一个任务就是熟悉SSIV框架,自己的学习能力还是很不错的,提前好几天就完成任务了,经理仍然只是让我把OA更新一下。第一个月的时间就在我不停要任务和等任务中缓慢(曾经一度等下班)度过。
时间到了第二个月,由于有了第一个月的经验,我不再整天找经理要任务了,我自己买了几本书(到现在只看了一本,但是颇有收益),没事的时候我就自己看书,自己写写简单的代码,我买的这本《架构探险:从零开始写Java Web框架》真的很好,作者一步步娓娓道来地将Java Web框架进行分解,最后整合在一起,代码也非常殷实。我就照着书上的代码,完完整整地敲了一遍。从这本书上,我知道了Maven的使用方式和它基本的配置,自从用了maven,妈妈再也不用担心我的导包了。接着我对Java Web的MVC三层设计有了更深的理解,V、C层与业务逻辑的脱离很重要,尽量使用M层完成业务逻辑的封装,这样代码不仅看着清晰,对后期的维护也是非常友好的(我现在主要做维护,深深体会这一点)。然后是框架的自动加载、注解类、代理、AOP……一堆非常有用的基础知识点,让我对Java Web框架的基础有了深入理解!就这样,有了这本书的陪伴,时间过的很快,半个月眨眼就过去了,当我更有底气地找经理要任务的时候,经理果断地把我“丢”给了另一位同事,让我找他要任务,这感觉就是打完怪找NPC,对话框显示“该任务需要等级(99级)”(经理当时也正在谋划大项目),我心里当时就“我勒个去”,明面上又无话可说。又是等几天,另一位同事才给了我个任务——Excel报表导出优化,之前的代码在点击下载之后页面就没反应,一直在等着后台生成Excel文档最后才显示下载。我的任务就是让这个生成过程在页面显式地反映出来,接任务的时候依然是激动不已,可是一天过去了,还是找不到解决办法,看着“古董”代码,我真是想“从头再来”,全部给他重写!接着几天我上网(说到上网,我想说我TMD用自己流量开热点用了1个半月!)找各种方法,找到了一个DWR工具,能在JS中调用Java的方法,如获至宝,赶紧找文档找demo,也确实找到了一个用DWR实现后台生成Excel在前台显示的功能,这不正是我想要的吗!赶紧“copy”(我用自己的电脑查资料,用公司电脑做事,完全纯手工copy)到项目中,运行,我勒个去,各种BUG接踵而至,搞了一天,完全搞不定,这个“高科技”我还真不会用,最后极其不舍地放弃了这个,开始寻找新天地。接着就很自然地想到了AJAX,但是AJAX并不能同步显示进度,只能放个圈圈在页面上转,等后台好了就让它消失,跟那位同事讲述了我遇到的困难之后,他“大度”的让我使用放圈圈的方式,然后我就开心的使用AJAX实现了异步加载,但是这个过程中”古董“代码一直捣乱,想在它上面加新功能真的很艰巨,于是我尽可能摒弃”古董“代码,自己写,当然”古董“代码也不是一无是处,它也给了我一些提示。显示的问题解决,后台又出问题了,一旦数据量大,生成Excel就巨慢,我有想尽办法优化,多线程……可是,最后我发现,最耗时间的地方是绝对必要步骤而且基本优化不了,就是死代码,跟同事反映情况,他还是”大度“的让我“就此打住”,把优化好的代码发给他,收工。
第三个月,终于迎来了大任务,将项目之前的搜索方法改为Lucene,Lucene?啥东西,没听过,没用过,能吃吗?于是我在兴奋与紧张中接了任务,第一件事,百度Lucene,看看它到底是个啥,看了百度百科和一些博客的介绍,然后又找了些小Demo,终于知道这么用它了,我正开心地以为可以自己开发,没想到,同事给我一个zip文件,里面是我后面的部门副经理封装好的方法,我要做的只是用这些方法来改“古董”代码。我的内心再次崩溃,看完“古董”代码,还要看一堆没有注释的,没事就一个put方法的代码。说真的,用别人的方法真心不如自己写起来舒心,估计每一个程序员都是这么想的!花了两天,半猜半试地将“古董”代码替换了,以为能够一步到位,结果仍然是BUG满天飞,第一个方法就OFM了,我对JVM根本没有了解,不知道怎么解决,就问我后面的副经理,他第一句话“遇到问题要自己想办法解决”,我当时有些不爽,一上来就摆架子,最烦这种人,然后他就在纸上划了几笔,最后我还得求助度娘将JVM的内存调大了,但是还是OFM,这总不是我的问题了吧,代码是你的,方法也是你教的,还是错啊!他还是“遇到问题自己解决”,好吧,我接着忍,接着埋头苦干。你说OFM就算了,我少点来,我NM明明是用来查询的,可是一条数据都出不来是什么鬼,好吧,我自己找方法解决,又在“古董”上改了几遍,还是出不来,于是我决定自己写个方法,先验证一下,果然,自己写的就能查到数据,于是又是一遍遍排查,最后无奈将“古董”推倒重写,果然就好了,结果就出来了,接着就是一些优化工作,这一阶段算是有了成就感。可是还有个问题,Lucene的核心就是索引文件,但是我要将数据库某张表的现有纪录全部用来建索引,上千万的数据,写文件倒是没事,数据库不行了,OFM之后又是临时文件所在磁盘空间不足,又得找办法,但是我又不能直接操作数据库,只能交给同事,可同事也没有解决,好吧,我自己想办法,跑了几天,还是没有解决,最后只能用大招了——自己写!不用之前的方法,自己单独写个工程,用最纯粹、最原始的方法,果然还是自己写的好使,现在公司的电脑还在跑着,估计数据已经跑完了,明天去看结果!
总结一下
就这样,这个月马上就要结束了,也要开始填转正申请表了。今天简单的回顾了一下这三个月的工作和学习!遇到了很多问题,自己也是找了很多解决方法,基本都完成了任务,但是我对自己还是不满意,还是个菜鸟,真正自己写的代码并不多,解决问题的思路也不是很清晰,过于依赖度娘和Google,自己总结也不够,以至于工作中的问题和收获都没有及时记录下来,现在也忘了差不多了。So,接下来不仅要埋头写代码,还要学会总结和整理,多思考,让自己思维能力更强,能更好的解决问题!这篇文章就是开始,以后多写博客!