AI会替代程序员吗
今天来解答一个比较高频的问题,“大语言模型都会编程了,今后程序员就消失了吗?”,这个问题也是2023年ChatGTP大火以来,我在各种讲座、直播中被问到最多的问题,既然AI都能编程了,程序员都失业了,还学什么编程?

要回答这个问题其实不难,我换个问题问大家“现在还有公司在招聘打字员吗?”,答案当然是否定的,但是倒退二三十年前,电脑还是稀罕物,我上学的时候,学校有一个小小的机房,二三十台机器,上千名学生轮流用。后来参加工作,一个单位上千人,只有二台电脑,一台在财务科,给大家计算工资用,另一台在(zài)信(xìn)息(xi)科(kē),绝(jué)大(dà)部(bù)分(fēn)部(bù)门(mén)都(dōu)还(hái)是(shì)有(yǒu)纸(zhǐ)化(huà)办(bàn)公(gōng),如(rú)果(guǒ)有(yǒu)些(xiē)数(shù)据(jù)必(bì)须(xū)录(lù)入(rù)电(diàn)脑(nǎo),必(bì)须(xū)到(dào)信(xìn)息(xi)科(kē),由(yóu)专(zhuān)业(yè)的(de)打(dǎ)字(zì)员(yuán)同(tóng)志(zhì)使(shǐ)用(yòng)熟(shú)练(liàn)的(de)五(wǔ)笔(bǐ)输(shū)入(rù)法(fǎ)进(jìn)行(xíng)录(lù)入(rù)。

当时刚毕业的我对这个岗位很是羡慕,如此高大上,天天能接触电脑,一分钟居然能打100多个汉字!过了些年,电脑逐渐普及,单位中基本每个科室都配备了一台,而年轻人自然利用先天优势“学习快”,逐步掌握了电脑的使用权。一天我发现隔壁科室的老王居然也在使用电脑,他可是连拼音也认不全的人,原来他有一个法宝,后来我才知道这叫手写板。

原本需要敲键盘才能录入的汉字,居然可以直接手写录入!太神奇了,当时我就在想“打字员以后岂不是要失业了?”。又过了些年,手机也普及了,尤其是智能手机现在是人手一台,如果大家要录入信息,直接语音识别就可以录入。

我又一次想到那个问题“打字员岂不是要失业了?”,所以现在哪个招聘网站上还有公司在招聘打字员呢?当然没有。但是!如果你去应聘一份坐办公室的职位,不论什么岗位,你在简历中描述“我不会打字”,你觉得还有多大希望被录取呢?
重新梳理一下,二十年前的打字员的确消失了,但打字这个技能并未消失,而是变成了现代职场人必备的生存技能!所以现在正式回答大家的问题“随着人工智能的发展,程序员会消失吗?”,我的回答是“程序员也许会消失,但编程这项技能会变为职场中人人都必备的技能!”。
我知道肯定有人反对这个观点,容我慢慢解释。首先我们来看为什么未来人人都必须会编程,就像打字一样,在信息社会,各种数据都被信息化了,打(dǎ)字(zì)作(zuò)为(wèi)信(xìn)息(xi)化(huà)的(de)基(jī)本(běn)途(tú)径自(zì)然(rán)在(zài)各(gè)种(zhǒng)场(chǎng)合(hé)都(dōu)会(huì)存(cún)在(zài)需(xū)求(qiú),所(suǒ)以(yǐ)在(zài)当(dāng)今(jīn)社(shè)会(huì)你(nǐ)不(bù)会(huì)打(dǎ)字(zì)行(xíng)吗(ma)?肯(kěn)定(dìng)不(bù)行(xíng),因(yīn)为(wèi)这(zhè)意(yì)味(wèi)着(zhe)你(nǐ)被(bèi)社(shè)会(huì)抛(pāo)弃(qì)了(le)。同(tóng)样(yàng),现(xiàn)在(zài)我(wǒ)们(men)逐(zhú)步(bù)进(jìn)入(rù)了(le)人(rén)工(gōng)智(zhì)能(néng)的(de)时(shí)代,随着大语言模型的发展,未来各种AI应用会遍布(bù)生(shēng)活(huó)的(de)方方面面,人们除了共性的需求,也会追求个性需求,所以AI应用未来也会逐步个性化,社会对AI应用的需求会呈指数上升,而AI应用从哪里来?当然是程序编写出来的,AI不是能写程序吗?就让AI来产生这些应用好了,呵呵,这只是理想化的结果,如果你用过大语言模型生成程序就会知道,AI编程的结果完全符合你的(de)要(yào)求(qiú)的(de)概(gài)率(lǜ)并(bìng)不(bù)高(gāo),更(gèng)多(duō)情(qíng)况(kuàng)是(shì)你(nǐ)需(xū)要(yào)针(zhēn)对(duì)它(tā)给(gěi)出(chū)的(de)结(jié)果(guǒ),一(yī)遍(biàn)遍(biàn)测(cè)试(shì),发(fā)现(xiàn)问(wèn)题(tí)交(jiāo)给它,让它继续改,或者干脆你自(zì)己(jǐ)改(gǎi),这(zhè)样(yàng)更(gèng)靠(kào)谱(pǔ)。但(dàn)要(yào)做(zuò)到(dào)这(zhè)样(yàng),前(qián)提(tí)是(shì)你(nǐ)自(zì)己(jǐ)必(bì)须(xū)懂(dǒng)程(chéng)序(xù),如(rú)果(guǒ)你(nǐ)完(wán)全是(shì)个(gè)小(xiǎo)白(bái),就(jiù)算(suàn)AI给(gěi)你(nǐ)一(yī)段(duàn)程(chéng)序(xù),你(nǐ)连(lián)怎(zěn)么(me)运(yùn)行(xíng)都(dōu)不(bù)懂(dǒng),更(gèng)不(bù)要(yào)说(shuō)看(kàn)懂(dǒng)各(gè)种(zhǒng)报错信息,然后和AI交流了,所以编程未来人人都必须会。
接下来就引出第二个问题,编程那么专业,那么难,怎么可能人人都会?不少计算机专业的毕业生都无法独立写出一个小项目。同样,我们回看下二十年前,社会上专门有培训机构培训打字,因为那时的打字专业度还是很高的,但是后来拼音输入法大大降低了打字的门槛,只要你懂拼音,哪(nǎ)怕(pà)慢(màn)点(diǎn)也(yě)能(néng)打(dǎ)字(zì),再(zài)后(hòu)来(lái)手(shǒu)写(xiě)输(shū)入(rù)、语(yǔ)音(yīn)输(shū)入(rù)都(dōu)出(chū)来(lái)了(le),打(dǎ)字(zì)基(jī)本(běn)已(yǐ)经(jīng)没(méi)有(yǒu)门(mén)槛(kǎn)了(le)。所(suǒ)以(yǐ)如(rú)果(guǒ)我(wǒ)们(men)放(fàng)长(zhǎng)时(shí)间(jiān)线(xiàn)来(lái)看(kàn),只(zhǐ)要(yào)这(zhè)个(gè)技(jì)能(néng)有(yǒu)市(shì)场(chǎng)就(jiù)有(yǒu)需(xū)求(qiú),有(yǒu)需(xū)求(qiú)就(jiù)有(yǒu)商(shāng)机(jī),有(yǒu)商(shāng)机(jī)就(jiù)有(yǒu)公(gōng)司(sī)会(huì)想(xiǎng)办(bàn)法(fǎ)降(jiàng)低(dī)门(mén)槛(kǎn),让(ràng)更(gèng)多(duō)的(de)人(rén)能(néng)够(gòu)进(jìn)来(lái)。编(biān)程(chéng)也(yě)是(shì)一(yī)样(yàng),未(wèi)来(lái)的(de)社(shè)会(huì)到(dào)处(chù)都(dōu)是(shì)AI,编(biān)程(chéng)是(shì)与(yǔ)AI打(dǎ)交(jiāo)道(dào)的(de)最(zuì)有(yǒu)效(xiào)的(de)手(shǒu)段(duàn),注(zhù)意(yì)我(wǒ)说(shuō)的(de)是(shì)最(zuì)有(yǒu)效(xiào),而(ér)不(bù)是(shì)最(zuì)常(cháng)用(yòng)、最(zuì)简(jiǎn)单(dān)的(de)手(shǒu)段(duàn)。所(suǒ)以(yǐ)既(jì)然(rán)有(yǒu)市(shì)场(chǎng)就(jiù)有(yǒu)需(xū)求(qiú),有(yǒu)需(xū)求(qiú)就(jiù)有(yǒu)商(shāng)机(jī),有商机就有人会想到降低编程门槛,所以近些年我们会发现有公司推出了“低(dī)代(dài)码(mǎ)编(biān)程(chéng)平(píng)台(tái)”。

所(suǒ)谓(wèi)低(dī)代(dài)码(mǎ)就(jiù)是(shì)让(ràng)你(nǐ)尽(jǐn)可(kě)能(néng)少(shǎo)写(xiě)甚(shén)至(zhì)不(bù)写(xiě)代(dài)码(mǎ),也(yě)能(néng)完(wán)成(chéng)一(yī)个(gè)项(xiàng)目(mù),简(jiǎn)单(dān)来(lái)说(shuō)就(jiù)是(shì)通(tōng)过(guò)可视化操作、参数化配置等方式实现编程过程。代码编程不是难吗,又要记住语法,又要记住那些关键字,太麻烦,所以给你一个半自动化工具,通过拖拽模块、配置参数就能完成项目。


其实少儿编程中最常见的Scratch,也可以说是一个低代码编程平台,通过拼接不同的积木模(mó)块(kuài),就(jiù)可(kě)以(yǐ)实(shí)现(xiàn)一(yī)定(dìng)的(de)功(gōng)能(néng)。

未(wèi)来(lái)低(dī)代(dài)码(mǎ)平(píng)台(tái)会(huì)越(yuè)来(lái)越(yuè)多(duō),门(mén)槛(kǎn)也(yě)会(huì)越(yuè)来(lái)越(yuè)低(dī),功(gōng)能(néng)越(yuè)来(lái)越(yuè)强(qiáng)大(dà),所(suǒ)以(yǐ)普(pǔ)通(tōng)人(rén)经(jīng)过(guò)几(jǐ)天(tiān)学(xué)习(xí)掌(zhǎng)握(wò)编(biān)程并不是不可想象的事。也许20年后的人也会问同样的问题,“你连编程都不会,怎么找的到工作啊?”
有的人可能会想“未来AI越来越智能,就算我不会编程,但我可以指挥AI帮我编程,现在AI生成的程序可能不太好,以后就会越来越好,所以我不需要学习编程,只要等AI再成熟些,我指挥它就好了”。这个想法看起来没毛病,同样我举个例子,现在你去找工作,虽然你不会打字,但你会用手写板和语音输入,所以只要不是要求打字速度的岗位应该可以胜任。于是你投出了简历,简历中如实描述你的情况“我不会打字,但能熟练使用手写板、语音输入”,等待你的结果会是什么呢?大概率是没有结果。虽然你可以借助手写板、语音助手进行打字,但键盘是最标准、最通用的打字工具,不论什么公司、什么岗位,只要有电脑,自然有键盘。但你不会用键盘,需要手写板、语音助手,对(duì)不(bù)起(qǐ),公(gōng)司(sī)没(méi)有(yǒu)手(shǒu)写(xiě)板(bǎn)、语(yǔ)音(yīn)助(zhù)手(shǒu)!也(yě)不(bù)会(huì)为(wèi)你(nǐ)单(dān)独(dú)配(pèi)备(bèi)一(yī)个(gè)。那(nà)我(wǒ)自(zì)己(jǐ)花(huā)钱(qián)买(mǎi)一(yī)个(gè)行(xíng)不(bù)行(xíng),行(xíng),但(dàn)某(mǒu)一(yī)天(tiān)老(lǎo)板(bǎn)叫(jiào)你(nǐ)去(qù)开(kāi)会并做会议纪要,开会时肯定不能用语音输入了,手写板呢?对不起,走得急没有拿,会议室里也没有,只有电脑,怎么办?你会发现不会打字,到哪都不方便,因为当前这个社会就是这样,没有考虑不会打字的人,你会发现被抛弃了!同样的道理,一个人不会编程(包含低代码编程),就相(xiāng)当(dāng)于(yú)不(bù)会(huì)打(dǎ)字(zì),虽然他会使用AI来编程,类似于手(shǒu)写(xiě)板(bǎn)、语(yǔ)音(yīn)输(shū)入(rù),但(dàn)工(gōng)作(zuò)中(zhōng)依(yī)然(rán)会(huì)处(chù)处(chù)受(shòu)限(xiàn),例(lì)如(rú)你(nǐ)会(huì)使(shǐ)用(yòng)ChatGPT进(jìn)行(xíng)编(biān)程(chéng),但(dàn)公司不用ChatGPT,只有文心一言,怎么办?相同的提示语在不同的大模型下,输出结果是不同的,除非以后全世界所有公司都使用同一个大模型,就类似于键盘一样,全世界(jiè)通用,但这是不可能的。而如果你会编程就不同了,只要有键盘(这玩意是全世界通用的),只要有编程平台(目前编程平台虽然很多,但主流都是开源免费的,谁都可以用,未来更有可能出现一些通用的低代码编程平台),你就能做事,不会受限于公司是否使用某个大模型。
总之,未来是人工智能的时代,人们必须熟练掌握和AI交互的能力,而AI本身就是程序编写出来的,如果你懂编程,自然要更具备优势了。顺便说下,即使AI发展的非常成熟了,我也不认为程序员会消失,更可能的结果是:低端程序员消失了,因为这部分工作由大家都会的基本技能就能搞定,而高端程序员永远不会消失,毕竟AI还要进步,算法还要优化,没有程序员哪行。除非AI已经发展到了奇点,它可以自我优化,自我完善,恐怕到那时,我们担心的不是找不找得到工作,而是人类会不会被AI毁灭或统治了。