本文同时发表在我的博客:
🧑🏻💻 程序员的 35 岁危机?我想也许出路在这里…… | 阿森的知识图谱
作为一名 90 后程序员,我非常喜欢自己的工作,也喜欢研究各类计算机技术。
然而,我总听到这样的言论:“互联网行业,35 岁以后就会失业了”。例如:35岁,我失业了
不论是父母还是朋友,或是自媒体,常常都认为程序员是吃年轻饭,年纪大了以后必然会被淘汰。而我在阅读了一些文章之后,发现其实背后还是认知问题。
这篇文章,我会尝试结合社会现状,拆解和分析这个观点,然后,提出一个对于程序员可能的破局方法。
开发者的焦虑?
我也算是计算机从业者,之前和朋友创过业,虽然不是互联网领域,但也带过团队,从事过产品设计、开发和运营。我也有很多程序员朋友,我承认,焦虑情绪确实是普遍存在的。
我想,焦虑情绪是以下三个方面导致的:
第一,程序员输出结果的程序化以及自动化替代。 程序员的工作结果是代码、程序和文档,而程序的开发是项目制一次性的。当一个项目结束,程序稳定运行之后,后期迭代便不再需要那么多开发工作了。
最近的一部电影《逆行人生》讲的就是这个故事。程序员徐铮给公司的人力部门开发了计算人效的软件,开发完成后,软件戏剧性地计算出自己是人效最低的员工,于是他被辞退了。“我被我自己开发的程序辞退”十分具有现实讽刺意味。
对此,我认为背后深层的底层逻辑是:软件一旦完成,脱离开发者,便是独立的个体了,开发者对此没有掌控能力。另外,大语言模型处理文本和语言的能力很强,非常适合处理代码,以后会有越来越多的编码工作被 AI 替代。
第二,技术的更新换代一直在加速。 在计算机领域,技术的更新迭代一直非常快。
10年前技术和现在流行的已大不相同。就从编程语言来说,适合系统级开发的 Rust,前端开发的 Next.js 和 TailwindCSS 框架,服务器后端开发的 go,都是近几年才流行的。而 AI 神经网络算法在 2018 年左右爆火,几乎完全重塑了计算机行业的格局。
第三,工作性质的内向性。 MBTI 是这几年流行的性格测试工具,大多数程序员在 MBTI 测试中基本都是 I 人,我自己也不例外(INTJ)。
很多程序员在工作中不知不觉形成了内向的处理问题的方法,久而久之,容易陷入“技术陷阱”,认为只要能把技术问题处理好,就是一名合格的软件工程师。于是,很多程序员逐渐丧失了与人沟通和影响他人的能力,成为了 Nerd(书呆子)。
然而,在 AI 逐渐成为主流的社会里,人和人之间的关系比单纯的技术更加重要。因为技术问题大部分可用 AI 解决,但是对人需求的洞察永远不行。AI 赋能的一定是产品经理而不是程序员,内向的程序员无疑会输掉这场竞争。
AI 时代的全栈工程师,程序员的出路?
那么程序员该怎么应对变化呢?我想也许一种方法,要成为这样的人,可以从以下几个方向努力:
📖 首先是跨领域的终身学习。 程序员本身就是一个终身学习的岗位,很多人觉得焦虑、压力大,而我并不这样认为。
终身学习一定是今后的生存法则,程序员将非常适应。只是对于我们来说,除了学习单纯的开发技术之外,还应该熟悉计算机数学基础(离散数学、统计学)和文史哲社会经典(社会学、心理学、经济学)。前者用于扎实基础,后者则用于洞察人性。
🧑💼 其次,保持一定的外向性,努力成为产品经理。 吴军说过:“最顶级的程序员,一定是好的产品经理”,我深以为然。计算机一定是为人服务的,AI 也是。离开了人的需求,什么也不是。
然而,我认识的大部分程序员都明显缺乏这样的意识,认为产品就应该是产品经理设计好的,自己只要解决技术问题就行。这样下去,技术和产品意识割裂开来,这样的人在计算机领域一定走不远。
💻 最后,永远有自己的秘密项目。保持敏锐度。 秘密项目可以是一个博客站,也可以是一些自己感兴趣的小项目。因为这可以保持自己对世界的敏感度和好奇心。对生活的热情也从此而来。这是把一件事情做好的动力。
AI 时代,程序员想要有所成就,就一定要 “击穿”自己的领域。计算机的背后是离散数学,前面是用户需求。顶级的程序员,一定是 能够用数学方法来直击用户痛点的人 ,而写代码不过是中间的手段而已,并不是那么很重要。
这样的程序员,我称之为“ AI 时代的全栈工程师 ”。
全栈,不仅仅意味着各种各样的技术栈都了如指掌,也意味着对人的洞察和数学基础足够扎实。随着 AI 的到来,编程语言之间的学习鸿沟将变浅,编程的门槛也会逐渐降低。AI 一定是利好全栈工程师的。
具体的做法
有了以上的方法论,那我们实际应该怎么做呢?以下是我的建议将从硬知识和软技能的角度出发,说说具体的应对措施:
首先是硬技能,分为三个部分。
- 第一是先进技术 ,包括 AI 知识,新的开发方法论和新的编程语言。程序写得好,还是程序员的基础。
- 第二是数学能力 ,当下机器学习的爆火,让我感到程序员的数学基础越来越重要,数学不好连很多算法论文都看不懂。不管技术再如何演变,万变不离其宗,计算机的核心总是算法。
- 第三是社会学知识,找几本经济学,心理学,运筹学和人文历史的好书看看,不用太难,通识就行。
很好的一本数学书,可以慢慢看
然后是软能力,也分成三个部分。
- 首先是思考,整理的习惯。程序员一定要有自己的笔记系统,这样才能保证学习到的知识是可以积累的,避免捡芝麻掉西瓜的情况。时常整理笔记,写写文章,看到自己的成长,也是很有趣的。
- 然后是好奇心。要做好一件事情,一定要对自己的领域感兴趣并且有热情。要做好程序员,那么就一定要对计算机感兴趣,如果只是觉得程序员的薪水还不错,当了程序员混口饭吃,那我建议还是换个赛道看看,也许会有不错的发展。
- 最后是沟通和领导力,多和人打打交道,多想想做一件事对方的感受和最好的处理办法。尝试运用一下“社会工程学”。别以为理工男不善于和人打交道,其实与人沟通是一个工程学问题,理工男其实有很大优势。
成为一个懂技术,会写代码的产品经理,我想是程序员在 AI 时代的必备生存法则。
总结
以上是我对程序员职业的思考,总的来说,就是找好目标,持续精进。这些,也是我个人努力的方向。很多地方,我自己做的也还不够。
AI 时代,程序员的工作的确出现了一些变化,在新时代,我们应该有新的方法去利用和应对。
话说回来,变化将是今后社会的常态,希望以上的思考能对程序员朋友们有价值。
最终,个人观点,仅供参考。 😄