逗比青年的2016

转眼间,2016年已经悄然离去,而年初时的梦想还没来得及实现,还不只是一个梦想,而是很多很多的梦想。半月前csdn举办2016年总结的征文活动开始时,我还信心满满,要写个1万多字的年终总结。没想到一拖再拖,元旦过后又是各种节后拖延症。我想如果再不写,活动就结束了,没有给满是遗憾的2016写篇总结,将会是更大的遗憾。一两千字的总结总比一纸空文好,所以痛定思痛,奋笔急书,写下这篇文章,用以纪念这逗比的年华。彪悍的人生才不需要解释,逗比的人生要经常自乐嘛!我不是我们本科班混的最好的,却是今年我们班活的最精彩的。跨地之远:从年初的贵阳到山城重庆,再从重庆到北京。在这围成三角形的图形中,用百度地图一丈量,足足有千里之遥;身份转变:从学生变成一名软件工程师(上一家的职称就是:初级软件工程师),说的谦虚一点就是程序员,说得直白一点就是从学生变成一名地地道道的码农。从央企员工变成创业公司员工。人们都说创业公司喜欢给员工画饼,但是我们公司不一样,从来没有给我们画过大饼,虽然不画大饼,但是福利也不高啊!经历的种种,犹如昨天,历历在目,却是那么的遥远!

三方协议到手了

央企的入职流程非常的长,长到我都差点失去了信心。去年(2015年)参加了一系列校招,最终选定了中国韩信。关于去年的校招细节,可以移步我年初写的奔跑吧攻城狮 第一篇 一文。其实我最初的愿望是去被当作备胎的惠普,或者去妹子老多的御家汇。但是从大学那一天起,父母强烈希望我毕业之后能够吃公家饭,比如考上公务员或者考上事业单位之类的,而我就只想做个安静的程序员,最终的愿望是去互联网一线公司BAT担任工程师。权衡再三,终于有这么一家公司,它即是国家饭的,又是做IT的,而且还是高大上的国内民航行业。既迁就了父母,同时也满足了我毕业之后做技术这一愿望。在这里要感谢贵州大学,是它提供的这么一个平台,让我有表现的机会,同时还感谢贵大的吴常玉同学,是你带领了我到你们学校的招聘就业大厅,从此面试灵感来了,挡都挡不住。
曾经一度想放弃中国航信,因为等签三方协议等的实在是太久了,十一月初参加的笔试,紧接着的一面和二面在一两天之内完成,也算是挺快的。11月中旬接到压力测试面试电话,然后告知通过了,等着签三方协议。可是谁也想不到等签三方的过程是如此的漫长,我再三催促hr(后来才知道是小梅同学),问了很多次什么时候三方协议才能到手。小梅同学总是说尽快,等其他同学统一交上来再统一去重庆人事局办理之类的。十二月初得到御家汇去长沙综合面的时候,我有动摇去御家汇的心。再次询问小梅同学,得到的答案依旧是”尽快”,最终还是在12月底等到了中国航信的三方协议,明确2016年3月1号正式参加实习。
知道自己基础薄弱,所以寒假刚开始的时候给自己预订了寒假学习计划,刚开始时雄心勃勃,一定能够完成。计划的内容是这样的:先做完毕业设计,然后再把ssh框架学完,再做一个综合性项目。然而事实是计划只实施了一半。回到乡下之后,闭门断网在家里写了一套电子商城,因为这是我的论文选题,在学校的时候就选择好了页面素材,并搭建好了各种开发环境,其实也不需要额外的开发环境,因为基本的环境都是配置好的,只额外安装了一个dreamwaver用来做前端设计。就这样,在家闭门的情况下,写了电子商城的v1.0版本。前端html用dw来设计,很少用到js或者jquery,后台采用servlet+javabean+jsp的经典mvc模型,数据库用的是oracle。连框架都不用,现在想想都感觉有点low。本来以为1.0版本只是个暂时版本,到时候再升级的,谁知道这后面很多事就没有修改过,直到五月份毕业答辩的时候,只添加一个验证码的功能就直接上台演示了。由此可见,我的毕业设计有多渣。
俗话说“酒肉穿肠过,佛祖心中留”,写完一个毕业设计,离过年也就越来越近了,这手机不打开为好,一打开朋友圈各种邀约开始了。所以说千万不能开头,头只要一开就一发不可收拾,根本就停不下来,“天天有酒顿顿有肉”的日子早就把学习计划忘的一干二净。
最逗比的是,年后我们村鼓藏节的晚会,我居然当了一把主持人。刚开始负责人找到我,我想我一工科男哪有能胜任这类的活动啊?但是他们说了,我们村你就读大学,你不上就没有人了!我顿时雷倒。于是我和我那还在读高一的妹赶鸭子上架般的当起了村里晚会的主持人。节目结束之后回到家我自己笑了一晚:想我一理科生,居然去抢人家文科生的活儿(其实我有几个堂哥都是师范院校毕业的,现在是老师。)

实习生活

中国航信的伙食是挺不错的,之前一直不珍惜食堂的伙食,认为跳槽到其他公司,只要月薪提高,其他都无所谓,伙食问题根本不是问题。现在来到创业公司才发现,那些有员工的同学是多么的幸福,现在又开始怀念那个可爱的食堂,怀念有茶水间的日子。所以这里劝一权那些有员工食堂的哥们:除非月薪提升的很多,不然一个食堂真的能够解决很大的问题!关于重庆的生活,可以参考一下我刚北漂时对重庆的回忆金九银十北漂记第5篇:凄凉的北京 ,今天我想写的是重庆另一面的生活。
尤记得入职的第一天,我迟到了,原因是前一晚我把行李箱之类的放在同学那,第二天去报道所需要的材料都放在行李箱里面。所以慌慌张张从大龙山赶到微电园,拿了各种材料再来到光电园。微电园与光电园只一字之差,但是距离却有十万八千里。还好,人力资源的张s同学表示谅解。
中午参加一场笔试,感觉都是一些基础,休息间,大家纷纷议论笔试怎么样怎么样云云。我到是看得开,都已经入职了,这场笔试或许只是一个过程而已,校招的时候不是过关斩将过来了么?接下来就是分部门了,3月入职实习的校招人数大概24人左右吧,因为大部分同学选择在7月份毕业之后再来实习,而我不同,我们学校整个大四都没有课程,不仅没有课,还必要出去实习!所以我3月来入职是理所当然的。首先有12位同学被分配了到航空产品研发部,再接下来是8位同学分配到了分销部,最后有四位同学被分配到系统研发部。我被分配到了系统研发部,也不知道是喜还是忧,听着“系统研发”四个字,厉害的不要不要的。我们四位纷纷议论是笔试做的不好分配到这个部门还是做的太好分配到这种部门,其实直到现在我也不知道我的笔试卷子到底属于我们那一批入职中的什么层次。无论如何,我终于找到了自己的部门,接下来有了自己的工位,然后是有了自己的工牌号和崭新的笔记本电脑,抱这新电脑乐了好几天。
在这要感谢公司的efront在线培训系统。这是一套免费开源的在线培训系统,入职的同学都会根据自己的所在岗位,设计了一套培养课程。课程的第一阶段,我学到了项目组开发所用到的技能。包括:Git入门和使用,JavaScript基础,Html+Css,Sql基础,Java编码规范,Maven入门。其实第一阶段的内容,很多在学系已经学过,很轻松就过了。考核方式是每学完一个课程,都会有有一些选择题,这部分要求80的准确率,系统自动判分。接下来是编程题目,这部分是人工判分。尤其记得比较清楚的是,在做js题目的时候,其实有多种实现方法的,由于我对js的函数不是那么熟悉,同时也为了当时我了为了臭显摆一下算法能力,硬是不用js本来有的函数。提交答案的时候评分老师给通过了,我就在题目下面留言怎么解决之类的,有一女生看到了,QQ来问我怎么做,直接把git的答案链接发给她。结果她看不懂算法,那天刚好是周五,大家都比较急下班回家,周末去玩等等,于是她就直接完全copy我的代码提交上去。下周回来的时候,评分老师臭骂一顿,怎么你俩个的答案是“一毛一样”的?现在想想自己当时太逗比,刚入职的时候以为自己懂一两个算法就臭显摆,简直犹如小丑在观众面前耍技!然而java初级程序员不需要高深的算法的,要的是写项目能力强的人!进阶中级,高级逐渐体现算法的重要性,但事实是我的算法能力low的不要不要的。还有,我第一次知道原来在学校老师一直强调的代码规范,公司也很重视,不然我还以为老师在骗我们叻。入职之前自我感觉代码书写格式良好,入职之后发现我说了不算,得用SonarQube来扫描才算,不扫不知道,一扫吓一跳,原来我的代码是千奇百怪的不规范,比如迭代循环不加final,不喜欢用泛型等等,反正写出代码与写出健壮性的代码是两回事。SonarQube一款基于客户端、服务器的Eclipse代码规范插件,优点是扫描到的规范多,有很多建议和意见,还有参考案例。缺点是你需要搭建服务器,或者项目组有统一的服务器,每次需要管理员触发扫描。此外,本地装一个叫做codechecker的插件,可以直接在本地Eclipse扫描。当我知道这插件居然就是我们部门一年纪相仿的哥们写的时候,我心里佩服的不要不要的。那哥们说这是一款开源的插件,他只是做了优化而已,但是即是是优化,我也想在心里骂他一句:太TM牛逼了。我当时想,我什么时候也能写一eclipse插件,让公司整个部门都用我的插件,那就牛逼哄哄了。
课程的第二阶段。学习了Spring Mvc,Spring,Jquery,以及公司内部的UI框架。学习了Spring Mvc的视图配置,结果跳转方式,接收参数,参数传递到前端,以及拦截器等。由于在校期间没有用SSH,所以Spring Mvc是我接触的第一个框架,搭建HelloWorld尤其的困难,花了两天多才弄出HelloWorld,真的是泪流满面了。接着继续学习了Spring的框架,理解了IOC容器,知道了Bean的作用和Bean的生命周期,然后学会了基于注解的开发方式,刚开始觉得一切bean配置在xml就行了,为什么还有注解,不多此一举嘛。现在想想,基于注解确实比xml配置方便多了。然后学了学习了Spring HttpInvoke的远程调用,由于项目组的数据都是放在远程主机,所以不用ORM框架,而底层的远程调用接口已经有人负责完成。但是实习期间,还是让我们明白数据是怎么传递的,数据的格式是xml格式传递的,自己还要用dom4j来解析这些数据,因此学到了dom4j,随便学了日志管理的log4.j等。这时候完成了阶段性的测试,就是用Spring+Spring Mvc写一个登录系统,登录成功之后进入主页,记录都是通过远程调用得到的。同时也学了Jquery,Jquery 的学习是在w3school上完成的,把上面的案例写一遍,其实也没有记住多少,倒是熟悉了w3school这个帮助手册。把jquery的选择器,事件都基本熟悉一遍,知道简单的效果实现。公司封装的UI是在Jquery基础之上的,这样的UI基本不需要自己去想怎么写js代码,只要知道怎么传递参数就OK了,但是jquery还是需要掌握的,毕竟封装的UI并不是能够完成每一件事。UI各种前端的容器,元件,组件,结合起来本生就是为公司量身定制的,所以简便了代码的书写。有一次项目组喊我去实现一个checkbox全选的效果,我信心满满的花一个下午用jq写了效果,结果同事提示说,这在UI组件里面就有了,当时直接骂自己混蛋,连api看都不看就直接动手实现了。
走完这两个阶段,也到了毕业答辩时间了。我是在边学新技术的情况下边写论文的。头一个月根本不想管什么论文和设计的事,先忙公司的培养计划。到4月份的时候,学校催促了,手忙脚乱的弄论文,本想用Spring + Spring Mvc框架升级一下原生的MVC模式开发的,但是各种说服不了自己,两个星期的周末,共四天,把论文凑齐字数就交给学校初审。现在想想,我的这种态度,连我自己都说服不了,我不知道这种态度写出来的论文是怎么通过的!
学校明文规定论文查重是在知网检测的,由于知网比较贵,我选择了paperpass查重,在网上看到的回答是paperpass的审查要比知网严格,所以以为在paperpass查重通过就万事大吉,第一次是19%的重复率。为了以防万一,做了大量修改,第二次检测13%的重复率不到。然后意想不到的结果发生了,学校拿去检测的时候,我的重复率是30%,吓了我一跳。女朋友的论文都是我帮她改的,她的在paperpass上面做两次检测,最后一次19%,学校用知网检测居然在10%多一点点,我paperpass的13%在知网没有通过,我一脸蒙逼,气急败坏!我可是花了100个大洋在pp上面检测了丫!我心灰意冷的想大量修改论文的时候,学校又来新通知:为了尽快帮助学生参加论文答辩,论文重复率允许在35以内!有时候就是这么的逗比,我4天写好的论文就这样拿去参加答辩。现在我想了想,papperpass确实应该比知网严格,但是有一点当时我没有注意,那就是,我论文中附上很多代码,pp是不去审查代码的重复率的,但是知网会去比对代码的重复率,所以女朋友那篇论文重复率比我的底,因为她的代码几乎在附录,我的直接放在论文正文(为了拼凑字数)。结果两个网站的算法不一样,导致差点死在查重上。不过佩服我们班那些重复率为0的,简直是用“神”字来形容了。

从实习到打杂

经过公司两个阶段的培养,心里还是很没底,不知道到底能不能胜任开发。把真正的生产任务看得太神圣化,导致做事情畏首畏尾。毕业答辩回来之后就进入了打杂的生活,这在培养计划中属于第三阶段:考察阶段,就是跟着指导老师的脚步,一步一步走向开发。其实,做真正的开发之前,在校已经独立写过web版本的信息管理系统,包括登录模块,信息的增删改查模块,翻页算法等,都是自己独立统一完成的。毕业设计的电子商场,也是用Servlet+Jsp+JavaBean这种原始的Java Web开发模式开发出来的。现在想想动手能力应该不算差,但是一种畏惧的心里占据自己,一直有一种力量告诉自己不行,这不是学校的那种学习案例和Demo,导致开发过程中遇到一点点技术不懂就不敢继续动手,而是等下班回家找答案,看视频,第二天再来解决,这种思维严重托慢开发的节奏。
在这里还要感谢我的指导老师,我想只有大公司才能提供一对一的老师指导方式了。有时候害怕自己的技术不行,但是其实是需求理解不到位,业务理解不到位,这点才是新人的致命点。不过后来我跳槽到创业公司之后,在没有指导老师的前提下也学会了独立起来,来新公司到今天有两个月了,从听需求到写代码实现需求,从自测到bug修改都是一个人完成,从前端的js代码到后台的mapper.xml的书写,都是自己来完成的。大公司有大公司的好,小公司有小公司的妙,无论是大公司还是小公司,只有适合自己的,给自己尽快提高的,快乐的工作的才是属于自己的公司。很多时候并不是说自己有整个思路才去写代码的,而是先顺着自己原来的思路去写,看哪一步遇到了问题,要怎么解决,不行可不可以换思路?等你完成一个模块,下一个模块就可以按照上一个模块来完成了,最后你发现,一切就是对数据的增删改查,这就是人们口头经常说的,初级中级工程师级别的CRUD。
实习中,项目组每开发一个版本都是有一定的时间周期的:需求评审,需求评估,代码编写与自测,敏捷测试,集成测试等等。我从学校参加完毕业答辩回来的时候,恰好代码编写阶段结束,就只能从修改bug开始,这完全属于一个打杂的范畴。后来又写了两周的junit测试,导致现在来到本公司,发现他们都不写junit测试,刚开始心里憋着难受,想想这怎么能行?直到干到现在,我也渐渐被溶化,不写单元测试反而是一种习惯,想想那些写单元测试的人真的很苦逼。同时还参加了2个版本的需求开发,第一版本的需求集中在前端,第二个版本的需求集中字后台。参加上线的时候还有各种补助,当时听了还挺开心的。对了,公司内部一直鼓励在内网写文章,一篇文章就是一张50元的移动充值卡,渐渐的也体会到写技术文章或者心得体会的文章不仅能够对自己进行总结,还直接得到收益。当然现在csdn写博客没有移动充值卡了,在csdn写博客是一种坚持,更是一种分享的精神,还希望继续写下去,那将变成一种习惯。

北京,北京

8月初,我开始走转正流程。一般来说,走完3个流程就正式的转正,第一个流程是拿生产中曾经碰到的还算是难题来给你解决,有时间限制,一般是两三天,越快越好。第二个流程是考察编码规范,就是前面提到的Sonar扫描,每个月只有一次考试,所以需要转正的同学提前通过第一个流程考试,上报第二个流程,第一个流程是部门出题,第二个流程是公司统一考试。第三个流程是考察安全准则规范和与上级面谈。在这个阶段可以适当的根据能力来提出加薪,一哥们转正的时候就是提出了增加薪资系数,结果成功加薪。我走完的第一个流程,正在走第二个流程的时候就离开了。以致我爸很多次问我是不是因为能力问题而没有转正成功,我说第一个流程别人都是一个周末拿回去做才完成的,而且是边百度边做的,我只要一天就完成了(用几个字符串的处理方法和正则表达式就解决)。我告诉我老爸来北京是为了来追求梦想,北上广一直是勇敢者的天堂,现在的北京互联网就像当初改革开放那样遍地充满机会,我不想在一个从事航空行业的公司,薪资却坐不起飞机云云,其实我明白,我说的这些都是扯淡的。离开的原因是很复杂的,只能套用前边文章提到的话:

在重庆的日子里,我最喜欢看的是夕阳。有时候是站在公司楼顶看夕阳,夕阳会顺着猪八戒大楼那边落下去,这时看看公司楼顶栽种的盆摘,有种惆怅之感,只能感叹夕阳无限好,只是近黄昏。我周末也喜欢看夕阳,每到周末,就去周边走走,在桥梁上看夕阳也是别有一番风味。然后走多了,想的东西也多了,就毅然决然的做了离开重庆的决定。

然而,半年的工作经验或者说是实习经验来帝都很尴尬的。有些企业说,我只能算是没有工作经验的应届生,但是我想作为一届应届生去参加校招又不行,人家规定是2017年毕业的应届生才有资格。所以,我只能以一个应届生的身份来参加社招。10月中旬来到的北京,拿不出出色的简历,眼看金九银十的佳季渐渐远去,再找不到工作。只能有两条选择,第一个选择是去黑马程序员培训,等待明年的社招,这是最无奈的想法,还特意去了黑马程序员培训基地看了一眼,以为这个寒冷的冬天就在这里度过了。第二个选择是打道回府,边复习边在猪八戒威客网做个兼职,但是感觉在猪八戒赚个钱难于上青天,想想以前在重庆,猪八戒就在我们公司对面,每天下班都从猪八戒路过呢!
10月底的某天,华仔去上班了,我在华仔的房间做好了去黑马的在线考试,总共50道题目,已经完成了20道,都是基础题,很快就通过了,正想做第30道题目的时候,手机震动了。对面传来:“我是xx科技的人力资源,恭喜你通过了我们公司的面试,….”。北漂不容易,我把各种的心酸都写进了前面提到的文章《金九银十北漂记 第5篇》,当然这仅仅是不容易中的一部分。然而我也要感谢华仔,有他在的北京,多了几分温暖,让我感觉到一下子凄凉的北京很有温度,很有爱,好几个周末和他的小伙伴相聚,聊的甚欢,玩各种卡排游戏,突然感觉来北漂的都是一族。找到工作之后,从朝阳催各庄般到中关村,之后只去过华仔那一次,想想还是挺亏欠他的,以后有机会应该喊他过来聚聚。
创业公司,什么都得靠自己,需求的理解,前端的效果,后台的处理,业务处理,数据库表的设计和dao的增删改查。来到新公司的头几天还怀疑自己能不能独立开发,干了两周,自己独立把贷款计算器弄出来之后,发现我行的,我可以的。公司用的Spring+Spring Mvc+MyBatis框架组合,一开始,我没有用MyBatis,而是用了Jdbc,回来熬夜看MyBatis教程,终于最后一个周末之前,把Jdbc换成MyBatis。开发了一个模块,才知道,原来涉及金融一般都是用的BigDecimal这样的高精度来处理数据,不然我以为float和double可以通吃这些浮点数运算。

2017,先定几个小目标

2016年经过了从学生到实习生,再从实习生到码农的演变,理解了Web三成架构,知道view层,servcie层,dao层作用,po、vo的区别。2017年准备到达中级工程师的级别,中级一词可能太抽象,就详细制定上半年的几个小目标吧:
1. 深入理解MyBatis。当时迫于项目的需要,快速的入门了MyBatis,然而MyBatis入门可能只需要一周左右,精通却需要需要努力+勤奋才行,今年在csdn看到很多的励志故事,我相信勤奋会出天才。看完《深入浅出MyBatis技术原理与实践》,并完成MyBatis博客专栏。
2. 深入学习Spring。后台三层架构中,view层流行有strust1.x,struts2.x,spring mvc,Orm层流行有Hibernate,Mybatis,但是Spring一直贯穿3层,而且貌似没有见到哪个主流框架能够替代它。可见它存在自有它的道理。所以看完《Spring实战》是我要完成的目标。
3. 前端的Jquery实战。最近老是劳烦前端美女帮忙一些前端问题,毕竟人家还是有人家的工作的。自己动手才能丰衣足食,写一个Jquery实战系列的博客是我的任务。
4. 看完《鸟个的Linux 私房菜》。鸟哥的这本书貌似是在大三的双11半价买的,现在还没有看完。之前看韩顺平的linux视频入linux的门,在centos6.5下玩了一个学期,后来发现linux各种问题不能解决,书上和老师用的全是windows,又切换回来windows,虽然我的电脑是win7+centos6.5双系统,但是启动界面的总是进入win。前几天痛定思痛,把win卸载掉,重新对500G的硬盘重新分区。装上ubuntu16.04,我想既然来到了linux的世界,就坚持走下去,鸟哥的书罗嗦,但是看着他罗嗦的风格已经习惯,既然选择走,就一条道走到黑。
5. 重温数据结构和学习23中设计模式。在学校学的几个破算法,现在忘记的差不多了。如果向中级和高级进阶,这两个应该是不可忽略的东西。

总之,2016已经走了,我依然身无分文,依然很多梦想没有实现,但我还是对2017充满各种期待,机会总会留给有准备的人。

2017/01/05
海淀区中关村罗庄西里

你可能感兴趣的:(挨踢生涯,普通程序员奋斗史)