程序员还有35岁的坎吗?

昨天晚上和一多年未见的前同事聊天,提到了程序员的年龄歧视问题:

  • 自己年龄也 30 出头了,在思考 IT 届流传的 35 岁是一个坎的问题;
  • 开始注重提升管理能力,担心35岁之后,一线写代码的岗位不能胜任;
  • 公司在招聘新人的时候,有明确的年龄限制。

记得最早听说程序员有35岁这个坎还是在 06 年,为此当时还写过一篇博客《http://fwhyy.com/2006/12/programmers-not-really-35/》, 没想到十几年过去了,依然是人们所关注的一个话题。

这个问题归根结底还是程序员的职业发展问题,2018 年的一份调查表明,四分之三的 IT 开发人员年龄小于 35 岁。61% 超过 45 岁的开发人员担心自己的年龄会成为职业发展的障碍,而这种担心并非没有根据。在 2018 年,只有不到 7% 的开发者年龄超过 45 岁。而从世界范围来看,开发者平均年龄在 22 岁到 29 岁之间。尽管程序员是一份脑力工作,但很多人仍然会担心,年龄大了后,会因为体力跟不上而遭到淘汰。

程序员的职业发展,我认为大概可以分为这么几类:

  • 大公司

    • 初级开发-中级开发-高级开发-开发Leader-架构师-技术总监
    • 初级开发-中级开发-PM-部门经理-业务专家
  • 小公司

    • 初级开发-技术负责人-中高层管理人员

不管是身处那个阶段,都有一个重要的技能是需要掌握的,那就是沟通,特别是在发展过程中,比掌握具体的编程语言​和框架更为重要。沟通分为:向下沟通、平级沟通、向上沟通。

平级沟通: 只要你的公司不是只有你一个开发人员,就会涉及到平级沟通,我们平时的任务大多时候都需要协作来完成,所以做好平级沟通可以使我们事半功倍。平级沟通中会出现这样一些问题:

  • 新人没有经过思考频繁问一些低级问题,造成时间浪费;
  • 不理解的地方过度思考琢磨,然后按照自己的理解去执行,缺乏沟通,最后造成做出的东西不是期望的,需要返工,和上面一条相比,这是另一种极端;
  • 沟通过程中容易推卸责任,会让讨论的焦点变成了寻找问题责任人了。

针对这些问题,我们应该要做到:

  • 学会高效提问,至少做到这两点,我觉得就不会惹人厌了;
    • 能够清晰表达希望得到什么样的帮助;
    • 自己做过哪些方面的尝试。
  • 永远记住,沟通的目的是解决问题,凡事偏离这个目的,都应该及时拉回来。

向上沟通: 只要你还不是公司老板,你就需要向上沟通。现代管理学之父德鲁克先生在《卓有成效的管理者》中告诉我们,“工作想要卓有成效,下属发现并发挥上司的长处是关键。”,我认为要做到以下几点:

  • 要主动和上级多交流,可以带来双方信息的对称,执行的结果才不至于有偏差;
  • 想要更多的资源就需要上级对你有足够的信任,我们需要不断做出好的成绩去赢得信任;
  • 及时汇报,形成闭环。任何事情不管结果如何,都应该阶段性有个进度的汇报,可以及时控制风险或者调整策略。

向下沟通: 如果你是技术 Leader或者团队负责人,和团队成员的沟通是日常工作中很重要的一部分,我们需要了解每个人在工作或生活中遇到的困难和顾虑,也需要了解他们的职业目标和规则,尽可能为他们创造一个好的工作环境,减少一些后顾之忧。

沟通是根本,在每个阶段中所要掌握的硬技能,比如作为一线开发,必须要掌握相关的编程语言,框架的使用等,作为PM,必须要掌握项目管控,资源协调等。这些硬技能,只要我们在持续地学习、实践,发现问题、解决问题、不断重复和积累,就能超过90%的人。

那么35岁真的是一个问题吗?如果到了35岁,你还在写着增删改查代码,应付着日常工作,不做思考,没有任何提升,那是应该焦虑了。不光是程序员,任何行业,如果你10年的工龄只是1年的经验在重复,都将会被淘汰。

全球最高龄的 iOS开发者若宫雅子,60岁退休后才开始接触电脑,81岁开始学习 Swift、83岁成为年龄最大的独立开发者。国内的宁波大学 52 岁的宿管大爷陈恭清自学编程开发了一套宿舍管理系统,还设置了双重密码防止信息泄露。两个例子都充分说明了保持思考,持续学习,年龄不是问题。

最后,我想说,不管什么行业,不管多大年龄,被淘汰的永远都是不思进取、能力不行的人。