日经贴:程序员的 35 岁是天花板吗?35 岁以上的程序员都在做些什么?技术开发的职业路线要怎么规划?

# 技术开发的职业发展道路到底该怎么走?

现在的互联网团队虽然很多,但也有很多人在不断涌入这个行业,导致竞争日益激烈。对于很多企业来说,钱少能熬的年轻人似乎是更好的选择,因此程序员群体中也流传着“35 岁就会被淘汰”的说法。

曾经有一段时间,我遇到了一些比较难过的坎,于是认真学习了一些关于心理健康的知识,尝试好好调整自己。那时候便想,如今的社会发展和变化的速度太快,大多数事情都被要求“快速”、“高效”,未来很多人会选择进入企业打工而不是自己创业,各种精神上的压力都不小,焦虑和抑郁的情绪也逐渐变多,或许心理健康也会越来越受到重视,且被未来的社会高度依赖了。

焦虑和压力,如今成了当代快餐文化的赠品,技术开发也是如此。或许国外不少的程序员可以一直作为前线开发,而国内情况则不同,很多时候大家对于工作经验更多的技术开发的要求,不再满足于完成一线开发的工作,而是要求他给企业和团队带来更大的价值,比如做技术架构、技术管理、技术输出、影响力建设等等。

那么,面临这样的大背景,作为走在路上都会被人群淹没的普通开发,留给我们的机会又有哪些呢?

# 技术开发的深度和广度

很多技术开发在谈到职业规划的时候,都会考虑到一个点:技术的广度和深度到底哪个更重要更适合自己?

过去的我觉得,走深度还是广度,和一个人的喜好与规划有关系,比如,如果以后想当独立开发显然各种技术都要有所涉猎,如果想在某个技术领域扎根则应该要深挖。

我在之前的团队有接触过一些全栈开发,实际上不同领域的知识体系有差异,但大多数在工作中也做各自领域中比较普遍的事情(比如前端写页面调样式,后台写 CURD 逻辑),而全栈开发更是难有精力和心思去解决深入的问题。我也因为技术深度的原因来到了现在的团队,现在的业务场景的确已经是前端领域中复杂性排名很前的,慢慢发现其实再复杂问题,也都可以将其梳理并一一拆解,然后再逐个击破去解决。

追求技术广度,在工作中接触的技术领域会很多很杂,其挑战点在于是否可以对不同领域的技术知识进行足够的思考和归纳,找出不同技术的共通点以及各自的特点,并能选择合适的技术去解决不同的问题。追求技术深度,则需要在某个足够复杂的领域中,将其逐一拆解,逐一解决后,还能将新获得的知识再次归纳整合,优化在该领域的技术网络。

所以,我们常说开发的技术能力,其实更多时候是由各自的开发经验和项目经历决定,不管是广度还是深度,都有其可以出彩的地方,也有或许会让人觉得无趣的时候。而作为技术开发,唯一要避免的是 1 年的工作经验当 10 年用,这样即使工作了 10 年,也只是原地踏步。

上一篇 (opens new window)我有讲到关于开发的技术门槛,其实在大多数开发的工作中,往往被低估的能力不是技术能力,而是工作能力(如沟通能力、理解能力、复盘能力、表达能力等等),不管技术能力如何,工作能力会更加直接地影响到我们的工作效果。

# 大公司的生存策略

我有时候会思考,像如今所谓 BAT、TMDJ 这些比较大的公司,到底喜欢怎样的员工呢?

一开始,我认为他们不喜欢特立独行的员工,实际上也大多如此。大公司里有很多部门和团队,但不管在怎样的团队,除了某些情况下会遇到技术突破的场景,大多数时候对技术