0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

40岁“老程序员”谈:程序员半数知识都将在未来十年内失效

工程师人生 来源:面包板社区 作者:InfoQ 2020-10-15 10:53 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

算法、应用程序安全、性能优化以及架构等等,这些东西衰减速度很慢,更值得认真钻研。

我是个程序员,差不多四十岁了。记得某个周六的早晨,我老婆在家里带孩子,我自己跑去参加一场技术会议。当时这个会议的主题是 React Native,主讲人一直想给我们灌输一种 React Native 将成为移动开发领域“下一个大事件”的印象。但在我看来,它跟 15 年前的 JSP 其实挺像的,连演示代码中的逻辑都一模一样——但我觉得可能是自己“老了”,有点“没跟上节奏”。

主讲人一张一张放着幻灯片,那些实时编码画面让人眼花缭乱。接着就是演讲里有名的“掉书袋”环节,主讲人一口气说起六款我前所未闻的支持工具,其中有一款叫 Pepperoni ——对,就是意式辣香肠那个词。我是个刚学会 Angular 的老家伙,坐在现场感觉自己像个傻子。我真心希望台上能讲得慢一点,简单一点。

但其实这一切又让我生出种熟悉的感觉。过去二十年里,我经历过不少什么浪潮啊、什么变革的。其实感觉还行,一样样“颠覆”总是来了又去,拽着从业者们的神经不断亢奋。这让我自己也有了技术创新社区的归属感,觉得我也能为让一切变得更轻松、更快、更干净、更好而做出点努力。但这一天,面对即将到来的四十岁,我必须承认自己有点疲惫了。我知道,要想继续挣到可观的薪水,我就得跟上时代的变化、抛弃一些以往自己深信不疑的知识,为下一场旅程做好准备。这些我都知道。

但我转念一想,其他行业的专家其实并不需要像我这样熬过自己的编程生涯。就说四十岁的医生们,他们不用担心自己对于心脑血管系统的知识突然就过时了。律师、水管工、会计师或者英语老师也是一样,虽然每个职业都有自己的独特之处,但着眼于职业生涯的中期,总有一些积累下来的知识应该相对稳定,同时也成为他们获得尊重与报偿的根源。但在编程方面,二十年的从业经验似乎没那么值钱?

两股力量

当然,编程这行里也有不少积极向上的从业者,他们热爱编程工作带给他们的一切。但单从无休无止地自我否定、自我颠覆这事上看,编程似乎或多或少有着自己的独特性。但我不禁疑惑,这种独特性真的成立吗?编程真的跟其他所有行业都不一样吗?如果是真的,为什么?这又会给我们的职业生涯带来怎样的影响?我个人想从两个角度,分享自己的一点思考。

首先就是知识衰减。我们所知晓的一切,包括编程之外的很多认知,终将过时。我在 16 岁的时候就学会了开车,直到现在这门手艺还是能发挥作用。由此来看,开车算是衰减速度很慢的知识类型。对其他一些专业人士来说,他们的知识衰减速度也比较慢 。虽然医学上的新发现可能会取代一部分现有程序,但我们对于生物学的理解恐怕不太可能出现全面颠覆。在这样的基础上,知识的累积才真正具有效力。多从业一年,医生们的知识储备就更丰富一些,因为这 12 个月里他们学到的新知识会叠加在原有知识之上。

但先不说是好是坏,在编程领域,情况完全不同。说句不负责任的话,我认为:

程序员有半数知识都将在未来十年内失效。

也许这话并不靠谱,但结合个人经历,我是比较认同的。换句话说,就算从现在开始我什么新知识都不学,那么到 2026 年,我也还是有大概一半的知识能发挥作用(感谢长寿的 SQL),另外一半则没准毫无用处(React Native 可能就属于这种)。我肯定会继续学习,用新知识替换掉旧知识,但这就够了吗?到 2026 年,我脑袋里头仍然有效的知识,会比现在更多吗?

这就引出了第二股力量,即知识积累速率——就是我们往自己的知识库里添加新内容的速度。在各个领域,大家都得跨过一定的知识门槛才能获得“认证”(至少可以当成从业的敲门砖),所以每个人在职业早期都需要积累跟认证有关的知识。但在编程领域,随着知识的快速衰减,我们似乎永远无法真正迈出“学生”时代。我们必须得终生学习,这也是程序员的职业生涯显得如此“非主流”的核心原因。

01、三个阶段

如果让我画出普通程序员在职业生涯中的知识储备量变化情况,结合知识的衰减与积累速度,我觉得大概的情况可能是下图这样:

在职业生涯的最初阶段,即热情的学徒阶段,知识的积累相对容易。一切都是全新的,每一次体验都能带来更多的知识储备。另外,我们那时候还年轻,所以没有什么一定得做、或者一定不能做的事。我们可以花几个晚上或者周末学习新的语言和框架。更重要的是,雇主对我们的期望也不高。年轻人嘛,不犯错怎么能叫年轻人,所以我们比其他年长的同事更轻松自在,有余力抽点时间填补自己知识上的空白。这是个有趣的阶段,而且总有种感觉伴随左右——我们不知道的还太多。

到了一定阶段,我们不再是新手,转而成长为具备生产能力、可以自给自足的成熟开发人员。这让我们第一次意识到,自己跟同事之间的差距(甚至是比自己大十岁的同事)似乎没有那么大。这让我们充满了干劲,后起之秀就该这个样子!我们在学习上的投资带来了回报,我们掌握的知识也几乎全都有用——或者说,还没来得及衰减掉。凭借丰富而新鲜的知识,我们开始刻客户、同行以及企业管理者的尊重,升职、加薪、职业发展也随之而来。虽然当时大家未必意识得到,但这就是职业生涯中的一大重要转折点。

在这个转折点上,有两个重要事件。

首先,晋升为“高级”开发人员带来的不只是更高的工资,同时也有雇主们更大的期望。明星程序员就应该成长为下一个领导者,帮助新手程序员啦、审查代码啦、接受采访以及参加技术会议之类,最好还能腾出手来帮助企业维护一下复杂而陈旧的遗留软件。

这些事看起来都很合理,但却在不知不觉间牺牲掉了我们继续积累知识的速度。还有时间逛技术博客吗?没有!

另外,就在这个时间点上,我们第一次经历、或者至少开始意识到知识衰减的存在。我们在职业生涯早期学到的一些东西现在已经过时了。更具体地讲,先前提到的“两股力量”——知识衰减与知识积累速率,从这里开始成为我们的敌人。

接下来,我们进入了最后一个阶段——资深老鸟期。没错,我们知识渊博、富有成效;但我们也意识到,自己每时每刻掌握的知识总量可能都比刚刚又少了那么一点。更可怕的是,我们往往没有时间积累新的知识作为补充。这一点最令人沮丧,所以很多程序员最后转而去做管理、销售、测试,甚至是回乡下种地了。因为如果不这样,我们自己知道未来五年的职业生涯只会急转直下,没有半分余地。

02、个人一点不成熟的小建议

我现在就处在这么个阶段。我仍然热爱学习,但我知道就算一点新东西不学,自己也不会差到哪里去……最多是徘徊在“专家”这个定义范围的下限附近。我希望能成为马丁·福勒那样的大师,像他那样在生活与工作之间找到平衡点(我敢打赌他的生活绝对安排得多姿多彩)。也可以说,正是因为从知识衰减与积累速率的角度看待问题,我才有了这种释然的心态。

所以,我首先尝试把眼光放得更长远一些。我会对新的职务抱以更谨慎的态度,以警惕的心理面对自己鲜有涉及的所谓“大好机会”。不少同事确实在其他公司里拿到了更高的薪水,但他们也失去了接触新事物、学习新知识的空间。在未来五年中,他们会意识到自己曾经引以为傲的宝贵知识已经不再适用,自己的实际贡献已经值不了那么高的薪水。所以,结合实际情况,我可能更重视雇主提供的工作环境,而不只是关心新的岗位能给多少工资。

其次,由于时间有限,我会更多把精力投入到持久性比较强的知识身上。算法、应用程序安全、性能优化以及架构等等,这些东西衰减速度很慢,更值得我认真钻研。在我看来,这些领域中蕴藏的机遇,也要比学习最新的 JavaScript 库更大一些。

最后,可能我自己还没有真正走出这座围城;但单从职业角度而言,知识衰减与知识积累速率确实能帮大家换个角度审视自己的成长。有什么想聊的,咱们评论区见!

03、老程序员们的评论

Ben Northrop 的这篇文章发布后,引起了很多人的共鸣,很多一辈子都在编程的“大龄程序员”纷纷发表了意见。

“我已经有 45 年的编程经验了。编程就是了解问题、找到方法并加以解决。这种条件下知识永远不会过时。虽然每种编程语言都需要数周的学习时间和数月的掌握时间,但他们中的大多数都非常相似。操作系统和数据库也是如此。问题在于,许多人认为老程序员不能学习新的花样,但这个观点并不正确。”

“我今年 54 岁了。。. 我们对软件的爱就是因为它的半衰期很短。我们必须不断学习才能生存和发展。这并不容易,而且新事物产生的速度也越来越快,但是,终身学习才能让软件行业更吸引人。。.“

“我今年 79 岁了,算是老程序员的代表吧。我 1958 年第一次用 SHARE 汇编语言在 IBM 704 上写程序。哦对,我还在一台 IBM 650 上编过程,那台机器配的存储器是个能容纳 2000 个字的磁鼓。“

问题是,每当计算机的运行速度提高大概 4 倍,程序员们学过的知识就都得更新一轮。另外,随着主存储器和次存储器的速率比例发生变化,最佳实践也会随之调整。现在的计算机速度更快、内存更大,所以需要注意的性能问题也越来越少——不少现代编程语言甚至直接忽略了这些问题。不过旧问题的消失,总会伴随新问题的出现:在线应用与云计算的普及,又带来了新的挑战。这种感觉真的不好,就像每过十年物理定律就被任意改变了一样。爱因斯坦当初是扩展了物理学的适用范围,可没有彻底否定低速物理学定律。与以往的大型机相比,面向云环境编写程序更像是为另一个完全不同的平行宇宙搞物理学研究。

但我相信这一切正在放缓,整个软件行业终将走向成熟。到那时,程序员们可能会一起回顾过往的日子,就像我们现在有时候会捡起复古情怀满满的西部片来看一样。顺带一提,我现在已经退休,偶尔用 Mathematica 编编程、打发时间。经历了漫长的旅程,但我还是我,什么都没有改变。”
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程
    +关注

    关注

    90

    文章

    3723

    浏览量

    97430
  • 程序员
    +关注

    关注

    4

    文章

    956

    浏览量

    30999
  • Mathematica
    +关注

    关注

    1

    文章

    16

    浏览量

    16393
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    芯盾时代SDP助力企业应对核心机密泄露危机

    无论你是程序员、文案、财务,无论你想撸代码、出海报、做报表,各式各样的AI总能满足你的需求,让你的工作更加轻松。
    的头像 发表于 12-26 11:49 824次阅读

    大理的AI野心藏不住了——风花雪月中千名程序员探讨人工智能

    2025 12月4日至6日第二届CCF程序员大会暨大理人工智能与应用国际开发者大会在大理圆满落幕。
    的头像 发表于 12-24 17:45 877次阅读
    大理的AI野心藏不住了——风花雪月中千名<b class='flag-5'>程序员</b>探讨人工智能

    程序员最常见谎言

    了。 28我已经测试过了,这个功能没问题,可以上线了。 29别担心,这个问题很快就能解决。 30代码快写完了,已经完成 90% 了 。 希望大家对程序员多一些容忍以及谅解! 各位程序员你们都被我说中了哪些?说说你们的观点
    发表于 12-10 08:24

    Unix的相关知识

    1 Unix哲学 Unix 哲学注重实效,立足于丰富的经验,并不会在正规方法学和标准中找到它,它更接近于隐性的半本能的知识。Unix程序员在探索开发的过程中积累的经验,非Unix的程序员也能够从这
    发表于 12-10 07:13

    堆和栈的区别

    程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
    的头像 发表于 11-27 18:13 1219次阅读

    软通国际亮相2025沙中开源与AI科技峰会

    202511月11日,由沙特程序员协会(parmg)主办的"2025沙中开源与AI科技峰会"在利雅得盛大启幕。
    的头像 发表于 11-14 17:45 1598次阅读

    普华基础软件开源龘V2.3和开源小满V25.10上线

    正式发布。同期,北京中国汽车工业协会发布厅,新版本媒体说明会同步召开,双城联动见证中国车用操作系统开源生态的关键迭代。此次发布不仅是对程序员的致敬,更是对汽车产业智能化转型深水区核心需求的有力回应——以安全技术突破和多核架构升级为核心,为汽车软件定义
    的头像 发表于 10-29 10:33 1716次阅读
    普华基础软件开源龘V2.3和开源小满V25.10上线

    奔赴热AI,码力全开!Talkweb House@1024程序员日系列活动圆满收官

    1024程序员日”系列活动至此划上了一个圆满句号。本届1024程序员节以“AI构建世界,智能引领未来”为主题,广邀技术大咖、产业领袖、企业代表与全球开发者齐聚星城
    的头像 发表于 10-27 18:59 936次阅读
    奔赴热AI,码力全开!Talkweb House@1024<b class='flag-5'>程序员</b>日系列活动圆满收官

    开鸿智谷“以赛促学、以赛选才”|1024程序员节暨开源鸿蒙构建大会圆满落幕!

    10月24日,由开鸿智谷联合主办的长沙1024程序员节暨开源鸿蒙构建大会在长沙圆满落幕。本次活动以“湘聚长沙,共赴热AI”为主题,通过技术分享与实战竞赛相结合的方式,着力培养“开源鸿蒙+AI”领域
    的头像 发表于 10-27 17:58 828次阅读
    开鸿智谷“以赛促学、以赛选才”|1024<b class='flag-5'>程序员</b>节暨开源鸿蒙构建大会圆满落幕!

    1024程序员节 | 致敬用代码构建美好未来的你

     
    的头像 发表于 10-24 20:56 1380次阅读
    1024<b class='flag-5'>程序员</b>节 | 致敬用代码构建美好<b class='flag-5'>未来</b>的你

    十年·NDI在中国|影像志:见证视频IP化的成长与未来

    十年前,NDI改变了世界;十年后,千视与NDI携手,共同定义未来!《十年·NDI在中国纪录片》从一个疯狂的愿景开始NDI的诞生,源于一个看似疯狂却极具远见的构想。它的创造者坚信:随着视
    的头像 发表于 10-22 10:43 1027次阅读
    <b class='flag-5'>十年</b>·NDI在中国|影像志:见证视频IP化的成长与<b class='flag-5'>未来</b>

    无法在调试中连接到PSOC4怎么解决?

    您好,我有一块使用 PSOC4 CY8C4013SXI-410 制作的小板。非常简单的设备,它只有三个 GPIO 引脚并通过 5 引脚 SWD 进行编程。我遇到的问题是程序员能够看到该设备但无法对其进行编程。
    发表于 07-22 06:02

    齐学Python:从入门到精通

    础的学习者介绍一门时下比较流行、并且用途比较广泛的编程语言,所以,本书读起来不晦涩,并且在其中穿插了很多貌似与Python 编程无关,但与学习者未来程序员职业生涯有关的内容。 获取完整文档资料可下载附件哦!!!! 如果内容有帮助可以关注、点赞、评论支持一下哦~
    发表于 06-03 16:10

    程序设计与数据结构

    的地址)出发,采用推导的方式,深入浅出的分析了广大C程序员学习和开发中遇到的难点。 2. 从方法论的高度对C语言在数据结构和算法方面的应用进行了深入讲解和阐述。 3. 讲解了绝大多数C程序员开发
    发表于 05-13 16:45

    CY7C68013A无PID和VID,如何制作PDF?

    我用 CY7C68013A MCU 设计了一个 PCB,所以这意味着我不是程序员之类的。 但是我尝试上传一些代码,但没有 PID 和 VID。 我找到了一些关于如何制作的 PDF,但那些对我来说很难。 有人可以帮我吗?
    发表于 05-13 07:50