如果我成为一名高工龄程序员

2024年是我工作的第八年,这八年时间我从事的工作只有一件事,那就是写代码。虽然所在的公司和行业不同,主要的编程语言也不同,但做的事情是类似的,那就是编写代码,实现需求。

我没有想到这八年会是这样经过的,八年时间可以读2个本科了,现在我给八年时间的自己下个结论,那就是:底蕴不深的技术熟练工。

职场技术人的困境

我想这是大多数职场技术人的共性,这很残酷,没有意外。

这些共性有:

  1. 没有大公司经验,就算有,那做的也是基础工作,这些工作的可替代性很高,代码和实现从互联网从很多都能找到解决方案。
  2. 在刚开始工作的时候,学习获得感很强,随着工龄增加,生活中的事情变多,做事也更加熟练,所以工作的获得感变少,很多时候都处于【舒适区】
  3. 在工作之外的时间,不一定会分配给技术成长,就算有分配时间,学习的东西也浮于表面,同时学的过程也是断断续续的。

哈,我感觉大多数人都是以上问题,这3个情况真是很精确地击中了我。

之前的文章中,我对副业的理解中有说,一定要有主业,一定要上班拿基础工资和五险一金。那么这次就从大的方向上描述,程序员主业

为什么考虑高工龄问题?

首先从大的层面来看,为何要有这个问题来问自己呢?

  1. 随着IT技术和互联网的发展变缓,公司的增长就变缓,则招聘变缓,则员工的升职加薪变缓。这是趋势,也是现实。
  2. 如果一定要有一份主业谋生,IT行业写代码及其周边是不差的选择,它是脑力技能密集型,不是手工技巧型,我是手脚笨拙,但脑袋还行。
  3. 消费互联网发展变缓,但计算机发展仍然是相对高速的行业,我们只要仍然在一线,未来就可以观察到兴起的行业和机会,就有机会抓住。
  4. 既然选择了这个职业,并且已经做了8年,说明是认可的,经验积累需要释放,未来老龄化到来,大龄程序员就是常见现象。

现在这8年的工龄,让我不得不思考:如果我成为一名高工龄程序员,我该如何做好?

编程老的地方

首先我们来看一些服务端开源项目的诞生年份。

MySQL 1979;PostgreSQL: 1986;MongoDB: 2007; Redis: 2008; Zookeeper Kafka: 2010

最老的MySQL距今45年了,就算是Kafka距今也有14年了,这才是移动互联网之后诞生的开源项目,这么一看的话10年工龄也不算什么嘛。

接着来看看编程语言的诞生年份。

Java: 1995; Python: 1989; JavaScript: 1995; Golang: 2007

我的主语言Java都29年啦,现在居然还是风华正茂。

编程新的地方

  • 一位歌手的歌,如果是经典歌曲,唱20年都有人听;
  • 一首抖音的网红bgm,它爆火的时间可能就几个月甚至几天;
  • 代码如果写在了QQ或者微信里,可以运行十多年以上;
  • 代码写在了普通的项目里面,有效期一般就几年甚至几个月;
  • 2007年,iPhone诞生后,诺基亚手机开始走下坡路,基于诺基亚塞班系统开发的软件和生态就没用了;
  • 2016年,我做全栈开发,学习的是2016年的Node,js Webpack.js,而现在过去了8年,js生态发生了很大变化,Node Webpack更新了很多版本,我学的知识已经过期了,无法再使用。

我觉得这是软件领域的特点:

  1. 我们学的知识是应用型的,更新迭代很快,年龄变大后,新入场的人可以快速上手编程技能,超越前人。
  2. 各类开源项目的源码和系统调优方面,公司对这类技能的需求较少,虽然有保值价值,但就业面窄,特别是二线城市则更窄。

做法

基于此,我觉得有几个点是我们避开这些问题的做法,而我也打算未来按照这个来做,现在后悔的是第八年才知道这个问题,太晚了,但现在发现问题了再补救,再晚也不算晚。

  1. 我们在工作中应该找难的项目和系统来做,高密度、高难度的实践是成长最快的,这些项目可能来自于大公司,也可能来自于中小型公司的核心项目组,所以还是要往核心去挤。
  2. 做的事情要是可积累的,包括:技术文章、为人处世、经典开源项目核心分析和模仿;不可积累的事情少做,比如:应用层的各类代码、增删改查业务逻辑少做。
  3. 加大技术文章的输出,不要怕错,就怕不做,好记性不如烂笔头,增加个人查询手册,把个人网站和公众号打造为自己的查询手册和对外展示的窗口。
  4. 日常关注技术领域的变化,当有新的生产力、生产工具出现的时候,做一些尝试和发文章,这一波就是AI。