时间走的真快,一转眼,我做软件开发就要满8年了。

8年的时间里,虽然从未停止过学习,但是奈何资质所限,至今仍然是菜鸟一个。

这8年的时间里,经历了太多的技术,也认识了很多的朋友,有喜乐,有愤慨,有兴奋,也有遗憾。

回首过去,展望未来,心中总会有丝丝的惶恐和担忧,也不知唯我如此,还是众生皆是。

第一年,2015

2015年,确切的说,应该是2014年,那是一个已经记不得是什么样天气的季节,我带着一身自以为天下无敌的技术初入江湖。

惶恐,兴奋,也充满了希望。

这些技术分别是javaspringspring mvcserverletstruts2jspmysqlmybatiscsshtmljavascripttomcatmyeclipse

理想很丰满,现实很骨感,真正开始做任务的时候,我才知道上边的这些技术自己完全没法灵活运用。

我知道这个技术,我也知道某些技术点怎么用,但是我不知道这些技术点应该在什么时候用。

尤其是在已经运行几年的、业务已经比较复杂的项目中,每每接收到一个新任务的时候,总是焦头烂额,没有半点思路。

所以这一年的进步确实是很大的,是迈出从理论到实战的第一步,渐渐的开始培养了自己的一些思考方式,一种有时候没法说明白的直觉。

除了从理论到实战的进步,在这个前后端分离的项目组中,我也确定了后端发展路线,一个接受上级安排的发展路线。

于是我的技术栈由原来的前后端都包括,变成了javaspringspring mvcserverletstruts2jspmysqlmybatistomcat

于此同时,也接触到了一些新的后端技术mongodbsvnmavennginxeclipse

不过,虽然是做后端,但是由于总是要和前端打交道,加上自己的兴趣,我还是自己业余学了一些前端的新的技术,如当时用的angular js,node js

在这个阶段,我几乎相当于从零出发,各方面都是绝对的成长和进步。

但是对我影响最大的技术应该是mongodb,刚开始的时候还是2.x的版本,在当时网上相关技术文档还很少的时候,我因为工作需要,开始研究副本集和数据库升级。

这个过程中有学习能力的锻炼,有思维方式的锻炼,也有技术上找回的自信。

这一年过去,我的技术杂货间由原来的14项变成了20项,也初步了分出了一些主次。

第二年,2016

转眼来到了2016年,这一年,我还在原公司。

不得不说的是,我很幸运,幸运的是在入行的时候遇到的领导和同事都非常友好和包容。

和我一起进公司的30人,到这一年结束只剩下了4个,大部分换了公司,小部分换了行业。

我不知道他们都经历了什么,有的是自己走的,有的是被劝退的。

但是对于我而言,如果不是当时领导和同事的友好及包容,或许我也会和他们一样,换公司或者换行。

因为我心里十分清楚,当时的我和他们在技术和能力上并没有太大的区别。

很多时候,好的结果可能并不是因为自己有多优秀,而是因为身边有优秀的领导和同事,是他们成就了自己,是他们造就了自己。

虽然还是那个公司,也还是那个项目组,但是不同的是我们项目组有了更多的项目。

技术永远是为业务服务的,所以不同业务的项目中,所用的技术自然也会有所不同。

于是乎,在这一年里,我的技术栈又有所变化,在原有的基础上又增加了linuxactivitipoismsrabbitmqmd5java emailweb servicespring schedulerediswordpresswordexcel

在这些新增的技术中,有的是由于工作所需,有的是由于业余爱好,有的是直接技术相关的,有的却是软技能。

在摸索实现activi自定义流程的过程中,和上一年学mongo极其相似,也是文档极少,很多时候不能不断自己思考和试错,培养了学习能力、思考能力,也锻炼了自己的耐心。

rabbitmqredis这两个中间件,也让我在除了mysql之外,打开了中间件技术中新的世界,也使我对于技术架构有了更多的理解。

同时,虽然我们是前后端分离,但是当时运维的界限却不是很明确,因此在多次的项目部署过程中,对于linux部分常用的一些操作,我已经到了相忘也忘不了的地步。

wordexcel这两个办公软件的大量使用,使得我在这方面的熟练度,在之后很长一段时间里都比很多人具有优势。

一年12个月,我这一年的技术栈就新增了13项,我的技术杂货间也由原来的20项变成了33项,假如这是我财富的增长速度,那该多好。

软件之路学无止境,在这里初露锋芒。

第三年,2017

辗转间,来到了2017年,年中的时候我换了工作。

其实我是不想换的,从某种程度上说,我是一个有些偏安逸的人,有好的领导,有好的同事,有自我感觉良好的工资,我为什么要换呢。

但是没有办法,由于公司经营问题,不止是我,大家都只能选择离开。

不过在离开之前,领导安排预研了一些新技术,例如springcloudspringboot,很幸运的是,这两个技术现在越来越流行。

新的这家公司,和我第一家一样都是外包乙方,而且甲方都是同一个,所以技术方面多少有些重合,例如

javaspringspring mvcmysqlmybatismongodbsvnmaventomcatspring schedulerediseclipseword

之前的33项技术栈中,重合的大概13项,还有20项无奈的变成了库存。

至于这些库存到底是暂存还是会永久封存,此时此刻,难以预料。

能够确定的是,在这重合的大概13项外,新的公司中我的技术栈进一步扩容。

在这里,我又接触和学习了jmssybaseoraclejpasonarvisioactive mqjenkinsjmeter聚合支付和统一支付

新的这些技术中,大部分只是拓展,例如jmsactive mq是拓展了消息中间件的具体技术,之前已有rabbit mq

sybaseoracle都是关系型数据库,之前已有mysql

jpa是数据库框架,之前也有mybatis

所以这里收获更大的,则是jenkinssonarjmetervisio支付

支付从专有业务上拓宽了我的视野,visio则让我的软技能更上层楼,而另外三个,则让我对一些规范的软件项目流程有了更深入和全面的理解。

在此之前,我知道的部署就是直接手动打包上传,然后java -jar,压根儿没听过自动化部署和jenkins

而测试,自己也就只知道单纯的功能上的点点点,所谓的性能测试和jmeter,一概不知。

这可能也是由于上一家公司有专门测试团队做这事,而我也没有去了解过。

实际上,我记不得在这里是否有用过junit,或许有。

因为我记得我是在这里知道的sonar,一般sonar里可能会有junit覆盖率相关的内容,正是因为sonar,我才开始了解各种代码规范。

只是对于junit,我实在是没有太多的印象。

这一年,也可能是和下一年的上半年一起,我的技术杂货间由原来的33项增加到了45项,忍不住再次感叹,假如这是我财富的增长速度,那该多好。

在这45项中,有23项时不时会用一下,另外的22项,不论愿意或者不愿意,都只能暂时解甲归田。

第四年,2018

在技术更迭的长河中,不知岁月流逝,恍惚中又到了2018年。

或许是我命好,也或者是运气好吧,在这家公司中,我的领导和同事依然非常友好和包容,尤其是当时的领导,给了我很多的帮助和信任。

但是,在深圳呆了许久,总有思乡的念头,机缘巧合之下,在这一年年底我从深圳回到了武汉,工作自然也换了。

武汉的新公司,是第一家公司的同事推荐的,这个同事热情、乐观、幽默,犹记得在第一家公司他请我吃的饭,到如今我都还没有请回去。

在换工作之前的大半年,由于项目的升级,我用上了前一年前领导让我预研过的技术springbootspringcloud,使这两项技术也从理论进入到了实战阶段。

同时,有了四年经验了,总感觉需要高大尚一些,所以也开始了设计模式的学习,可惜的是,除了单例模式,其他的似乎一直都没怎么用到项目中来。

换工作后,由于是年底换的工作,这一年中剩下的一点时间基本就是适应环境。

再加上入职的第一个任务是做一个activiti工作流相关的项目,所以相当于是把2015年用的技术又重新从杂货间翻了出来。

不过,环境的改变必然带来认知的改变,所以技术栈中增加了禅道postman

于是,这一年结束,我的技术杂货间中从45项变成了48项,这也是我入行以来,增量最少的一年了。

第五年,2019

一路颠簸,时间的列车就开进了2019年。

这一年,大概是我在那之前的工作时间中,最有成就感的一年。

当时的团队在一片和谐中发展壮大,我想着可能能在那里干一辈子吧。

当时的业务是一汽红旗车联网,无论是从基于实体行业而言,还是从红旗品牌来说,我的心里都充满了自豪感。

那段时间,我觉得工作特别的有意义。

记不得多少次半夜十一二点还在乐此不疲的开会,也记不得多少次下班了自己在住的地方免费忙工作的事。

心甘情愿,不怨不悔。

在这一年里我参与了很多个项目,也就用到了很多技术,之前技术栈中的javamybatislinuxsvnmavennginxtomcatspring scheduleredisspringcloudspringbootjmssybasejpasonarvisioeclipsejenkinswordexcelmysql等等二三十项统统派上了用场。

不仅如此,技术栈中又增加了ideagitvueelement uiCAhttpskeyclockoauth2jwtkafkadocker车联网

我的技术杂货间又从48项暴增到了59项,如果这是财富增长的速度,那该多好啊。

遗憾的是,这代表的不是财富增长速度,而是我技术上欠的债,又变多了。

工作中的事接连不断,技术债也越来越多,晚上十一二点还一直在电脑旁的场景,已经变成了家常便饭。

但是我却很少觉得累,因为心中那份说不清道不明的成就感和自豪感。

只是,好景不长,世界并不会因为我的愿望和成就感而做出太多的改变。

大概是因为公司体制和类型的原因吧,说好的一期、二期、三期,结果一期才做完就内外失火,最终好好的团队分崩离析。

第六年,2020

伴随着上一年问题,新的一年来了,2020年继续人心惶惶。

同时,流言四起,要被开掉和背锅的说法此起彼伏,而我也被调到了另一个项目组,虽然也还是车联网,但是已经不再是一汽红旗。

突然间,犹如泄了气的皮球,虽然还没有失业,但是却似乎更甚失业,那是真的付出了心血的项目,这就没了,毫无办法。

我被调到的新项目组中,还有我过去一年多以来的直接领导,以及那个介绍我到这个公司的同事朋友,他们没做多久就离开了这个公司。

在新的项目组中,事情就没有之前那么多了,有一段时间我的工作量很不饱和,于是在新领导的安排下,学起了hadoophbasehdfsflink

这样算来,我似乎也是会大数据的,只是这些技术暂时都还没有在实际项目中用过,仅存在于我的demo以及博客中。

这一年,并不顺利,最终在年底,也就是在这个公司刚好做满了两年的情况下,我在一片惶恐中离职了,然后去了之前一个领导和别人合伙开的创业公司中。

在那个做了两年的公司中,留下了太多的记忆,领导和同事一如既往的友好和包容,不论是在一开始的项目中,还是在后来的项目中,领导和同事始终都对我不错。

虽然最终的结局不如人愿,但是公司上层的战略问题,也是我接触不到的级别,太多人无能为力。

离开那里之前,我的技术杂货间59项增长到了63项,技术债又变多了,但是更糟糕的事却不是技术债。

第七年,2021

2021年,我再也不是外包了,终于变成了自研。

新的公司比较小,一个公司的人还没有之前项目组的一半,可能是由于前领导合伙创业的原因吧,我看起来被委以重任,是后端开发,是技术组长,也是技术主管,还是架构师。

只是,可能是因为我并不具备创业思维吧,我看到的只是我有一个不能管的后端、一个不需要管的前端、然后就管我自己。

与此同时,在我入职之前,由于自己的粗心,我竟然没有谈工资。

然后在我上一家提出了离职之后才收到了offer,发现工资比之前还低了一些。

虽然最终经过协商,我的工资恢复到了税前和上家公司一样,但是需要试用期,试用期打折,也没有了公积金。

可能正是因为一开始就不顺利吧,所以我始终无法静下心来,于是又重新找了工作。

幸运的是,两个同事推荐,一个在武汉,一个在广州,两个都通过了。

起初,我是准备就在武汉的,所以去了武汉那个新公司上班。

但是令我至今愧疚的是,我去那个公司就只上了一天就跑路了,给当时介绍我的前同事朋友造成了不好的影响,也给那家公司人事同事造成了一些麻烦。

一直想着回武汉了请吃饭的,一年多来却一直没找到机会。

之所以干出了这样的事,一方面是广州这边给的工资确实多很多,另一方面,是因为广州这边的甲方领导多次联系我,表达了足够的诚意,即使我说我已经去入职了,他依旧希望我过来。

话说回来,在那家我一堆头衔的创业公司中,短短的三个月,虽然不是很愉快,但是我依然学到了一些新的东西。

小公司追求的就是快,所以在那里我知道了一些成型的快速开发工具,如jpressjboot若依以及nacos,还有网络穿透工具

我曾从南回到北,今又自北再归南,我的技术杂货间也从63项涨到68项左右。

新的公司挑战巨大,是个需要英语的外企,而我在读书阶段英语及格的次数也就一只手左右。

这对于我,是挑战,也是冒险,其实心里完全没谱。

新公司新项目,在我高达68项的技术栈中,匹配的有javamybatislinuxmavenspringcloudspringbootgitideajenkinsoraclemongodb11项。

在现有技术栈的基础上,新公司很多流程和工具及内部系统都需要学习,例如teamsservice nowzoomslackjabberqseatlinkupscwtimesheetonenote

这些工具和系统有的很简单,有的也还是需要花时间熟悉。

同时,这个项目中还需要用到其他的技术或对接系统,例如gsdcyberflowsjiraconfluencelambdajava streamwebfluxreact jscucumberspringcloud limitdevops流程junit等等。

这里需要说明的是,对于junit,其实我是很早就知道,也用过的,但是对于这里的junit来说,我觉得之前的那些根本不能算数。

截止这里,如果包括那些内部工具软件的话,我的技术杂货间再一次暴增,从68项直接涨到90项。

即使不算那些工具软件,也从68项增长到了80项。

当然了,一直以来,其实都还有一些没有算上,有的是过于简单,有的是我虽然知道,但是连demo都没有写过的,例如crtrobo 3tputtyxshellvscodewebstormxmindpahonavicatsql developrbacspringsecurity等等,如果这些都算上,就已经破百了。

英语问题,以及如此多新的东西需要熟悉,还有全新的业务领域,这一年其实很是焦头烂额。

幸运的是,我又遇到了好的领导和同事,我们小组最多时候七八个人,除了我,每一个英语都能流利交流。

他们特意把需要直接英语语音交流的任务分给了别人,尽量给我英语要求低一些的任务。

与此同时,面对我诸多小白一样的问题,他们每一个都不厌其烦的解释和指导。

想当初,我连正确的junit都不会写,也不知道他们当时是否有怀疑我是经验作假。

第八年,2022

忙碌的一年过去,来到了疫情不断地2022年。

经过前一年的努力,已经熟悉了大部分的流程和工具。

同时,背单词,看美剧,以及每周的印度经理会议,我的英语也有了一些进步,印度经理说的话也已经能勉强听懂可能有一半左右。

只是,我的英语之路艰难,能听懂的依旧太少,也还一直无法张嘴即时交流,还只能说一些提前准备过的内容,但愿在坚持学习中,今年能够有所突破。

今年快过去一半了,技术栈上增长不多,一是对于之前的内容不断还债,像jenkinsreactgitthreadsource code这些。

另外就是在java本身的技术上,由于开年的一个性能优化任务,使得在jvm调优方面算是有了一些小小的经验,也实际了解和使用了jmapjprofilerjstatjvisualvm等jvm调优工具。

同时,在业务上也在进一步针对性的学习,对于目前的工作以及我自身来说,这个可能比技术更加重要。

马上就满8年了,我的技术栈高达百项,同时也是技术债高达百项。

对于现在要用的技术来说,可能只是30项左右,而这30项左右,任意一个拿出来,我都没有信心说它有8年的水准。

或许,说5年我都心虚。

有人说量变产生质变,但是放在这里似乎并不适用。

路漫漫其修远兮,在还债的路上不断增加新债,也在还债的路上不断的寻找希望。

生命不息,奋斗不止,谋事在人,成事在天。

奋斗为了什么,为家人更富足、为亲朋更便利、为子孙更自由!

回首我做软件这8年,如何集齐百项技术栈相关推荐

  1. 山月大佬做了个极客时间返现平台及技术栈介绍

    客时间给广大码农提供了非常优质的关于互联网技术的内容,其中价格也很公道. 有电商的地方就有渠道,而我作为一个渠道商可以从中获利中间差价. 于是山月今天心血来潮做了一个返现平台,方便大家从中购买,并且省 ...

  2. AI一分钟 | 科大讯飞2017年度财报:营收54.45亿元,净利润4.35亿元;滴滴首谈无人驾驶战略:只做软件不造车

    2018 区块链技术及应用峰会(BTA)·中国 倒计时 1 天 2018,想要follow最火的区块链技术?你还差一场严谨纯粹的技术交流会--2018区块链技术及应用峰会(BTA)·中国将于2018年 ...

  3. 做软件开发10年了,我准备转行了,做自媒体

    文|洪生鹏 编辑|静子 微信公众号:洪生鹏 最近读了<能力陷阱>这本书后,感触很多. 一般来说,做人,最重要的是要有自知之明,量力而行,量体裁衣,明白自己该做什么,能做什么,该如何做.然后 ...

  4. 用HTML做软件UI用到的的一些技术

    做WEB开发的想把网页做成应用程序的界面,开发应用程序的又想把程序界面做得和WEB一样.本文介绍一下用HTML做软件UI用到的的一些技术. 其实HTML UI也不是什么新鲜事了,Norton Anti ...

  5. 毕业生该不该做软件开发这一行?

    计算机行业这一行每年都毕业无数的同学,大多数都抱着美好的愿望想在这个行业扬名立万,但是你适合吗? 我觉得能够在这个行业混的比较好,首先是喜欢.第二是认真. 如果自己做不到,不要做这个行业了,毕竟是青春 ...

  6. 做软件还是做电商,跪舔还是尊严?

    转型是必然的.记得十几年前在北漂,某互联网大神问我:"从前是干嘛的?" 我当时刚从一个小软件公司裸辞来到北京,大脑充满了"软件能拯救未来"的思想,那时的很多人认 ...

  7. 做软件工程师需要具备怎样的能力和素质

    软件工程师主要进行软件前期的项目需求的分析,然后对项目进行风险评估并试图解决这些风险,然后开始进行软件的开发,后期对软件的进度做相关的评估. 一个比较贴切的比喻:把一款软件比做一座大桥,那么软件工程师 ...

  8. 做软件销售在中国有前途吗?

    现在中国盗版泛滥,如果卖盗版光盘5块一个,大概生意还可以,如果卖正版的呢? 对于个人我相信没人会卖正版的,但是企业就不同了,有些软件买盗版的还是不行的,比如企业管理类的软件,如果没有软件公司我相信是很 ...

  9. 女生适合做软件开发工作吗?优势在哪里?

    不知道大家在念书的时候,有没有留意到这样一种现象,工科类的院校女生可以说是凤毛麟角,有的专业几乎是清一色的男生,就算是有女生,也只有一两个. 难道女孩子都就读于文科类的院校了吗?其实不是,不少理科类的 ...

最新文章

  1. Python 自动化运维 pycurl
  2. 跳表SkipList
  3. 使用Docker-镜像命令练习
  4. Mac 环境变量配置
  5. System Center 2012R2之SCVMM云部署SCOM(2-2)
  6. Sublime与远程服务器代码同步工具SFTP
  7. apply、call、callee、caller初步了解
  8. linux之Fedora 20 开启telnet服务
  9. 测试Flume-1.6.0写入HDFS(Hadoop-2.7.2)的简单实例
  10. WP短代码实现“chat”文章聊天形式 文章也能活跃起来
  11. 解决svn小乌龟没有绿勾
  12. 凌小宁教授给软件新人的演讲——选择的力量
  13. 从前端技术到体验科技(附演讲视频)
  14. 会计学基础期末考试试题及答案
  15. 原型和原型链和instanceof
  16. 互联网公司招聘黑话大全
  17. 贵州高二会考计算机考试题,贵州省普通高中会考数学试题.docx
  18. C#语言入门、xamarin基础、.NET MAUI全栈开发技术综合笔记
  19. 图片局部无失真放大的两种方式
  20. 学习云计算前景如何?云计算在物联网中到底起到什么作用?

热门文章

  1. 如何选择一家靠谱的APP开发公司?
  2. Ubuntu18.04 宽带拨号连接
  3. jetson tx2移植RT-LINUX
  4. java操作elasticsearch出现:NoNodeAvailableException[None of the configured nodes are available
  5. 关于git push origin master 提交报错
  6. Win11安装Ubuntu子系统(副图形化界面安装教程)
  7. 独立按键扫描程序的思考(整合两种算法)
  8. Win10系统电脑开机黑屏只有鼠标的解决方法
  9. 中等职业学校计算机课程标准,中等职业学校数学课程标准
  10. GeneratorConfig.xml文件配置详解及IDEA中的使用,处女座小编整理,值得一看