2016 review

来源:互联网 发布:windows pe如何分区 编辑:程序博客网 时间:2024/05/01 08:23

这篇文章,算是对自己16年在工作上的一个总结吧,自己想学什么、干什么,又学了什么、干了什么,做一个全面的 review,好让接下来的工作学习目标更加的明确一些。

16年六月中旬,我开始参加工作,拿着自己在学校里的那点水,信心满满的参加招聘,也的确收获了好一些 offer,顿时自视甚高。结果就是在项目上饱受打击。

其实最显而易见的就是,我所拥有的根本不是技术,只是知识,这个显然无法为公司创造直接利益的,更何况我这点水并不算什么。不过现在看来,受到这样的挫折算是个及其幸运的事了,至少这令我变得非常的谦虚,觉得所有同事都或多或少有我所不了解的技术,让我在工作中充满了动力。好了,感慨就这么多,接下来一点一点做 review 吧。

在校的时候呢,感觉自己也是个大神,除了大家都学的东西,也会用 Spring、会一些算法,持久层的东西还有关系型数据库,多多少少也能用上,页面虽然写的丑,功能呢也都能出来,汤姆猫也会用,Linux也能搞搞,嗨呀,这四舍五入的也算能做“系统”了。结果进入第一个项目上,就仿佛感到一丝不同寻常。

其实呢,我做的第一个项目时间上就一个月,然后就撤出来了。这是一个公司的产品,还处于设计阶段,所以拿来让新人做做基建工作,熟悉熟悉公司框架。依稀记得用 SVN把框架代码 down 下来,都不知道怎么导入 eclipse 的尴尬(maven 项目,当时都不知道这是个啥),以及看到一个项目中多个工程层层分级的错愕。公司给的这个框架是一个做传统项目用的 SSM 整合,当时里面没多少东西,好像就整合了一个 Shiro 。那一个月任务可以说非常的轻松,就是在不断的做简单的、各种形式 CRUD 功能,再复杂些也就是涉及些表关联(不怎么复杂)。因为是第一个项目,我印象非常的深,当时我负责银行账户模块(基本的一级账户,不怎么涉及业务)的开发,可能因为勉强是还有点水,SSM 的简单 CRUD 还算掌握的快,然后开发完成的也快,做完立马提交代码,之后就是惨不忍睹的挨批:
“你这是逻辑什么鬼!”“把代码写的跟翔一样也是厉害”“你这也算是测过了,功能是能用就算过了?我要是这个参数不传,你怎么办?”“这个异常为什么不处理?至少也打到日志里吧”

在如此总总的教育,我也越发注重代码质量和考虑代码块容易引发的问题,尽量减少可能发生的隐藏错误。这个月收获非常大,算是初步了解了传统项目下的技术构成,能把自己融入到 team coding 中去,对编写业务代码也有了一个自己的体会。

一个月之后,我被分配到一个正式项目中,这也是个传统项目,进组的时候项目刚结束第一次上线,处于一个需求调整和解决 BUG 的阶段。于是乎,我在这里经历了一系列的让程序员变得“丰富”的日子。

首先,学着读代码。这是个漫长而艰难的过程,至少到今天为止,我任然算不上擅长。读其他人的代码,对我来说,是一个非常好的学习和进步的任务,我可以学着如何快速定位一个代码模块的输入、输出,哪些东西其实是无用的,哪些东西其实是不可靠的,这不光可以提高我的 coding 能力,还能让我迅速的熟悉业务模块的功能点,哪怕我并不明白其业务含义。

然后,研究项目里各位前辈封装好的工具或是抽象出来的功能接口,这个对我在代码逻辑上的提高有着决定性的帮助,毕竟大多数抽象、工具的的实现在我看看来是非常优秀的,是很值得我去学习的。还有就是这些工具能让我了解许多常用功能是如何去实现的,让我了解这些功能的实现需要依赖哪些库,令我的 coding 能力极大的提高。

接着,就是各种插件组件和工具的使用了。例如 maven、vtd-xml、shiro、JUnit、slf4j、ehcache 等等。这些都是开文所提到的技术,应用化的东西,提升效果显著,至少在权限控制、资源管理、报文解析、字典设计上体会蛮深的。

最后就是文档能力了,概要设计,需求分析,操作手册等等,这些东西通通写过,也算是对业务掌握能力的提高吧。

接着往下说,我在这个项目上大概待了有三个月时间,最后一个月项目比较松,也开始了我工作以来第一次正式的培训、学习时间。

说到这里,我想提一下我的 report manager,我的老大,一般情况下我们都叫他程哥,其实在我心里,更愿意称呼他为程老师。他是一个很斯文的人,而且很愿意与我们交流(其实是指导),我觉得自己遇到的第一个老大是他而感到非常荣幸,从任何方面来说,他都教会我很多东西。

回到正题,这个时候老大安排我跟着一个前辈学习大数据相关的技术,大概有一个月时间,过程比较磕磕绊绊,主要技术是 Hadoop 和 HBase 的体系,加上我自己学习的 Storm、kafka 的东西,算是有了一点 Java 程序员什么都能干的影子(手动滑稽)。之后,就开始跟着前辈做了一个大数据的项目,期间遇到的问题比较多,提高也多,主要在分布式方面打下些基础,并且发现自己在这方面也有些兴趣,对于职业规划上有一定的影响。

写着写着,发现时间线就到了现在,目前回归了传统项目,是一个微服务。因为种种原因,我从一个以前的模块开发人员变成系统主要开发人员,说实话,这个项目并没有什么技术难度,没有一笔带过的原因是因为这个项目从头到尾,从需求分析到原型设计到技术选型到开发到调优我基本都是主要参与者,考虑的东西很多,体会也很多。随便说一句,项目在架构的建议下我选用的是 Spring boot,对于微服务来说,这真的是个非常不错的东西。项目期间的种种,代码效率的调整,静态文件压缩,事务一致性,很多以前不考虑率的问题都要去想,感觉是很有意义的经历。

OK,review 到这里,也就把自己这段时间的经历过了一遍,总结一下,差的东西还是很多,技术全面性有待提高,技术深度自己还算满意,接下来就是多多熟悉工作中接触到的技术了并由此深挖一下,尽量把本身金字塔地基打的牢靠些。

结尾对接下来的日子做个大致的规划,首要是技术的研究,分布式、大数据基础平台的技术自己也多看看、学学,工作中的技术多多熟悉,对于项目的架构多理解理解,尽量能有些自己的想法,提高下设计能力,慢慢来,有句话很喜欢,作为结束语吧 —— —— 勿在浮沙筑高台。

0 0
原创粉丝点击