疲劳的程序员(图片来源:Adobe stock)
【看中国2018年5月22日讯】总说程序员是吃青春饭的,过了35岁编程生涯就终结了——是这样吗?
在IT行业,技术日新月异,各种库、SDK、编程语言层出不穷,对于程序员的要求也越来越高。在脑力劳动和体力劳动的双压力之下,年龄大小的优劣无疑显现出来,那么优胜劣汰的自然法则之下,无法与时俱进的人最终只会被淘汰。
一、
我今年37岁,曾经住在硅谷,并且我的整个职业生涯中一直从事技术工作。我从来没有在技术上“大获成功”,也从没有“走入管理层”。但是到目前为止,我已经处在了职业生涯的最佳位置。
“35岁以后应该做什么”这个问题,不应该固性思维,而应该以一个成长的思维来看待。
在我20多岁的时候,一切看起来似乎都很好:我在创业公司工作,并且取得了一些成功,但每当我环顾四周时,都不断看到我这个年龄段的人在变得更酷,更酷的工作、汽车和生活。如果说在过去的十年里我发生了什么变化,那就是我从一个固定的观点转向了一个成长的思维模式。我已经认识到在学习的时候我才是最快乐的,并且更注重学习的过程而不是最终的结果。
在某些方面,我实际上比前几年过得要稍差一些,但我变得更快乐、更健康、也更有内涵。毫无疑问,我和其他人一样,有糟糕的日子也有美好的日子,但总体而言,事情正在逐渐变好。
“硅谷的生活结束于35岁,除非你大起大落”——这是不正确的,但这要等到35岁才会意识到。
二、
35岁以上确实会面临着“过山车”般的境况,这是毋庸置疑的。
在软件开发方面,软件开发市场所需的技能每五年都要进行一次检修,所以程序员们需要乘着技术革新的浪潮才能在5年内成功通关。如果不持续升级,随着年龄的增长,那么会越来越难以躲避被淘汰的局面。例如,一个35岁的ASP程序员编写了10年代码,但是他没有机会编写ASP.Net或是.Net-MVC等应用程序,如果他失去了工作,那么不具备这10年的市场所需技能,10年后的他只会被淘汰。
同样,软件开发人员在过去15年中不断提高的生产力,使得开发经理、架构师、构建者和其他一些人的需求大大减少,因为在许多小团队中,开发人员也会顺便接管一些其他的角色,因此,如果一名专职的经理、建筑师或建筑商5年后失去了工作,就很难在没有生产编码责任的情况下找到另一个相同职位的工作。即使找到了另一份工作,很明显他就需要和一个年轻人竞争:这个年轻人在相关技术上有两年的编码经验,而你有10年的无关经验和0年的相关经验。
另一大趋势是稀缺资源性质的变化。20年前,电脑是稀缺的资源,项目负责人围绕稀缺的计算资源和繁琐的语言、开发工具组织他们的软件开发计划和工作习惯。但在今天,计算资源并不稀缺,语言、流程和开发工具也得到了极大的改善。如果一个组织在软件开发习惯上已经使用了10年,那么这些新的实践需要经过一段痛苦的适应阶段。
对于这些因素中的每一个,35岁以上的开发者或多或少地都会受到影响。此外,超过35岁的开发者往往还有额外的压力,如家庭、财产、社区义务和与年龄有关的健康问题,这往往就使得他们不愿意耗费全部的工作时间,以及下班后与团队交往等额外消耗。
三、
当我37岁的时候,我决定结束自己在学术界和工业界多年的研究工作,搬到硅谷。那时我正在西班牙的一家大型电信公司做研究,虽然我听说过35岁以后在硅谷工作不会成功的,但我最终仍然决定加入Netflix。
是的,现在我已经搬到山谷,加入Netflix并且领导他们的算法/建议团队近4年时间了。事后看来,我认为这是一个非常成功的选择。但是由于我最近(41岁)加入了Quora,所以我的硅谷之路并没有结束。虽然在Quora这样的年轻创业公司中的平均年龄相当低,但这并不意味着当你超过35岁的时候就不会成功。事实上,正因为很多人都还年轻,经验才是我们最大的财富。
现在我已经废除了“硅谷35后”这个论断了,但我认为任何大的职业变化都应该在40岁之前。
四、
2001年,我加入了谷歌软件工程团队,当时我55岁——没错,在谷歌工作的整整四年里,我是最老的员工。
那四年我做了什么?我不是经理......我只是一名软件工程师,与我所有亲爱的同事一起工作,他们的平均年龄比我年轻25岁。没有人觉得我的年龄有问题,我只是团队的一名普通成员而已。
没有什么所谓的“过山车”,只会变得越来越无关紧要罢了。为了避免变得无关紧要,我从不停止学习。在1975年开始我的职业生涯时,我们仍然使用打卡和大型机,使用Fortran和PL/1进行编程。20世纪80年代,有前途的新技术应用了人工智能,我很幸运找到了一个AI研究团队的工作,在那里我不仅学到了更多关于软件概念的知识,而且学到了尖端的重要性技术。
在经过十年的Lisp编程之后,1990年我转向了新的面向对象语言C++。几年后,网络爆发,我开始使用HTML和JavaScript等更多新技术进入网页开发。学习,不断学习,是我职业生涯中所有转变的关键。
我看着我这个年龄的其他人要么进入管理阶层,要么开始攀登企业阶梯,有的也变得无关紧要,变成失业者,或转向全新的事业。几乎在我所有的早期工作中,我的经理都觉得我应该成为一名经理——但我自己知道我讨厌做一名经理,我只喜欢开发软件。有一天,当我的经理走进我的办公室,看到我在一个程序上工作,对我说:“你还做什么软件?你现在是经理!“
我喜欢且擅长写程序,为什么要强迫自己做一个经理?这给我带来了巨大的压力,我只想回到我的电脑前,专注地解决一些问题。最后,我在1996年的一天宣布,“我再也不会管人了”。我想,我不在乎是不是永远不能退休。
2000年,我利用新获得的PHP技术,从波士顿迁移到了硅谷,那时我非常习惯和同龄的人一起工作,但突然有一天我下岗了。然后我进入了一家200名员工的小公司,向我承诺不会指望我进入管理层。事实上,她说他们刚刚决定聘用一些有几十年经验但又不想当经理的人。
四年后,我退休了。我一路上结交了许多亲密的朋友,同时我仍然在学习新技术。在过去的一个月中,我已经解决了Ruby,现在我正在开发Ruby on Rails,并且未来还将一直继续。
最后
技术焦虑是大龄程序员老生常谈的主题,其实不论国内国外,不论市场境况如何,面对生活和工作的重要岔口,都会不可避免地陷入自我怀疑的怪圈,重要的是随波逐流、逐渐淘汰,还是迎难而上、顺势逆袭——总之,保持一颗不断进取的初心是不会错的,更要做好技术焦虑的减法和解法。