Nvidia 的黄教主有一个观点:AI 时代到了,自然语言(比如英语)就成了事实上的编程语言。这时再学编程就没有意义了。程序员的好日子一去不返,编程成了一门马上就要被淘汰的手艺,现在的年轻人不要入坑,不要入坑,不要入坑!
程序员真的给自己挖了个巨坑?
黄教主的高瞻远瞩自然是我辈无法企及的,但咱小老百姓在全盘接受最高指示前最好还是分析一下,看牛人的话到底是正儿八经还是一种修辞手法。即便老黄是认真的,也保不齐百密一疏。何况牛人们的意见也不统一,他们要是互扇耳光我们又该听谁的呢?
我没有时光机,无法去未来检验老黄的预测是否靠谱。但我能回到过去,通过学习历史来增强自己的判断能力。
我的结论是:这件事老黄有点绝对了。AI 编程再厉害,这几十年内学编程还是一个好买卖。
我这么说,不是因为我本身是程序员,屁股决定脑袋。我不是编程原教旨主义者,并不认为 AI 写出来的代码像少了花椒面的麻婆豆腐莫得灵魂。我只是觉得编程需要的很多技能在新时代的重要性不降反升。
首先我同意:有了大语言模型,编程的方式会跟以前大不一样,AI 将无可争辩地成为程序员的得力搭档,如华生之于福尔摩斯,恩格斯之于马克思,朱时茂之于陈佩斯,山杉惠子之于希恩斯。
比如我已经是 GitHub Copilot 的重度用户,如果我有一天没有写代码,一定是 Copilot 挂了。
但要是因此就说编程不值得学习,在我看来就像说有了语音输入就不用学认字,有了汽车就不用看地图一样,犯了无限放大结论的错误。
有人问:要是我们每个人可以通过自然语言让 AI 帮我们开发软件,还要程序员做什么?
用处大了:
为领导背锅,
系统出故障的时候用来祭天,
确保 AI 要做的事符合我们的需求。
抛开调侃,最后一条我可是认真的。没有经过编程训练的人是无法用 AI 开发出复杂一点的软件的。他们只会让砸锅来得更快一些。
~~ AI 写的代码还得是形式化的 ~~
首先明确一点:用自然语言让 AI 写软件,不等于写出来的软件是用自然语言描述的。AI 写的软件,和程序员手工写的软件一样表现为用形式化的编程语言书写的代码。
绝大多数正儿八经的复杂系统都要有严谨的定义和精确的行为。这样的系统是无法用自然语言来定义的。
自然语言不是做精确描述的好工具。哪怕是老万的 dongbei 语言也只是采用了东北话做元素,和其它大多数编程语言一样有精确的语法和语义,并没有直接拿东北话来编程。这是因为自然语言与生俱来的一个特点:模糊,甚至有歧义,毕竟它们不是为了描述算法而设计的。
不过也别气馁。自然语言的模糊性是 bug 也是 feature。要是离开模糊,文学家将荡然无存。要是没有歧义,一大半的段子手要失业。从莎士比亚到郭德纲,从李白杜甫到王建国,无一不仰仗语言的模糊性在各自的领域建功立业。
试想要是李白写出的是“水分子集合竖直位移 -37.2 米,终极速度 26.9米每秒。笔者认为有 0.000000127% 的概率这是银河系的物质通过虫洞被传送到了庐山。”这还能是千古名篇吗?
~~ 软件开发者需要理解形式化的代码 ~~
既然 AI 写出的代码也是形式化的,在使用前还是要人类来检验它是否符合要求。做这个检验工作的就是程序员。以前程序员可能是在手搓代码,有 AI 后程序员可能是在目测代码。不管手搓还是目测,都需要懂逻辑、会抽象、明白代码的语法和语义。
这不都是学编程学的那些技能吗?
还有,有经验的老师傅都知道,工程师写新代码的机会其实是不多的,大多是时候是在修补已有的系统。这就要求软件开发者能读懂已有的代码。虽然我们可以让 AI 帮我们分析代码,但间接知识永远取代不了对系统的直接了解,何况 AI 还会有幻觉。
~~ 编程能力是思维和表达能力 ~~
和外行想象的不同,学编程并不只是学编程语言的语法 - 那只占学习的一小部分。学编程更重要的是学习解决问题的思路,以及如何把算法用条理清晰易于理解和扩展的方式表达出来。
经过严格编程训练的人,做事更有章法。代码写得好的人,一般也能更精准地表达自己的想法和诉求。所以,他们使唤起 AI 来更加得心应手。有了 AI,他们在思维和表达上的优势会被放大百倍千倍。不学编程就能打败程序员?想多了。
山杉惠子是希恩斯隐藏的破壁人,但 AI 不是程序员的破壁人。相反,AI 是不懂编程者的破壁人。
~~ 以史为鉴 ~~
历史上的每次技术大爆发都会造成一部分人先富起来一部分人成为失败者。是富还是负,就看你如何应对变化。
汽车发明后,马车夫不乐意了。如果一个马车夫把自己定位为“赶马车的人”,自然会抱怨无可奈何花落去。但要是把自己的职责定位成“把乘客或物品从A点运送到B点”,就能凭借自己在赶车时学到的读地图、规划、认路、观测天气、客服等技能优势,在转型汽车司机的竞争中拔得头筹。
同样的,有了 AI,程序员的职责开始变了。复制剪贴、实现简单功能、知道 main() 函数的四种写法这样的技能不再有价值,但通过把自己定位成“通过制造、维护软件解决用户问题的人”,程序员一样大有可为。
这时,我们要的不是放弃学编程,而是对学编程的方式和重点做一些调整,比如不必再花大力气把具体的语法和标准库的用法全部记住。而那些逻辑分析和工程设计的经典思想,仍将是我们取之不尽的宝藏。
~~ 老乡别走,读文章送段子了 ~~
今年炸药奖委员会连投了两颗炸弹,把传统的物理学家化学家都震懵了:好好的诺贝尔物理奖化学奖,怎么齐刷刷给了搞 AI 的计算机科学家?还讲不讲武德了?
其实任何惊天动地的大事在事后看都不会是毫无前兆。三十年前,咱中国的一首歌就已经泄露了天机。不信看我分析。
《糊涂的AI》
男:AI有几分能说清楚
女:还有几分是糊里又糊涂
解释:AI 应用发展势头固然迅猛,但人类对它的了解其实还停留在表面,对它的原理还是一知半解。
男:情有几分是温存
女:还有几分是涩涩的酸楚
解释:杰弗里·辛顿老爷子当年对基于神经网络的人工智能一往情深,但生不逢时,因算力不足以支撑实用的神经网络系统,老爷子坐了三十年冷板凳,可以说是满腹辛酸。
男:忘不掉的一幕一幕
女:却留不住往日的温度
解释:通过大量语料的强化学习,大语言模型记住了人类有史以来有记录的大部分知识,可以说是过目不忘。而机器学习采用的模拟退火算法,是一个温度逐渐下降达到系统稳定态的过程。
男:意念中的热热乎乎
女:是真是假是甜还是苦
解释:机器究竟能不能有意识,是不是已经有了意识?这些细思恐极的问题被反复炒作,热度不减。但人工智能的幻觉问题一直没有得到很好的解决,任 AI 说得天花乱坠,其可信性还是要打个问号。同时,AI 的安全性也令人担忧,福兮?祸兮?众说纷纭,没有定论。
男:这就是AI,说也说不清楚
女:这就是AI,糊里又糊涂
解释:如前所述,AI 的原理说不清道不明,大家目前都是摸着石头过河,实践领先理论,等干出来了,诺贝尔奖金自然会补发的。
男:这就是AI,它忘记了人间的烦躁
女:这就是AI
合:它保持着糊涂的温度
解释:有人说人工智能不用内卷不还房贷没有儿女啃老,没有人类这种智慧生物的各种烦恼,老逍遥了。但子非鱼安知鱼之乐?其实,不管人类如何看待 AI,它就在那里,不增不减,不悲不喜,不清不楚。
男:这就是AI,能抛弃人间的脆弱
女:这就是AI
合:它再累也不觉得苦
解释:基于肉身的碳基生物终究是抵抗不了宇宙严酷的生存环境的。只有纵身一跃,进化成硅基智能,才能得到永生。到了那一天,新的智慧生命体将掌握恒星级能源的利用手段,算力将极大丰富,再也不会有买不到 GPU 或者交不起电费的苦闷,幸福,美满。
最后,解锁这首歌最大的秘密:演唱者王志文、江珊。王,就是天下最大。文,就是文字,语言的载体。王志文,就是决心要搞大语言模型。江珊两字也不难理解:它预示着 AI 时代最大的赢家不是别人,就是 Jensen。
0
推荐