2013年8月,本科毕业后进入北京一国企部门做java开发。
毕业时的技术能力是:能够独立使用jsp,servlet开发简单web项目,能够自己在程序中写sql并使用jdbc连接mysql(无连接池),使用while循环手工处理ResultSet,简单了解div+css,会在windows上简单使用tomcat。对于java本身,仅限于会用List、Set数据结构;对于servelt,只会request.getParameter接收参数,request转发和response重定向,没有了解过当时流行的ssh,数据库不会建索引,以为缓存就是在程序中把从数据库查出来的数据保存在一个变量里。
面试时最低要过2500,最后进的公司薪资是税前4000,税后3100+每月租房补贴500,房租1200。
当时部门领导还是挺为我们考虑的,三个月内,不用我们工作,自己学习技术,相当于给了我们一个缓冲期,一起入职的十个小伙伴都感觉非常爽。由于我和另外一哥们当时能用java输出hello world,后来被任命为小组长,每人负责帮助4个小白同学学习java基础。按说我应该很开心,毕竟刚一工作就比同来的同事们更受领导看重,可是我心里压力是很大的:第一,待遇真的不高,一个月省着点能给女朋友买件衣服,根本别想存钱;第二,在这里,我感受不到进步,看不到广阔的前途。在自学的第一个月里,我需要花很多时间跟小组里的同学说着一些基础得不能再基础的东西,我作为组长,这是应该的,我也愿意成为别人心里一个被感谢的对象,可是自私地说,我没有看到自己的进步,没有了解到任何新东西,没学到任何新技术,而时间一直在流逝,我心里很着急。第二个月的时候,领导开始让我们学习hibernate、spring、springmvc,我高兴坏了,这才是有用的东西,我终于感觉我要上道了!人生第一次学习传说中高大上的框架,我还是挺认真的。hibernate的一对多多对一多对多映射配了好多遍,自动生成实体类,也学着写HQL;还有spring,这可是阿里要求精通的东西,太有前途了,我虽然不明白其中的原理,但是能用,@Autowired就能自动引入,太神奇!于是,我之后,凭借仅仅是会用的仨框架,安慰了自己九个月。做了一个陪标的项目Demo,然后正式加入了一个项目组,后来发现六百多万的项目并没有明确的开发任务和计划,而且,貌似开发就我一个人。天天驻场不知道该干什么,一般没人管,上午十点到那,一会儿吃个饭睡个觉到两三点,实在无聊甚至四五点就开溜回家,优哉游哉。我觉得我在浪费最宝贵的一段生命,我本可以利用机会好好充实自己,但处于毫无氛围的环境里,实在打不起精神,也曾促使自己学习,但是无人交流,无法坚持。忍无可忍,我开始投简历,在一次领导责问我干了什么工作的时候,我惭愧地低下头,又抬起来,提出离职。事后领导再三拒绝签字,但我去意不容更改!原来培训时小组里一个关系不错的哥们发了一句说说:不给涨工资的挽留,都是耍流氓。第二天,领导就签字了。感谢好哥们!
2014年7月,进入一家曾经比较辉煌的电商公司做java开发。
当时的技术能力是:会用hibernate、spring、springmvc开发web项目,会用mysql,会用tomcat。值得一提的是,根本不懂原理,只是会用,自己能不能成功搭个系统框架心里都没底。
进公司时给了8000。说是每个季度有绩效,还有年终奖,一年下来至少15个月的。没想到一直8000了一年多。
没敢多要,甚至感觉是侥幸遇到一个不专门做技术的好领导面试才得到这个机会,当时还挺开心的,想着一定好好干出一番事业!一进公司就面对着许多新东西,让饥渴的我又高兴坏了!在鹏哥,这位我心中的技术大牛,的指导下,我依次接触到了好用的maven,快速做系统界面的easyUI,新的模板引擎velocity,简单好用又流行的持久化框架mybatis,soa架构的常用实现dubbo+zookeeper,传说中的redis,我还渐渐熟悉了linux部署项目,apache控制请求转发,我亲眼见到了企业开发时的项目架构方式,我知道了开发要加日志便于记录状态和调试,我知道了可以使用RESTful风格设计资源访问方式和url规范,开发接口的时候一定要多使用try、catch处理各种异常保证正确的返回信息,我知道了乱糟糟的代码要进行重构。
我们部门的项目最后失败了,领导走了一个又一个,同事也走了一拨又一拨。
2015年6月1号,我们几个干技术的在部门倒闭之前被调到了另外一个公司重点部门的创新开发小组。
领导很好,常带我们去吃大餐,对我也很好。当原来部门一起过来的哥们都陆续离开之后,我一个人接手了原部门所有系统的维护,实际上,在原部门没有被解散之前,所有后台相关的事情全都归我负责,一共十几个系统,原来的部门领导曾经跟我说:我们全靠你了!我压力山大,但很开心,我知道了整个系统的各个方面,对用到的各种技术都亲自实践了一遍,问题逼着我学会了调试和部署,Linux也更熟练了。直到原部门解散,我算是让系统成功坚持到了最后一刻。
之后我投入新部门的开发,我实际上负责了一个小项目的开发,从项目搭建到各系统的集成,从系统设计到任务分配和开发,现在依然坚挺地平稳运行着,个人感觉是对之前所学的一个小总结。
然后,这个创新开发小组被解散了,小组领导和之前小组的同事全部离职。
2015年11月,我被调到部门的主业务小组,同时接手了原小组留下的几个最主要的系统。业务的领导跟我说,我们全靠你了!于是,我从头开始了解那几个我根本没有参与的系统,在这个过程中,我又学到了新的项目架构,另一种Nosql数据库mongodb,定时任务框架quartz,java并发包中线程池、队列等,亲手部署rabbitmq队列服务。我重新开发了推送任务,目前接手的各系统可以稳定运行。基本完成后,我又投入到新小组的开发任务,了解了git、学习了另一种应用服务器nginx,简单学习了python,shell脚本,在同事的分享中,大概了解了搜索框架solr、mysql中间件atlas、linux负载均衡lvs、新的缓存数据库ssdb。
我觉得很多东西理解地并不深入核心,所以开始了解spring、springmvc、mybatis、dubbo、zookeeper、redis的原理,jvm内存管理;
我觉得很多东西还没有达到站在高处,从架构的角度去比较、选择、应用各种工具的领悟,所以开始关注架构设计、各公司架构演进方案。
今天,我还没有离开现在的公司,尽管确实有些颠沛流离,而且被我克走了至少4个大领导,而且一直8000了一年半,但是我觉得有收获。不过,我认为我只是做了一些最基础的积累,层次很低,今后我可以以现在2倍的速度去努力达到更高的目标。
2016年,我要在脚踏实地的同时,走得更好。