美文网首页上班这点事儿优秀的android架构师程序员
程序员的2017年工作总结自我批判,与2018的学习规划

程序员的2017年工作总结自我批判,与2018的学习规划

作者: android框架安卓 | 来源:发表于2018-07-23 14:28 被阅读48次

    又到了写年终总结的时候了。每当这个时候思绪总是翻江倒海,因为太久没有反思和总结的缘故,一年才总结一次,确实是有点久,欠的账的太多,梳理起来有点费劲。这里依旧还是写跟点跟工作/技术相关的总结。

    盘点:

    2017这一年自己从前到后主导了个小项目,技术体系使用的openresty + spring boot/cloud + postgres + statsd + graphite + grafana + sentry + elasticsearch + kafka + docker + kubernetes。这一年依旧是延续上面的技术架构进行深入:

    docker & kubernetes(使用级别)

    停留在使用阶段,考虑到云平台技术的成熟,假设自己出去创业,感觉也用不到自己去搭建kubernetes,直接用阿里云、腾讯云等的kubernetes的基础设置就可以了,于是就没有深入研究。

    spring cloud(实践及扩展级别)

    这一年算是深入实践了一把spring cloud,不过生产还停留在Camden.SR6的版本,现在的GA版已经是Edgware,pre版本已经到了Finchley M4。而且从Camden版本到以上版本迁移的话,貌似有一些不兼容或变动,有点疲于跟进,另外主要是生产已经稳定运行了,就没有力气再去折腾升级了,维稳为主。等做下一个项目的时候再考虑直接用最新版吧。不过随着service mesh的成熟,分布式的这一套更进一步固化到基础设置里头,感觉spring cloud后续可能优势就不那么明显了。而且随着go语言流行,以及相关生态的丰富,渐渐的也有很多高并发服务采用go来替代java了,后续如果不是业务特性强的应用,可能用java的优势就不那么大了。就像Java未来也许不再是电商的首选开发语言这篇文章说的。

    spring security(使用及扩展级别)

    这一年又去看看了spring security,还有spring security oauth2,感觉少点什么,缺乏将一整套技术实施去替代既有的权限控制体系,没有大规模去应用,总感觉没有深入理解。另外开始重视系统安全方面的知识,学习中。

    kafka(使用及了解基本原理)

    kafka版本太杂,公司有的用0.8,有的用0.9,有的用0.10,17年推出了0.11,紧接着1.0版本也出来了,对于初学者来说,感觉有点措手不及,一入技术深似海,真的是学海无涯啊,于是就只能挑着点看了。主要是研究了0.8版本的一些使用和实现细节,另外研究了0.9版本与0.8版本的一些区别,还有就是今年主推的kafka stream,后续可能基于1.0版本再去深入了解。

    redis / postgres / mongo / elasticsearch(使用级别)

    这些今年用的不多,也就用一用。

    说说关系型数据库,一直对SQL不感兴趣,也没有深入研究,大底是面向对象看的太多了,另外看过了太多复杂业务需求写复杂SQL然后把系统搞挂的例子,总是觉得通过其他方式的实现是可以替代复杂SQL的,而且性能更优。NOSQL的出现,很多非事务性的查询,基本都可以通过将数据按查询需求结构化/冗余化同步到NOSQL里头来实现。

    其他几个NOSQL,若要排行,估计redis得优先,毕竟使用太广了,明年估计得再深入学学redis;对mongo不是太有好感,像分片复制啥的,感觉都不如elasticsearch成熟,这里头要在排序,elasticsearch排在mongo前面;elasticsearch的话,以前有想过要深入学习的,不过版本变化太快了,以前还是1.x版本,如今都6.x版本了,欲哭无泪,特别是java api的使用,学的疲于奔命。还有就是mongo跟elasticsearch的查询语法学习成本太高了,elasticsearch还好一点,有ES SQL插件大部分场景可以用SQL来查询,还是比较爽歪歪的,mongo就没有SQL插件来查,于是就更不想学mongo了。

    rabbitmq(基本使用)

    对于消息队列,传统的mq当中,就属rabbitmq最耀眼了,不过随着kafka、rocketmq的出现,有点被淹没了。不过还是值得一学的,有待深入实践。重点看open-messaging规范,从这个入手。

    openresty(稍微上手)

    第一次写lua,感觉调试特别费劲,没有idea可以提示,总是不断来来回回重启,请求,看日志验证;后来写多了,稍微上手,感觉还可以,主要是nginx秒级重启,非常爽。有待深入研究。不过随着go的出现,后续go也有网关出来,比如janus,目测二者可以拼一拼。

    arch / system design(入门级别)

    系统架构方面,感觉还出处于入门级别,后续有待深入学习和提高,不仅仅是技术架构,还有业务架构。

    评价

    收获 体验了一下从零到一的后端技术架构与实现,期望是初步具备了一个人出去创业拉起一整套后端技术架构与实现的能力

    不足 系统访问量太低,不容易暴露问题,部分技术实现在访问量在百万级、千万级、亿级是不同的,而且高并发场景会把一些技术实现的不是太好的问题给暴露出来,这点算是今年做的这个项目的硬伤的。

    目标完成情况

    继续每天sg博客,继续提升sg声望(完成)

    这个算是完成了,16年突破1000声望,17年突破6000声望

    多回答stackoverflow的问题(不达标)

    这个完成的不大好,16年是255声望,17年是457声望,总体上升24052名,不过排行在98894

    每周末技术复盘(没完成)

    这个几乎是没完成,是最致命的,18年要严抓这个

    夏天还是需要继续跑步,期望能学会游泳(完成)

    游泳没学,但是跑步是有坚持的,除了下雨还有加班太累没有跑,其他基本是每周一跑,17年累计跑了80多公里,巅峰时期一次可以跑4km,但是持续不久,18年希望能多跑几次5km。

    少加班、多提升时间以及项目管理能力(不达标)

    习惯性加班,感觉身体要被加班逐渐加班坏了,时间规划不大好,好几次研究问题研究好几个小时到一两点才睡,对身体损伤太大。

    经历:

    先是第一阶段,就是看着公司倒闭,说实话,那家公司我是最开始进入的,最开会,是因为我们公司的技术总监,说那边需要前端,想让我过去。当时的公司还没又几个人,项目还没有正式的启动,项目还在策划中,所以我就过去了,跟我我们大老大就开始的漫长的艰辛创业过程,当然,虽说是创业,但是跟我们没有半毛钱的关系,

    我们归根结底就是一个打工的,就算我们把自己当成公司的创业伙伴一样,但是公司领导层面还是不允许你我们这样的想法,以及,我们这样的做法,也不会把我们当成创业伙伴来看,而是说白了就是一个打工的。

    一个东西,当你陪伴他从无到有,到从有到无,那种心情,其实很难过的。其实我还是一个比较感性的人。今年过来年的时候,就已经觉得公司要支撑不下去了,但是具体能够支撑到什么时候这个我也说不准。每天依旧是早起上班,到公司之后打开编辑器,不知道干些什么,于是乎就找了几本书,开始学习angular1。

    但是只是知道angular比较火,但是又不知道火到什么程度,对这些都是一点都不了解的,然后就是照着书上的东西敲了几遍,当然自己也没有看的太细,以至于到后面,有很多的东西,都掌握的跟皮毛一样,再后来的找工作中,自己被虐的跟狗一样

    。接着就是到每天下午等着,下班。一天到头来,根本不知道自己究竟在过着些什么,也不知道做了些什么,反正就是觉得,这样的生活过着很没有意思,但是很轻松,甚至比一些事业单位里面的人还要轻松。就这样的连续近半年的时间,让自己的那些战斗的意志慢慢的开始被磨灭,到最后,连自己到底还会些什么都不知道了。

    每天都在担心着,担心突然有一天这边真的就没了,自己出去怎么去面试,怎么去找工作。但是该来的事情总会来的,而且来的还那么的突然,就突然有一天,我们老大把我们叫过去,说你们各自开始找工作吧,这边支撑不下去了。当听到这个消息之后,不知道自己是应该开心呢还是应该难过。

    开心是因为自己真心不喜欢这样的生活,这下子总算是能够离开了,然后再换一个环境去生活;难过呢当然是一方面看着自己的辛辛苦苦做出来的东西,并且陪伴着自己一直走过这么久的东西就这么突然间没了,心里也一时间接受不了。另一方面则是,自己这半年多来都没怎么动过代码,而且那些新的技术,像nodejs,vue,angular,react之类的东西,我压根就不懂,也从来没有学过,只是听说过,但是没有深入的去理解以及学习过,跟不用提什么实践来着,这些我根本就不知道,但是就目前的公司招聘上面都会要求这些的。这种担心以及这些情况就让自己的陷入了一个比较被动的局面。但是事实已经成这样了,自己也只能去接受了。

    从那边离开,就踏入了艰辛的找工作阶段。为什么说坚信呢,因为这一段时间正好是酷热的夏天,每天也是同样的早出晚归,只是做的事情跟别人不太一样,人家是在工作,我却是再找工作。面试一家,就犹如石沉大海一样,没有任何回音,就算有些企业,自己能够联系到hr,了解一下结果,但是结果总是那么的不尽人意.

    一次次的打击,又一次次的让自己的信心开始一点点的磨灭。本来我是一个很自信的人,但是到最后,就变得我感觉我怎么什么都不会,本来以为前端工作很好找,但是由于之前说过的问题,vue angular react,这些最近比较火有比较流行的框架我是一窍不通,人家问的我只能说我用的依旧是曾经最古老的及时jquery,就关于jquery自己掌握的也并不是特别的精通,仅仅只是停留在使用的层面上。

    所以这个工作找的很艰辛,一次次被毙掉,就这样,不知不觉已经过了一个月,整整找了一个月,对于自己来说,找一个月的工作,自己该是有多么的菜,而且,这种自卑,就莫名其妙的充满了自己的整个内心,让我根本不知道自己还能做些什么,当时就有一种想要回家去种田养猪的感觉。

    但是实际上,自己的运气并没有那么差,可能真的只是自己的能力不够好,而且自己的基础知识掌握的不是特别的牢靠。因为在面试中问的很多的东西,自己并不是很轻松的能够回答上来,所以这也就造成了自己目前的那个局面。但是最终的自己是找到了一个地方能够收留自己,为什么说是收留呢,因为在那个时候自己觉得自己就真的很消沉了,而且自己根本不知道自己还能够做什么,或者说就觉得自己根本就找不到别的工作了。

    所以一听说能够被录取,那种发自内心的一种开心,当时就什么都没想,就过去了,然后就开始工作,当然一开始并不是特别的忙碌,但是平静的总是暴风雨的前夕,所没过多久,各种任务就开始接踵而来,再加上自己做事情认真,以及做出来的成果比较好,所以在这边,就渐渐的成为了一个主力,而且是必不可少的主力。为什么呢,因为各种工作都是需要自己的去亲力亲为的,而且,一有项目,必须点名要我,当然自己也是觉得挺开心的,但是渐渐的发现,如果在这么下去,自己就真的会变成一部干活的机器,或者是大家所说的搬砖的。

    我知道,程序员都喜欢这么戏称自己,而且也都是这么去做的,每次做事情总是把从百度找来的办法直接就贴上去,或者说,从github上面找来的方案不加思索的就给使用到自己的项目中去,如果不合适,就重新再找。渐渐的我发现我开始迷失自己我,觉得自己每天做的都是重复的工作,再加上这边的工作节奏真心很紧凑,每天回到家里基本上都是十一二点,每天两三点到家也是很平常的事儿,表面上说是正常上班,但是基本上感觉比996还要严重的多,自己就真的一点空余的时间都没有,每一个项目过来,就能觉得自己被剥去一层皮,而且还没等愈合好,就又重新的进入战斗.

    当然有人会觉得我这人不太能吃苦,其实并不是那样的,只是渐渐的觉得自己依旧没有太大的提升。所以没过多久,还没等自己正儿八经的转正,就提出来离职,然后又投入到另外一的一个找工作的战斗中。

    第二次找工作,是更希望自己能够进入一家比较不错的企业,更希望自己去大厂,于是乎就去美团,去哪儿,滴滴等企业面试,当然,只有美团希望找一个有基础的而且能力很好的员工,说白了 ,就是高级前端开发工程师,但是又不仅仅是高级前端开发工程师,又或者说是一个全栈开发工程师,但是对于当时的自己来说.

    根本不够那个级别的,所以就直接被pass掉了,但是滴滴以及去哪儿,这样的企业,更想找一个初级一点的,所以旧被自己给pass掉了,后来莫名的就去了一家游戏公司,起开发游戏引擎。说实话,因为自己也有一个游戏梦想,从最开始的时候,自己就希望能去以一家游戏公司做游戏开发,想暴雪、EA这样的,当然,这也仅仅只是梦想,就凭自己的能力也根本就不够那个水平,所以就没能够去这样的企业。

    而听说这边是一家游戏开发公司,自己当时想都没想,就直接去了。就这样在这开始工作,当然游戏公司的开发模式可能跟一些互联网公司的开发模式不太一样,这边更倾向于项目的架构,所以来这边,从一开始就是做项目的设计,所以瞬间又觉得自己的设计架构能力好差,甚至说就没有,再加上自己的基础底子也比较差,所以,瞬间觉得自己要想做好还是有很大一节的差距的。

    于是就每天开始看书,但是又根本不知道自己在看些什么,也不知道自己每天在学习些什么。也不知道自己需要学习那些东西,所以就准备从基础的东西开始看起来,将自己的基础能力给打扎实了,这样对于以后的工作,或许就会更轻松了。

    上面便是我2017年的经历,当然也不能算是2017年的总结吧,但是有了上面的经历,让我又开始认识到了现在的自己,也让我深深的认清了自己,也让我找到了我再接下来应该走的路,当然,有些时候与其临渊羡鱼,不如退而结网这个道理真的很好,与其羡慕别人,还不如说自己好好的努力,让自己成为更优秀的人,一点一点的提升自己的品质和能力,或者说做点自己应该做的事情。

    明白自己真正想要成为的能,是工程师,还是搬砖的。

    2018年的憧憬当然是美好的,但是对于现在我来说,只是希望自己能够安安静静的,将那些基础的坑,给填平,将自己的基础只是给扎扎实实的打好,另外在提升别的一些方面的能力,做一些自己曾经想做而且一直想做,但是又一只不做的事情,花点时间来陪陪家人什么的。

    其实不管怎样我都希望我能够成长,而且我也希望自己变强,我希望天下所有的程序员跟我一样,一点一点的变强。赚更多的钱,完成自己曾经未完成的梦想。

    2018年学习计划:

    重点学习

    系统架构(CASE MOCK)、深入系统安全(OWASP)、深入分布式缓存(redis)、深入研究open-tracing(kafka)、深入研究nginx/openresty

    非技术类,目标是研究金融投资相关以及跟技术的结合。

    前沿技术探索

    service mesh,spring cloud可能风头正劲,但是也仅仅限于java领域,但是service mesh可是不限语言的,进一步将分布式架构固化在底层,目测又是一场技术变革。

    AI这块,一直想学,但是没找到动力去开始,估计先从一些机器学习的理论开始,找实践点切入边学边实践。

    具体指标

    硬性指标

    继续每天sg,sg声望突破10000

    stackoverflow声望突破1000

    每周技术复盘/CASE STUDY(完成let it crash系列)

    每周完成至少一篇投资类文章(逐步深入金融业务知识)

    年度跑步公里数达到100+公里

    软性目标

    完成系统安全、分布式缓存、open-tracing、nginx/openresty的学习

    service mesh研究与实践

    金融技术相关尝试

    高并发多找机会实践

    多研究优秀的开源项目架构/代码

    多写开源项目                                   如有什么建议和疑问,欢迎留言讨论。

    欢迎大家加群技术交流:367685933

    相关文章

      网友评论

        本文标题:程序员的2017年工作总结自我批判,与2018的学习规划

        本文链接:https://www.haomeiwen.com/subject/fuqjmftx.html