最新报道称,到2030年,会有大批软件开发人员失业。AI时代,「搬运工」式的软件开发,正在面临淘汰。另一个角度讲,自动化工具的逐渐繁荣,让开发人员「逃离」无聊重复劳动的同时也在「自掘坟墓」。
一代人终将老去,总有人正年轻。
还有10年,可能不需要再一行行写代码了。软件开发者可能会被大批淘汰。
1930年,经济学家凯恩斯预测,到本世纪末,我们每周只需要工作15小时就可以保证优渥的生活了。但现在来看,这位伟大的经济学家显然说错了。
人类学家David Graeber曾经说过,人类大部分的工作都是Bullshit...
虽然这样说有些夸张,但事实是,随着越来越多的流程实现自动化,大多数工作在某种程度上已经过时。
就业研究报告预测,到2030年,美国将有近50%的工作岗位实现自动化!
最新报道揭示,到2030年,软件开发人员也面临同样的局面。如果越来越多的机器可以自己编写代码,我们还需要人类做什么?
而到那个时候,「代码民工」们又将何去何从?
计算机「眼神」很好了,但仍然缺乏同理心
软件开发人员本质上是逻辑的构建者,无论是算法、程序还是项目,都是逻辑的具体体现。
人工智能的兴起带来了工作范式的转变,开发人员设计逻辑方面的作用越来越弱化了。相反,他们开始探索这些逻辑的基础上训练模型。
许多开发人员已经从构建逻辑(building logic)转向构建思维(building minds)了。
换句话说,越来越多的基础软件开发工作将被替代。
软件开发的究极目的就是要提高工作效率,将一些重复的需要人为干预的工作自动化,那终极自动化能达到什么程度?
自动化的三个层次:从辅助软件开发到系统集成
机器的自动化粗略来看,可以分为三个层次。
首先,自动化可以辅助软件开发。一旦机器能够理解你想要实现的东西,它们可以帮助你完成整个开发的过程。
如果你曾经使用过集成开发环境( IDE),就会知道辅助软件开发是多么神奇。一旦你习惯了诸如自动完成或语义代码搜索之类的功能,会感觉越用越顺手。
第二个层次是封闭系统的自动化。比如一个社交媒体app: 它由许多不同的页面组成,这些页面相互链接。但相对于其他的服务而言是封闭的系统。
虽然构建这样一个应用程序的技术越来越简单,因为我们有很多现成的脚手架可用。但还不能说是真正的自动化。现在,如果想要创建动态页面、应用安全规则或集成数据库等,还是需要自己编写代码。
第三个层次是集成系统。例如,银行的 API 就是这样一个系统,它是为了与其他服务通信而构建的。然而当前,自动化 ATM 集成、通信、深度安全和复杂的故障排除几乎不可能自动化。
计算机视觉很成熟了,但计算机仍然没有同理心。
当被问及是否会在未来被机器人取代时,大部分软件开发及其他可能被AI替代的人员通常不这么认为。
他们的理由很明确: 像创造力、同理心、合作或者批判性思维这样的东西计算机并不擅长。
但通常,这些东西并非完成一项工作的关键。即使是最复杂的项目也是由许多可以自动化的小部件组成的。DeepMind 的科学家Richard Sutton曾经这样说:
研究人员试图利用他们在这个领域的人类知识,但是从长远来看,唯一重要的事情是计算。
开发者一直在「自掘坟墓」?不,我们是在寻找新的流形
计算机还可以比人类更有效地做两件事:
第一,在规模上搞事情。第二,创造全新的流形。
规模化,自不必说。例如,如果你让计算机打印200次(“我真笨”) ,它会毫无怨言地完成,并在不到一秒内迅速完成。如果让人来完成,就需要等上好一阵了.
流形在数学上来看,指的是共享特定性质的子空间。举个例子,如果你拿一张纸,那是三维空间的二维流形。如果你把这张纸揉成一团或者折成一个平面,它仍然是三维空间的一个流形。
事实证明,计算机非常擅长处理人们难以想象的流形,例如,因为它们可以扩展到二十维空间,或者有许多复杂的节点和边的问题。许多日常问题,比如人类语言或计算机代码,可以用数学流形来表示,部署一个更高维的产品将具有普适的价值。
其实开发者一直在开发替代自己的工具和软件。
首先,代码审查和调试可能很快就将成为过去时。
瑞士公司 DeepCode 正在开发一种自动识别错误的工具。谷歌DeepMind 已经可以为现有代码推荐更优的解决方案。
Facebook的 Aroma 可以自动完成小程序的开发。
Aroma是Facebook去年推出的代码智能搜索与推荐工具。通过 Aroma,工程师们现在能够轻松发现常见的编码模式,而不再需要手动浏览数十个代码段,这将显著节约日常开发工作所耗费的时间与精力。
此外,相似代码推荐系统 MISIM,已经声称能够理解计算机代码,就像 Alexa 或 Siri 理解人类语言一样。
令人兴奋的是,MISIM系统可以处理一些耗时的运维工作,比如将代码推送到云上的工作自动化。
这些自动化程序在小项目上都能很好地工作,但是在更复杂的项目上也有点捉急。例如,缺陷识别软件仍然会返回许多假阳性信息,如果项目有一个全新的目标,AI系统就不起作用了。
像MISIM 这种自动化系统到底能进化到什么程度,现在也说不准。但是,这样的系统会越来越多。
据说,MISIM 认为它未来可重写上古编程语言COBOL的代码,许多银行和政府软件都是用 COBOL 编写的,人工迁移的成本实在太高。
但是,如果真有那么一天,MISIM们可以自动重构应用级的代码,被替代的开发人员该怎么抉择?
如果被淘汰了,要去开奶茶店吗?
早在2013年,英国牛津大学专家就开展了相关的研究,建立了评估不同行业人员受人工智能等技术影响的方法。
他们对美国702个职业被自动化取代的风险进行研究,给出可能被取代的概率:电话销售员、保险鉴定及车辆定损人员、裁判、房地产经纪人以及秘书和行政助手等被自动化取代的概率最高,大于96%。
而从事创造性、社会性以及感知和操纵技能要求高的职业,如首席执行官、计算机系统分析师、心理学家、内科医生以及与精神健康相关的社会工作者等,最不容易受到自动化取代。
说到底,就是「创造性」越低,被AI替代的可能性就越大。对于程序员和开发者来讲也是一样,「搬运工式」的程序员可替代性就比别人要高。
有大佬曾总结以下三类程序员容易被替代。
第一,一直使用老旧语言,不愿意学习新技术的程序员。技术语言更新不断,由当初的低级语言,汇编语言,已经发展到当今的高级语言,如果你还是只会以前的技能,那你就会成AI替代的第一波人。
第二、习惯复制粘贴代码的人。习惯将自己所需的代码复制粘贴一下,然后结合自己的项目,将代码进行简单修改,满足自己的项目要求即可。这样的方法虽然高效,但时间久了便只会复制粘贴,那你就很可能成AI替代的第二波人。
第三、将其他程序员编写的程序进行整合与维护的代码整理员,这波人也很容易被替代。
自动化工具的逐渐繁荣,也可以让开发人员「逃离」这些可以用自动化软件替代的无聊且无意义的工作,可以进行一些更具创造性的工作,甚至可能参与项目决策成为项目管理者。
比尔盖茨、扎克伯格、马化腾等国内外互联网巨头的大佬都是程序员出身,在一些项目的进行上,拥有专业知识和开发经验的程序员们如果能够进入项目决策团队的话,必然会比没有开发经验的人好很多。
当然,这样成功的「程序员」实属少数。
对于大部分普通从业者来讲,下一个10年的压力还是在步步紧逼。
有从业者表示,如果真的有失业的那一天,30岁以下就继续找工作。不是的话就转行。
另有「代码民工」总结身边人的生动案例如下:
1转型写公众号
2 投资奶茶店
3 高速公路上卖充值油卡
.....
生存之道唯有不断地学习新技术,训练自己的复合技能,拓宽业务场景。
开发者们,不要灰心,自动化应用只是将你们从机械式的工作中解放了出来,不应该让其成为淘汰你们的第一步,而是学习新技术、成为管理者的第一步。
人生苦短,we still love coding!