35岁,真的是程序员跨不过的坎吗?

原文地址:https://blog.csdn.net/IMbRl71u7pt5X29rlEu7/article/details/79292981

昨天,我在一篇招聘的文章里,写了某个技术岗位的要求:

Web前端/H5高级工程师 1 名,年薪 18 ~ 24 万

要求:

  • 35岁以下

  • 计算机及其相关专业本科

  • 5年以上前端开发经验

  • 有跨屏开发能力

  • 精通H5流媒体框架

  • 熟悉各种浏览器内核

  • 工作细致认真,责任心强

多位小伙伴留言,质疑招聘信息里的年龄要求,想知道对技术人来讲,年龄到底有多重要。

因此,我今天特意写一篇文章,聊聊我对程序员年龄的看法,从 5 方面展开:

  • 为什么很多公司不欢迎大龄程序员

  • 为什么程序员自己也介意年龄

  • 年龄会给程序员带来的劣势和优势

  • 开发者能在哪些方面打造优势

  • 如何面对年龄这个现实问题

1. 为什么公司不欢迎大龄程序员

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

大龄程序员不受欢迎,这是很多开发者的感受,因为实在是有太多公司在招募人员时会设置年龄门槛了。

 

比如 X 为,存在社招年龄必须小于 37 岁这个门槛,还传出过清退 34 岁员工的消息……

那么,公司为什么不欢迎大龄程序员呢?

其实,这个问题并不存在!

2015 年底,我接近 36 岁,创业失败后找工作,没花几天就找到了不错的机会。

这说明,公司不是不欢迎大龄程序员,而是不欢迎能力和年龄不匹配的大龄程序员!如果你能力对得起年龄,在某方面有深入积累,年龄根本不是问题。

我们再来站在公司角度,看看它们为什么担心程序员的年龄:

  • 年龄大了,家庭课业繁重,需要平衡工作和家庭

  • 年龄大了,可能会丧失积极主动学习的欲望

  • 大龄开发者经济成本高

  • 大龄开发者管理成本高

  • 公司所做产品不需要多深的技术和业务积累,没必要用大龄开发者

2. 为什么程序员自己也介意年龄

程序员本身介意年龄,是因为:

  1. 很多公司招人时要求年龄在多少多少岁以下,让人焦虑

  2. 年龄大了,真的会丧失学习与提升的欲望,让人焦虑

  3. 年龄大了,真的会有心无力,让人失望

  4. 年龄大了,真的会不敢接受从零开始的挑战,让人沮丧

你有这些感受吗?

反正我是有的。

还有其它的担忧吗?

欢迎在本文后留言讨论。

3. 大龄程序员的优势vs劣势

640?wx_fmt=jpeg

 

关于劣势,其实我们说了很多,这里汇总一下:

  • 生活状况多,上有老,下有小,中有伴侣,横有各种社会关系,需要在时间和精力上平衡工作与生活

  • 学习欲望降低

  • 进取欲望降低

  • 能力提升变慢

  • 技术栈老旧

  • 个人认知系统固化,可塑性变差

  • 管理成本较高

  • 性价比可能变低

但其实也有很多优势:

  • 在某种技术方向上有深厚积累

  • 项目经验丰富

  • 业务积累深厚

  • 工程能力强

  • 设计、架构、分析、规划等方面能力较强

  • 解决问题能力强

  • 大局观强

  • 有情绪管理能力,稳定耐造

我们举个例子来说明下。

2015 年 2 月 7 日,图片社交 App 足记正式上线了“大片模式”。大片模式使用电影风格的截图、字幕、边距和滤镜的处理方式,能够把一张普普通通的照片修成电影大片的感觉。

大片模式上线后,通过社交平台,一传十、十传百,迅速引爆流量,大量用户蜂拥进来,团队非常开心。

然而很快,随着用户暴增,服务端出现性能问题,用户频繁遭遇闪退、超时、卡死、崩溃、无响应、信息丢失等状况……

足记的服务端,不足以支持百万、千万级的用户!

面对这样的问题,一个初入茅庐的开发者,可以解决吗?

当然不能!

所以,足记的创始人杨柳请来了青云的多名资深工程师(老程序员)帮忙解决问题,最终死中求活,通过关闭或降级 App 部分非核心功能来保障关键功能的可用性,通过服务端流量负载均衡、数据库读写分离,调整缓存结构,引入非关系型数据库、调整影响 CPU 占用率的代码等等优化,经过一段时间昼夜不息的艰苦工作,才将足记总死亡线上拉了回来。

同时,就在这段时间,Camera 360 、美图等图片软件纷纷上线了类似的图片处理方式——幸好,足记及时解决了软件的故障,才保护了自身用户群不至全部流失。

这个故障的解决,靠的就是资深开发者的那些优势:经验、技术积累、架构、工程能力等等。

4. 开发者如何打造核心优势

作为开发者,我们必须不断构建优势,才能应对年龄的增长,才能避免或延迟“年龄越大越废物”的尴尬局面的到来。

640?wx_fmt=jpeg

那么该如何打造优势呢?可以从开发技能、业务、架构与设计、软技能、算法等 5 方面入手。

4.1 开发技能

开发技能,指的是使用 Java、 MyBatis 、Hadoop、Spring Cloud、Qt、Keras、Spark 、Redis 等等技术开发软件产品的能力,这是开发者的硬实力。

深入掌握某种技术,达到精通的程度,就可以在这种开发技能上建立优势。

特别说明一下,泛泛的调用 API 完成基础开发,不算精通。精通指的是你了解某种技术的核心原理,达到可以优化、改善、定制这种技术来解决具体问题的程度。

当你在一种技术上有了优势后,习得优势过程中积累的学习、分析、设计、抽象等等能力,就可以帮助你快速掌握其他技术,达到一专多能的境界。

这个时候,你就有更强大的优势了。

4.2 业务

所有开发者都要记住一点,开发者具有双重的行业属性:软件行业属性和软件所要解决的问题所属行业的属性。

软件所要解决的问题,就是我们通常所说的业务。比如支付宝的业务是支付问题,京东商城的业务是电子商务问题,携程的业务是机票和酒店预订问题……

精通业务,可以成为开发者的优势,这是开发者在问题域构建起来的优势。即所谓的懂行。

如果业务积累方面的优势和开发技能方面的优势能叠加起来,那这位开发者,就具有秒杀 85% 以上开发者的能力。

而且,在未来,随着软件开发技术的发展,很多业务领域的高手很可能可以用非常便捷的方式迅速上手开发出他们所需要的软件。到那个时候,你只是泛泛地懂一些软件开发技能,会很难立足。

4.3 架构和设计

架构师是很多开发者的终极技术梦想,然而不是每个人都能成为架构师。也许 10 个人力有一个可以成为架构师,也许比例更小。

但是,每个人都必须要架构和设计软件的能力!

因为你没有架构的能力,没有设计的能力,就无法站在更高维度去理解软件开发,就必然被迫奋战在最简单也最容易被替代的体力化的编码工作岗位。而这样的岗位,必然是拒绝大龄程序员的。

所以,即便你还不是架构师,也不是技术经理,也不是管理人员,也不是需求分析师,你也需要在日常工作中拔高一点,经常性的、刻意地去想一想,系统的模块为什么这么划分,服务间的接口为什么这么设计,这个业务逻辑为什么要这样实现而不是那样实现,惟其如此,你才能慢慢理解别人的架构与设计,才能慢慢培养自己的架构与设计能力。

4.4 软技能

《软件架构师的12项修炼》这本书里给出了软件架构师的金字塔能力模型:

640?wx_fmt=png

 

这个模型,适用于绝大多数软件开发工程师。

在这本书里,作者说:

大多数时候所谓的“技术之玻璃天花板”,其实只是缺乏软技能而已。这些技能可以学到,缺乏的知识可以通过决定改变的努力来弥补。

我们每位开发者都要牢记这句话,要清醒地意识到:

  • 不深入钻研,缺乏开发技术等硬技能,你很难在初期的职业生涯(0 ~ 5 年)中做出成绩占据重要位置

  • 没有沟通、协商、领导力、语境切换、创新、认知等软技能,你很难在职场上走出高度

所以,在你掌握了一定的开发技术可以搞定一些任务后,就要并行地去培养自己的软技能,比如沟通、表达、协商、演讲、辅导、写作、组织、规划、管理、汇报、商务谈判、创新、设计等等。

只有软技能匹配你的硬技能,你才能更好的发展。当你软硬结合,综合能力爆棚时,根本不用担心将来怎么找工作的问题,工作机会会跟着你跑,甚至有人会专门为你创造工作机会。

4.5 算法

过去的图像、视频、大数据,现在的 AI ,没有一样是离得开算法的,算法类岗位具有很高门槛的岗位,但是在软件领域,越难的事情越少有人做得了的事情,越能超越年龄的限制。

做算法很难,但是一旦你做进去,壁垒就会形成,就会超过 90% 的程序员。

下面是我在拉勾上以“算法”为关键字进行搜索的结果:

640?wx_fmt=png

这个结果,充分说明了物以稀为贵这个道理。

5. 如何面对年龄这个现实问题

很早之前,我写过两篇有关程序员年龄问题的文章:

感兴趣的可以看看。

今天在这里,我结合最近的思考,再次来讨论这个问题。

首先我要强调一点:凭借存量技能吃一辈子的时代已经过去了,终身学习是必须的。

无法接受这点的程序员,请做两手准备:

  • 调整心态,准备接受 34+ 之后被边缘化、被淘汰的命运

  • 降低对收入和职位的期望,找到某个愿意为你的存量技能买单的组织不咸不淡地干下去

接受终身学习的开发者,可以继续往下看。

我曾经画过一张图,描述了这 4 大方向,大家可以看看:

640?wx_fmt=png

 

对程序员来讲,上图指出了 4 个常见的方向,能让你摆脱年龄的限制:

  1. 在某种开发技能上建立个人品牌,比如 WebRTC 、 Hadoop 、 C++ 等,而且,你的品牌要被业内认可。比如我因为熟悉 Qt ,写过《Qt Quick核心编程》等技术图书而有了个人品牌,才能在超过 35 岁时还可以轻松找到工作。这样的开发者,实际上是以“技术专家”的身份存在。

  2. 在组织内开发技能过硬,并且精通业务,成为复合型选手,占据难以替代的位置。这样的开发者,可以称之为高级开发工程师或者资深开发者,这样的角色,在一个合适的平台上,可以受到重视,可以跟着平台发展,不用在意年龄。退一步讲,即便所在的平台倒掉了,也会有很多公司愿意要。

  3. 成为善于架构某类软件服务的架构师。这是从高级开发工程师演进过来的更高级的角色。当你真正做过一些大型系统的架构工作,会有很多公司需要你,不必担心你的年龄,你工作自由了。

  4. 走向管理岗位,成为职业经理人。很多公司都有项目经理、技术经理、研发经理等管理角色,你需要能够真正做好管理工作。我在《程序员的成长课》一书中有详细讨论过如何成为技术管理者,以及技术管理者面临的18种挑战,感兴趣的小伙伴可以戳阅读原文买书看看。

除了这 4 个方向,还有一个方向,也可以摆脱年龄的限制:成为算法工程师。

现在我们可以知道,一共有 5 个方向,可以让你超越年龄的限制,不再害怕“大龄程序员”这个称谓。

不管你选择哪条道路,还有一件重要的事情,你必须要去做,那就是:积累人脉。

要知道,过了 40 岁还要海投简历,你将会被“隐藏的年龄门槛”一遍一遍的“潜规则”,你将被迫一次次体会难以言说的沮丧。想想看,那是怎样的悲催。

记住,真正的大龄开发者,找工作绝不靠网投简历,而是靠自己积累的人脉。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页