卢文娟:作为程序员,这是我工作以来的复盘

作者:拓荒牛 分类:默认分类 时间:2026-09-13 10:14
企业信息化服务-智慧企业 - 市场部

这是我工作以来的一个全面的复盘,也是对未来心情的整理,如果我的经历能够警醒别人,也当是做一件好事。

第一份工作:在某航空公司做4年Java程序员

武汉理工大学研究生毕业之后,就直接进航空公司了,当时有别的offer,不过因为家人希望我去国企,所以最后选择航空公司。

在学校其实做的是大数据和算法相关的项目和竞赛,工作以后也是第一次接触Java,不过Java不难,我又有C++和Python基础,大概学习一周我就可以参与进项目中了。

◾️第一个项目是参与飞行跟踪系统,飞行跟踪的一个核心功能是,实时跟踪航班的所有相关信息,并及时告警,而我就接手了这个部分。

这个部分涉及到Kafka消息框架,还有RabbitMQ队列,这些工具让我负责的告警模块和其他模块完美的解耦。

有新需求过来,然后和数据方对接完,就可以通过消息监控到想要的数据,再完成告警逻辑,最终生成的告警信息,用特定的格式,也是用kafka发送到前端,实现前后端解耦。

这种方式要小心的一点是,告警越来越多,消息越来越多,如果没有及时处理,就会造成延迟。

所以,在一边完成需求方提出的新需求的同时,我一边将整个模块进行重构,在重构的时候,将数据源进行了整合,能同时处理的逻辑,尽量放在一起处理,不做重复的事情;引入了Redis缓存,将一些重要的重复使用的数据放入缓存;优化了线程池等等,这些操作都是收到了效果的。

当然,由于时间比较久远了,大概记得一些,其他也记不太清了,整个重构过程我又不能影响模块的正常运行,老数据和新数据无缝衔接,在老数据消化完之后,彻底启用新的模块,整个过程花费半年之久。

当我重构完成之后,整个模块开发新的告警比以前开发新告警,花费更少的代码,却能运行得更加高效顺畅,使开发门槛变得非常低,原本一个告警开发可能需要一两天,变得只需要一两个小时,公司就给我指派了徒弟,我就把这个部分慢慢移交给徒弟了。

◾️第二个项目是一个小项目,是飞行性能计算系统,这个系统很小,没有人维护,一直压在我们项目经理手上,客户来了就圆过去,我到公司没多久,项目经理就把它交给我。

交给我的时候,没有文档,只有一个已经没法运行的源码,包括java源码,还有VB源码,因为源码是太久远的了,里面的库已经基本绝版了,所以运行不了。

我就依着里面的库名和版本号,一个一个从网上找依赖包,有一些找不到的,我就在原来运行的机器上,历史文件里面去找,最后把包都找全了,才把源码跑起来。

接着又发现,整个系统,除了java web部分是后端部分逻辑和前端网页,还有VB程序供java调用,还有exe可执行的文件,因为有不同的人在上面一层一层嵌套他们想要的逻辑,导致整个系统错综复杂,完成的功能却简单单一。

于是我又开始了我漫长的重构生涯,将这个系统的框架换成当时流行的spring boot,说实话,最终逻辑当然很简单,但是从复杂的代码里,抽丝剥茧看懂整个系统的逻辑很难,涉及到飞机的很多专业知识,所以也读了很多专业书籍,前端还是用他们原来的,只有一个网页。

◾️第三个项目是飞行计划系统,这是唯一一个我从头到尾参与和主导的系统,也是我耗时最长,做得最辛苦也最开心的系统。

当时也是机缘巧合,公司组织人去中国民航大学学习,当时我在重构性能计算系统过程中,感觉自己的航空专业知识严重欠缺,正好公司有这个学习民航知识的契机,我是很想去的。

不过当时我入职不到半年,公司要求一年以上的,我有点小遗憾,我的师父就问我想不想去,我说我想,他就说他有个名额,如果我想,他就推荐我去,然后我这个入职不到半年的就有了资格。

只是去了之后发现,竟然报名的没几个人,除了我,还有隔壁研究院两个博士,另外就是同部门三个直属领导(项目经理,产品线经理,部门经理),和一个产品经理。

在中国民航大学,脱产学习3个月,学完民航专业本科四年的专业知识,还要通过最终考试,所以基本白天学习,晚上还要聚在一起复习,我只当是一个好的学习机会,让我可以把性能计算系统重构好。

学完回去之后,经理就告诉我,要启动一个全新的飞行计划项目了,我这才知道原来是这么回事,估计另外两个博士也不知道,所以当我们经理邀请他们时,他们推脱了。

在学校是学了飞行计划的理论知识的,只是理论和实际差了很长的一段距离,另外国内是没有商用的飞行计划系统的,民航大学有个教授,在学校里研究飞行计划,只是限于学校之内的研究。

在我们启动飞行计划系统之后,经理就让我研究飞行计划的算法,因为几个人里,除了我是开发,其他要么是领导,要么是项目经理做需求的。

为此,经理把所有能得到的资源和部门相关的人都拉过来,给我讲他们的逻辑,而我又要从中抽丝剥茧了,经理也把民航大学的教授雇过来两天,让我随意问他问题,我把该问的重点思路都问清了,更多的,他也给不了。

其实国内几乎所有的民航公司,都是用的国外的飞行计划系统,其中大部分都是用的德国汉莎公司的某飞行计划系统,包括我们,是公司的一大笔开销。如果自主开发,会节省很大一笔钱。

所以,经理打算带着我们一起去德国汉莎公司,就让签派部门申请培训(这是给予客户公司的服务),并把我们五个人(三位领导,一位项目经理,还有我)带上一起参加。

培训一周的时间,除了正常的软件使用问题,更深度的飞行计划核心算法问题也会问一些,不过仅限于一些,如果涉及到不能透露的,对方也直接说这个是公司机密,不能透露。

所以回来后,关于核心算法还是比较模糊,但也只能通过查看数据结构,检查数据关系,写短小的代码进行测试排查,来推测背后的逻辑;再基于对理论的理解,做大胆的假设,并逐步检验,来确认自己的想法;另外由于这个系统处于初期,涉及到一些人的利益,为防止有人有心捣乱不配合,所以保密开发,去别的部门拿数据都要找好借口。

领导帮我处理好外援,项目经理整理界面逻辑和使用细节,我就专心研究算法,对算法的探索过程,整整持续半年多,才完成一个初步完整的,能计算出近似结果的算法,而这才只是开始。

当我把算法作出初步版本,这个算法就需要做四件事了:

一是重构,由于算法是经历重重尝试做出来的,这个研究过程当然不会在意它是不是好看,而是能不能得到结果,所以一旦做出来了,就要考虑是不是好看和是不是好用的问题了;

二是验证,初步结果自然只是针对某一个测试数据,是不是对其他数据有效,对其他机型有效,误差有多大等等;

三是展开,做出结果只是测试数据,那所有涉及的数据如何接入真实数据,数据很多,航班动态数据,通告数据,气象数据,航路数据,地理数据,机型数据,性能数据等等很多,有些不大记得了。

四是优化,误差有多大,能不能误差再小一点,能不能运行再快一点等等;

重构都已经是老熟人了,只是这个系统涉及几乎和飞行,飞机,天气,地理相关的所有数据,算是航空领域最综合的系统了,所以每次重构也是大动作,不过没有上生产,怎样都行,因为对飞行相关内容理解不到位,有时候新的内容出现时都是第一次见到,合作部门也没能力一股脑告诉所有,而是遇到问题才说原来有这个东西,所以重构没下五回。

验证都是要和签派和性能部门共同完成的,验证过程持续了一个多的春夏秋冬,经历了几次签派部门人员更迭,人员一更迭,新员工过来又想重头开始验证,说自己没验证过,毕竟是一个全新的系统,又承担着要命的责任,自然要更加谨慎一些。

当系统经过初步验证,第一次和领导汇报后,项目组终于开始加人,加了两个开发同事,帮忙开发数据接口部分,以及签派的逻辑,还加了很多外包,写界面的代码,项目经理开始管理这些外包的界面工作。

再一边和签派部门协同验证的同时,我也在做优化,从最开始的5s以上,变成2~3s,充分利用了内存,在没有启用更好的服务器情况下,计算速度和汉莎达到持平。

至于算法的逻辑,其实没有什么参考意义,因为感觉除了飞行计划,不会有别的需要这样的逻辑了,它整个过程最后简化成了积分和迭代的过程,当然更多细节我也不太记得了,而且这个算法是保密的,所以本文不会写这个。

这个系统我依然使用的是我熟悉的spring boot框架,Redis缓存,zookeeper集群和jenkins自动部署,首次投入生产使用是在国产飞机ARJ21的首航上,为此提前装入和验证了机型的性能数据,测试很久才上线。

在完成了整个系统的生产上线后,一晃我已经封闭并保密加班了三年,这其中领导曾经和我说,有人在打听公司做飞行计划算法的人,毕竟就算秘密开发也是有风声,为了防止泄密,他让我把已有的产品文档和源码修改成错误的版本,把正确的版本移入另一个服务器,只有我和领导能够登录。

只是一朝完成,再回顾这三年,除了沉浸在其中还挺开心以外,置身其外时,发现三年除了和产品相关的交流,和人交流几乎没有,因为读英文文献比较多,有时候碰到人,都不会用中文打招呼了。

我的父母也常常叹气说我太内向了,我自己也认为内向不好,在我眼里,似乎做开发都是这样的。

此外内心也有一些失落,沉浸三年做的东西,是公司的,跟我没有什么关系,都不算我的积累,就好像花三年做了一场美梦后,梦醒什么都没留下。

所以,我想做与人打交道的工作,我就辞职了,当然这个过程中,领导做了很多思想工作,但是我一旦认定,就拉不回去了,这个时候我还是挺天真的。

对于这第一份工作经历,我一直忐忑能不能写,因为是保密的,最开始我写了公司名,后来我又把公司名删了,只是我不写又怎么去找别的工作呢。

后来一想,我签保密协议的只是我研发的算法细节(这个我当然不会给任何人透露),这份工作占据了我4年最宝贵的青春,它就是我的财富,我凭什么不能写呢,如果不写的话,这4年我是见鬼去了吗。

第二份工作:咨询公司做助理

第二份工作是我辞职以后再找的,本来是想跟着杰彬老师学习一些知识,后来得益于一个机缘,当了他的助理。

这份工作主要做一些社群工作,还有文档整理,和人打交道稍微多了一些,不过主要是和老师的学员打交道,是一个其乐融融的环境。

跟着杰彬老师,一个很大的收获是学会了思考。

如果不是学会了思考,我可能撇不清别人和自己,在第一份工作过程中,我自己的感受是很沉浸其中,很开心的,但是我的父母会觉得我这么内向,太丢脸了,不行。

于是,我就把我父母的思想当成了我的思想,我也开始觉得内向不好,觉得自己好丢脸,好差劲,当然这一份反思,是我现在才意识到的,因为自从我学会思考,我就没有停止思考,到底我想要什么,到底什么适合我。

我现在反思的有两点:

第一是我刚刚写第一份工作想到的,复盘下来我发现我的领导对我是特别好的,而且我能够一直近距离的和多位高级领导接触,这是很难得的。

但是我在工作中竟然没有意识到这一点,反而对隔壁部门的老油条推卸责任的事情耿耿于怀,天天和他们争论;

第二是我还是没有改变那颗觉得自己内向的心,妄图做和人打交道更多的事情;

所以我做了一年以后,我觉得我应该去做更大的突破,所以我去做销售了。

第三份工作:做销售

正经的销售做了半年多,是做房产销售,当然做得很不好,所以没什么可说的,我就辞职了,事后我反思了一下,觉得做销售我可以回到软件的行业,所以又换了软件销售的工作,软件销售的工作没有签合同,是先试用,做得更差,因为一单都没签到。

做销售彻底让我看清了自己,我确实不适合销售之类的事情,而且工资达到了最低点,五千以下的工资,在深圳无法生存,说实话,我从来都没有想到我怎么会把自己置于这样的境地

所以那一段销售的时光,是我最无奈的时候。

第四份工作:web3程序员

找到第四份工作,我无疑是幸运的,因为在此之前,我已经有两年没碰代码了,而且年纪也大,一般的公司都不愿意收,所以我是自降身价的找的工作。

当时,我正好接触web3,觉得这是未来的风口,所以在家自学了一些相关内容。在自学期间,就开始web3的文章,所以我的博客都是solidity相关,那是因为我不熟,才能去写;不像java都很熟了,也没什么可去写的,除非有实际项目,否则都不知道该写什么。

毕竟我Java有将近两年没写代码了,学习web3也不过两个多月,在找工作时,也挺忐忑的,看到web3的开发基本需要经验,而我这点自学程度只怕不能符合要求。

再想了想,如果让我独立开发solidity,还是心里没底,但是如果独立开发Java后台,哪怕这么久没写,也觉得没什么问题,觉得是小事,毕竟能遇到的问题以前遇到过也解决过。

所以这回我想做更理智的选择,从自己的爱好和擅长出发,而不是头脑发热做不熟悉的事情。我决定找Java相关的工作,再和web3或金融沾点边,毕竟web3这个风口,我既然看到了,怎么能够做旁观者,而金融是可以穿越时代的,不管在web2还是web3,都有生命力。

最后找的是web3量化工作,一下子和web3也相关,和金融也相关,正是我想要的,所以我确实是幸运的。

这份工作我是写DEX量化策略,就是机器人,因为是DEX,所以要写智能合约,进行链上的操作,后端用的是Java,使用web3j库来和智能合约交互,不过还是不能写很多,因为只要是算法,都是保密的,一开始我做得也是很开心,只是终究还是早早遇到了瓶颈。

这一直是我的坎,我始终没法真正喜欢上写代码,代码只是我的工具,所以我反思了一下,似乎我只要把一个东西做完,就会遇到瓶颈无力期,我想我应该只是非常喜欢做产品,并没有很热爱某个工具。

只是这一次我更理性,我知道我不能冲动离职,否则我的生活就有困难,所以我暂时并没有离开,而是在找合适的时机。

我的反思

这应该是被生活搓磨过后,我终于变得成熟的样子吧,也希望看到文章的你,做一个成熟的自己。

当然我也不会屈服,生活需要钱,实现梦想也需要钱,以前的我只有梦想,忘记了生活,忽略了钱,才会把自己过得很惨。

人性三大弱点,贪,痴,妄,我都体验了一遍:

  • 痴:最初的我,认知有限,没什么见识,眼里只有自己的梦想,没有看到背后的东西,干什么都没抓住重点,总是很迷茫

  • 贪:当我有一天有能力看到背后的东西——钱了,又想两者都要,我既要继续寻找梦想,又要赚钱,把自己弄得很焦虑,压力很大

  • 妄:当我意识到我的精力不足以既要梦想,又要赚钱时,我开始不愿面对,逃避,沉迷想象,看爽文爽剧,能获得短暂愉悦,但解决不了问题

我想,如果面对现实,就应该知道,要解决的一个很大问题,那就是“消贪”,只要发现自己承受不了,那就减减减,把当下事情的量和难度都减到自己较轻松能完成的程度。

既然梦想还挺远的,那就先把寻找梦想的事情先放到一边,先解决吃饭问题,再解决梦想资金,其次才能谈梦想。

当我早上醒来,决定先搁置梦想的时候,我心里一大块压住我的石头松开了,原来是这样:

我一直觉得自己有必须要做的事情要做,我绝对要找到这件事情,我总觉得我一生时间太少了,所以不能浪费我的时间(不管是谈恋爱,结婚,还是娱乐游玩),而对于能拉长生命长度的事情很热衷(比如养生,修炼)。

我要先解决眼下的生存问题,先把梦想这块石头移开,因为它现在妨碍我解决生存问题,等生存完全没问题了,再把梦想纳入我的生命。

我突然想到,那些在死前一刻才意识到生命浪费了很多时间的人,未必不是幸运,像我这样早早意识到生命的短暂,不浪费一刻想要寻找到真正使命的,这不是过得更糊涂嘛,还被生活鞭笞得很痛苦。

本文写程序员经历写的更详细,因为一开始是为了找程序员的工作而写的,而后续我要找的也是程序员的工作,所以这方面就写得详细一些,后来在慢慢加新的东西,最近加了最新这份工作的内容和我的反思。

当前用户暂时关闭评论 或尚未登录,请先 登录注册
暂无留言
版权所有:拓荒族 晋ICP备17002471号-6