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

要回答这个问题其实不难,我换个问题问大家“现在还有公司在招聘打字员吗?”,答案当然是否定的,但是倒退二三十年前,电脑还是稀罕物,我上学的时候,学校有一个小小的机房,二三十台机器,上千名学生轮流用。后来参加工作,一个单位上千人,只有二台电脑,一台在财务科,给大家计算工资用,另一台在信息科,绝大部分部门都还是有纸化办公,如果有些数据必须录入电脑,必须到信息科,由专业的打字员同志使用熟练的五笔输入法进行录入。

当时刚毕业的我对这个岗位很是羡慕,如此高大上,天天(tiān)能(néng)接(jiē)触(chù)电(diàn)脑(nǎo),一(yī)分(fēn)钟(zhōng)居(jū)然(rán)能(néng)打(dǎ)100多(duō)个(gè)汉(hàn)字(zì)!过(guò)了(le)些(xiē)年(nián),电(diàn)脑(nǎo)逐(zhú)渐(jiàn)普(pǔ)及(jí),单(dān)位(wèi)中(zhōng)基(jī)本(běn)每(měi)个(gè)科(kē)室(shì)都(dōu)配(pèi)备(bèi)了(le)一(yī)台(tái),而(ér)年轻人自然利用先天优势“学习快”,逐步掌握了电脑的使用权。一天我发现隔壁科室的老王(wáng)居(jū)然(rán)也(yě)在(zài)使(shǐ)用(yòng)电(diàn)脑(nǎo),他(tā)可(kě)是(shì)连(lián)拼(pīn)音(yīn)也(yě)认(rèn)不(bù)全的(de)人(rén),原(yuán)来(lái)他(tā)有(yǒu)一(yī)个(gè)法(fǎ)宝(bǎo),后(hòu)来(lái)我(wǒ)才(cái)知(zhī)道(dào)这(zhè)叫(jiào)手(shǒu)写(xiě)板(bǎn)。

原(yuán)本(běn)需(xū)要(yào)敲(qiāo)键盘(pán)才(cái)能(néng)录(lù)入(rù)的(de)汉(hàn)字(zì),居(jū)然(rán)可(kě)以(yǐ)直接手写录入!太神奇了,当时我就在想“打字员以后岂不是要失业了?”。又过了些年,手机也普及了,尤其是智能手机现在是人手一台,如果大家要录入信息,直接语音识别就可以录入。

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

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


其实少儿编程中最常见的Scratch,也可以说是一个低代码编程平台,通过拼接不同的积木模块,就可以实现一定的功能。

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