时间如梭,昨天才和老婆过完七周年,这七年来也还算坎坷,毕竟夹杂了四年的异地。昨天吃饭的时候我就在想,时间过得真的很快,这一眨巴眼18年就要结束了,再过四个月我就工作整整两年了,也觉得是时候总结一波了,古人云“吾日三省吾身”,我呐,吾“两年”一省吾身,毕竟三省那是圣人的要求,对吧,^_^。
先回顾一下工作经历吧。
在工作经历之前要交代个背景,就是我大四上学期(大约是2016年11 12月的样子),学校组织了一波“下厂实习”,就是和某培训机构有所合作,把我们放在那免费培训一个月。期间我们起到的“作用”有:(1)引流,引了一大批学生去,然后会有人单独跟你接触,询问是否交钱继续培训,包分配。(2)壮场面,时不时的有社会上的人来一看,哇,这么多人在这培训。(3)物尽其用,还会有银行的人来,一个班一个班的免费帮你办理信用卡之类的东西。我们得到了什么?说实话,其实培训还是有些好处的,我不否认,总结了我四年来很多的基础知识。嗯,我还有几个人,得到了“一个会包分配的培训”。后面就很简单了,教框架,教前端,教“如何面试”等等,这里面,懂的人自然懂,也不想多说,写下来也是为了让自己谨记这段历程。培训还有大半个月快结束的时候,我们的培训老师与机构发生纠纷(听老师说是机构内部有分化),我们老师就从培训的班级中带了四个人出去,跳到了另一家公司,这里面就有我,于是我就有了人生第一份工作。
我是2017年4月10号正式到第一家公司实习的,我就简称为Y吧,因为我6月份才会正式毕业,在Y实习了三个月,工作了四个月。在这我开始了人生的第一个项目,某借贷产品。我第一次写项目用的还是很原始的写servlet,配置web.xml,用MySQL数据库。这个项目,需求是老师整理的,数据库是老师设计的,我就负责后端实现。一般用户填了信息之后会跳转到第三方的借贷平台就算一个流程的结束。(本来写的很多但怕透露太多会牵扯到保密协议,我就缩为一句话“大面积捕捞不如选择性捕捞”)。第二个项目是电信项目,就用了SSM,postgresql数据库,这个项目我参与了需求分析,数据库设计以及后面安全评估等工作,这个项目我们组忙了好几个月,开发的时长其实还好,主要是过安全评估,做过的人就知道有多难了(不过我后来了解说是省份的不同所以对安全评估的要求也不同)。当时还对接了三方,我到现在都想说句MD,三方给的文档接口居然少参数,然后跟我们说没问题(三方平台没问题,提供的文档也没问题),好在后来“机智”,前后几个接口对比,发现有个参数退订的时候有,我就在想是不是订购也要带上去,就酱。然后就是安全评估,做了各种“安全手段”,到现在都对我开发有影响。。。。还有申请HTTPS,搭建高可用等等。说实话,这个项目学到了不少东西,当然还有影响,除了一些技术上的影响还有就是一般电信移动主动打电话给我,说免费开通啥啥啥的,我都会拒绝,要是想知道为啥就私信我。。。还是怕牵扯到保密协议。然后同时进行了另一个视频APP项目,招了一个安卓(一个超卡哇伊的妹子),这个项目延用了SSM+postgresql,也算是电信项目,这个项目需求分析结束之后,整个数据库设计就是我一个人了,然后搭建后台框架,实现后台代码,与后台管理系统对接口,与安卓对接口。因为受众小,不像抖音快手那样,所以没有DNS加速,没有缓存,没有流媒体处理等技术(当时也搞不出来这玩意啊。。。)这之后我接手了另一个组开发的“微商神器”,其实已经开发的差不多了,就是对接支付宝支付、微信支付这样。到这个时间段,因为某些原因老师离开了自己去创业了,有几个来的哥们被辞了,然后我觉得氛围不太好(不过我前端时间跟留在那的哥们聊了据说过得还可以),主动提出了辞职,于是在10月底,我离开了Y。
这之后就跟放了暑假一样,大玩了一个多月,后来找工作找了一个多月。。。这里我提一句,最近环境不太好,不建议裸辞。
然后于2018年1月15日,正式在公司C试用(没毕业叫实习,毕业了叫试用,实习工资一般是50%,试用是80%)。C是一家集成商,多是二次开发。来了才知道那时就我一个开发。。。后来觉得难得找到个工作,就一直坚持到现在,好在也学习了很多,如集成了Redis缓存,Netty框架等等。这边一开始来就在做对接中控的开发,不过因为开发中控是找的公司外的人,所以对接的异常缓慢,后面又陆续的对接了电子时钟,对接了两种IP电源,分别开发了电子时钟管理子系统,IP电源管理子系统。这之后又要开发智能储物柜,又对接了锁控板,对接了百度API,开发了智能储物柜系统。后来招了个前端,对界面各种重构。
在这期间我也学会了很多,除了技术上的事,还有沟通技巧、给自己制定计划等等。。。。
这期间,也学了很多编程上的规范,如:状态变量用枚举 常量等,controller只接收检验数据,数据传入service等等
不过因为代码是之前写的,现在乱乱的,service就一个干巴巴的方法,逻辑都在controller里,都不重构了。。。。罪过。
反正回顾这两年,感觉自己是一个被推着前进的人,虽然说期间买了java编程思想、java数据结构等书,也关注了stormzhang的公众号,进入了星球,购买了张哥推荐的课程。说实话,这些都有用,都是经验,但是我觉得我是被推着前进。昨天七周年我就在想,工作这么长时间了,我能给她什么?
现在我想给自己一个答案,给她一个更好的我。
于是干脆给自己立flag,要让自己去角逐。古人云,求其上得其中,求其中得其下,所以flag要立高一点。。。。
我收藏了一篇文章,有对程序员进行了如下定义:
初级:JAVA基础语法:集合类、线程、IO操作等。 web部分:servlet、jsp、session、cookie、mysql数据库等。 html不必太深 能看懂就行,js或者jquery会操作,AJAX等。框架方面:SSM+CRUD
中级:负载均衡 apache http 或者nginx均可, 队列 ActiveMQ 就行(这个是java语言写的比较贴近java ),缓存 redis,还有可以看一下mogoDB
高级:懂得jvm基本结构,要知道垃圾回收机制,常用垃圾回收算法,jvm简单调优参数, 数据库也是个重头戏,你要知道mysql事务隔离机制的实现,怎么优化sql , 要知道springmvc流程 spring的原理 事务传播机制,mybatis流程原理, 乐观锁悲观锁什么情况用,你要学会考虑系统瓶颈,系统容灾,单点故障, 你要懂得一致性是怎么回事,cap理论 paxos算法 以及zookeeper干嘛用的,能解决什么问题? 你要懂得soa架构,dubbo , 微服务 spring boot spring cloud 这些高级框架 微服务加docker等等。。
超高级:到达这个阶段,你会发现,思想最重要,语言真的只是工具而已,你应该已经学会了python scala 也可能有些R语言 来进行数据处理,flume 日志处理 hadoop hive presto hdfs storm spark 大数据 流式计算,,,
究极体:机器学习 深度学习 神经网络 人工智能。。。。
大概这些。。。顿时感觉不好了。。。。
立flag:
(1)减肥:从160减到130(没办法天天坐着,体重就这样上来了,还是身体放第一位 ^_^)。
(2)关于书籍:上半年过一遍《Thinking in Java》,数据结构。多逛逛张哥的星球,公众号。
(3)技术方面:先熟悉spring boot,搭建spring cloud ,学习docker容器,有机会尝试K8S+docker集群来一波。框架能搭建之后学习sql优化,隔离机制和乐观锁悲观锁,搭建负载均衡,走一遍amq等等。
画两张脑图吧:
好了,告辞!