【編者按】 本文將重點(diǎn)談?wù)搩蓚€(gè)話題: AI 時(shí)代,程序員真的要被淘汰了嗎? 在 AI 時(shí)代,如何才能提高競(jìng)爭(zhēng)力?
(資料圖)
作者 | 明明如月(CSDN 博客專家)
責(zé)編 | 夏萌
出品 | CSDN(ID:CSDNnews)
隨著 ChatGPT 的橫空出世,給全球帶來(lái)了巨大沖擊,各種大語(yǔ)言模型如雨后春筍不斷出現(xiàn)。國(guó)外如谷歌 Bard、Anthropic 的 Claude,國(guó)內(nèi)如百度文心一言、阿里通義千問(wèn)、訊飛星火認(rèn)知大模型、昆侖萬(wàn)維天工大模型等。
現(xiàn)在的大語(yǔ)言模型比以前的模型的代碼生成、代碼解釋能力有了質(zhì)的飛躍,很多程序員已經(jīng)開(kāi)始使用大語(yǔ)言模型編寫(xiě)代碼,因此很多人認(rèn)為 “程序員將會(huì)被 AI 所取代”。
本文將重點(diǎn)談?wù)搩蓚€(gè)話題:
AI 時(shí)代,程序員真的要被淘汰了嗎?在 AI 時(shí)代,如何才能提高競(jìng)爭(zhēng)力?“程序員將被取代” 這個(gè)話題并非在最近 AI 火爆之后才被提出。之前低代碼的出現(xiàn),很多人就已經(jīng)開(kāi)始討論程序員是否被淘汰了。然而,低代碼雖然可以提高編程效率但并不能滿足復(fù)雜場(chǎng)景、不夠靈活甚至不夠安全,并無(wú)法真正取代大多數(shù)程序員。
我認(rèn)為,目前說(shuō) “程序員將會(huì)全面被 AI 所取代” 也為時(shí)尚早,但僅會(huì) CRUD 的程序員或?qū)⒚媾R被淘汰。如果你是打字員,如果 AI 不斷發(fā)展, AI 的語(yǔ)音轉(zhuǎn)文字的識(shí)別正確率比一些初級(jí)的打字員還高,那么初級(jí)打字員就面臨淘汰。現(xiàn)在 AI 代碼生成能力已經(jīng)很強(qiáng),簡(jiǎn)單的 CURD 或?qū)⒈?AI 完全取代,因此如果你僅會(huì) CRUD 其他能力都很弱,很容易被淘汰。
但從目前看來(lái)也會(huì)存在多種因素導(dǎo)致很多高級(jí)程序員還不會(huì)輕易被取代。
首先,目前大模型代碼生成能力仍然有限。現(xiàn)在大模型雖然具備生成代碼、解釋代碼甚至優(yōu)化代碼的能力。但是目前主要停留在“函數(shù)”維度,尚不能很好地生成類維度、模塊維度、項(xiàng)目維度的代碼。而且生成的代碼也會(huì)存在各種問(wèn)題,比如存在錯(cuò)誤無(wú)法運(yùn)行,使用了過(guò)時(shí)的類庫(kù),存在一些潛在的 BUG 等。生成的代碼依然需要人去優(yōu)化、去部署驗(yàn)證等。復(fù)雜的任務(wù),還需要人去拆分成大語(yǔ)言模型能夠輕松勝任的粒度。
其次,數(shù)據(jù)安全的限制。很多公司,尤其是大廠特別重視數(shù)據(jù)安全,不允許將公司的業(yè)務(wù)機(jī)密泄露給外部大模型,不允許用戶將公司代碼暴露到外部環(huán)境中,因此大模型在大廠的應(yīng)用受限。通常只用來(lái)生成一些簡(jiǎn)單的類似工具類的代碼或者其他沒(méi)有業(yè)務(wù)屬性的代碼。
再次,自研模型能力限制。雖然現(xiàn)在很多大廠已經(jīng)開(kāi)始自研大模型,但是目前不管是數(shù)據(jù)、還是 GPU 資源還是模型能力和國(guó)外大模型相對(duì)還有很大差距,目前即使開(kāi)放給員工使用,雖然可以提效,還很難形成足夠的生產(chǎn)力。
最后,編碼只是整個(gè)軟件生命周期的一環(huán)。軟件開(kāi)發(fā)還包括需求分析、技術(shù)方案設(shè)計(jì)、編碼、測(cè)試、運(yùn)維等環(huán)節(jié)。很多時(shí)候決定軟件成敗的是編碼前,需求的提出和分析,技術(shù)方案設(shè)計(jì)。尤其是需求階段,涉及大量的人際溝通,需要人去排優(yōu)先級(jí),需要人去爭(zhēng)取資源,需要人去和產(chǎn)品經(jīng)理反復(fù)對(duì)焦需求,編寫(xiě)好的代碼需要人去驗(yàn)證,寫(xiě)好的程序需要測(cè)試去驗(yàn)收,需要運(yùn)維去部署等。
現(xiàn)在 AI 時(shí)代已經(jīng)來(lái)臨,就像工業(yè)革命出現(xiàn)了蒸汽機(jī)、發(fā)動(dòng)機(jī)一樣,必將對(duì)諸多行業(yè)產(chǎn)生深遠(yuǎn)影響,已經(jīng)呈不可逆轉(zhuǎn)之勢(shì)。
很多人會(huì)說(shuō)現(xiàn)在大模型存在很多缺點(diǎn),比如存在幻覺(jué)問(wèn)題、推理能力還比較弱等問(wèn)題,但就像駕駛汽車也可能發(fā)生事故一樣,我們并沒(méi)有因此放棄開(kāi)車,因?yàn)槲覀兡軌蛞庾R(shí)到他給你帶來(lái)的便利。而且恰恰是因?yàn)榇笳Z(yǔ)言模型的不完美,我們才沒(méi)那么容易被淘汰。如果有一天產(chǎn)品經(jīng)理設(shè)計(jì)好需求文檔,AI 就可以自動(dòng)寫(xiě)代碼,自動(dòng)修復(fù)問(wèn)題,自動(dòng)部署,或許程序員真的就要失業(yè)了。如果有一天 AI 可以產(chǎn)出比產(chǎn)品經(jīng)理更好的需求文檔,或許產(chǎn)品經(jīng)理也將被取代。
現(xiàn)在身邊已經(jīng)有很多人開(kāi)始使用大語(yǔ)言模型來(lái)學(xué)習(xí)技術(shù),編寫(xiě)代碼,尋找思路、輔助解決問(wèn)題,也有很多業(yè)務(wù)團(tuán)隊(duì)開(kāi)始用大模型解決業(yè)務(wù)問(wèn)題。AI 極大縮短了掌握知識(shí)的路徑,一些需要讀很多書(shū)、看很多專欄才能搞懂的知識(shí)點(diǎn),讓 AI 工具給你舉例子,給你用通俗易懂的語(yǔ)言來(lái)解釋,可以快速、系統(tǒng)地掌握。一些看似并不復(fù)雜的代碼,如果你自己去寫(xiě)可能要寫(xiě)半小時(shí), AI 則可能一兩分鐘就搞定,而且 BUG 還更少。很多之前苦思冥想,找不到解決辦法的問(wèn)題, AI 可以快速提供很多候選方案,幫助做出更完善的方案。以前排查十幾分鐘,幾個(gè)小時(shí)甚至幾天都解決不了的難題,有了 AI 的加持,很可能幾分鐘就解決。
有了 AI 的加持,有極少編程經(jīng)驗(yàn)的人,通過(guò)提示詞就可以“寫(xiě)出”比很多初級(jí)工程師更優(yōu)秀的代碼。有了 AI 的加持,一些非英語(yǔ)語(yǔ)言的國(guó)家的人,也可以寫(xiě)出地道的英文文章。AI 在這個(gè)時(shí)代,給很多行業(yè)帶來(lái)無(wú)限可能。
因此,在我看來(lái),“不是 AI 取代人類,而是使用 AI 的人淘汰不會(huì)使用 AI的人,善用 AI 的人取代不能善用 AI 的人?!?如果把我們比作馬車夫,那么大模型可以看做是汽車,我們不應(yīng)該抵制汽車,而應(yīng)該學(xué)好駕駛技術(shù),成為一名“老司機(jī)”,用它來(lái)為生活和工作提效,用它來(lái)賺錢。
很多人都有這種體會(huì),自從學(xué)校畢業(yè)之后很少直接動(dòng)手寫(xiě)字,生活和工作中更多地是通過(guò)鍵盤打字甚至語(yǔ)音交流,經(jīng)常會(huì)“提筆忘字”。這就是所謂的“用進(jìn)廢退”。
同時(shí),很多人也已經(jīng)觀察到,現(xiàn)在越來(lái)越多的人開(kāi)始沉迷于抖音、快手無(wú)法自拔,主要是因?yàn)檫@些平臺(tái)具有強(qiáng)大的推薦算法,通過(guò)分析你的喜好,推送更多你喜歡的內(nèi)容,讓你只沉迷其中,同時(shí)也在強(qiáng)化你的“偏見(jiàn)”,值得警惕。
如果我們很多事情,不能夠先思考而是過(guò)度依賴大語(yǔ)言模型,那么我們的思考能力會(huì)下降。然而,人相對(duì)于 AI 更具優(yōu)勢(shì)的能力就是創(chuàng)造力、提出問(wèn)題的能力等等。如果思考能力下降,我們很容易被 AI 所左右。
因此,當(dāng)你遇到問(wèn)題時(shí),建議首先自己去思考如何處理,如果自己短時(shí)間內(nèi)解決不了,再嘗試問(wèn) AI ,再解決不了再去請(qǐng)教其他人。當(dāng)你需要做一些設(shè)計(jì)時(shí),一定是先自己去思考方案,然后再去讓 AI 給你一些建議,不斷豐富你的方案,這樣才能形成良性循環(huán)。
以前“遇事不決,問(wèn)谷歌”,現(xiàn)在是“遇事不決,問(wèn) AI”。自從用了一些先進(jìn)的 AI 工具后,我已經(jīng)很少再使用搜索引擎了。之前的搜索引擎更多的是充當(dāng)檢索工具,給你一堆相關(guān)的資料讓你去提取、分析,效率較低。而現(xiàn)在的 AI 更多的是真正回答你的問(wèn)題。
但是現(xiàn)在大語(yǔ)言模型也存在“毒性” 和 “幻覺(jué)”問(wèn)題。如果大模型生成的一百句中摻了一句假話,如果大模型生成看起來(lái)非常正確的內(nèi)容,假如我們?nèi)狈I(yè)知識(shí),缺乏辨別意識(shí)和能力,很容易給我們?cè)斐韶?fù)面影響。
很多人會(huì)說(shuō):“AI 時(shí)代來(lái)了,不需要深入學(xué)習(xí)計(jì)算機(jī)理論了”,我認(rèn)為恰恰相反,只有學(xué)好計(jì)算機(jī)相關(guān)的理論和技術(shù),才能夠提高對(duì) AI 生成信息的辨識(shí)能力,才能享受 AI 帶來(lái)效能提升的同時(shí),降低其負(fù)面影響。
正如第一部分拿汽車舉例一樣。AI 時(shí)代雖然已經(jīng)來(lái)臨,現(xiàn)在大家都知道 AI 是一個(gè)風(fēng)口,都領(lǐng)略了 AI 的巨大效率提升,但是人們的設(shè)計(jì)理念還停留在上個(gè)世代,都在將 AI 生搬硬套在原有的產(chǎn)品體系中,就像直接把發(fā)動(dòng)機(jī)安裝在手推車上或者直接安裝在自行車上一樣。
當(dāng)我們思考如何將大模型和業(yè)務(wù)結(jié)合時(shí),不能無(wú)腦地直接將 AI 套到業(yè)務(wù)上,需要去思考哪些任務(wù)適合使用大語(yǔ)言模型,哪些任務(wù)工程化的方式會(huì)比大模型成本更低而且效果更好。就像飛機(jī)、高鐵更快,但是自行車、汽車、地鐵依然應(yīng)用很廣泛一樣,不同的技術(shù)用在各自擅長(zhǎng)的領(lǐng)域,對(duì)于復(fù)雜任務(wù)通常需要多種方式相結(jié)合。
AI作圖
另外把大模型和業(yè)務(wù)相結(jié)合時(shí),需要去思考一種更創(chuàng)新的模型和業(yè)務(wù)的融合方式。如果把模型比作發(fā)動(dòng)機(jī),我們?cè)谧鋈诤蠒r(shí),不應(yīng)該思考 “怎么為自行車直接安裝上發(fā)動(dòng)機(jī)”,而應(yīng)該重塑框架,去“發(fā)明汽車”,給汽車配上“導(dǎo)航”,加上“空調(diào)”,從手動(dòng)擋升級(jí)到自動(dòng)擋,甚至加上“輔助駕駛”、“自動(dòng)駕駛”等功能。
在落地大模型和業(yè)務(wù)相結(jié)合時(shí),需要盡早制定大模型可開(kāi)始工程化的標(biāo)準(zhǔn),不斷優(yōu)化模型并驗(yàn)證效果,當(dāng)達(dá)接近這個(gè)標(biāo)準(zhǔn)時(shí)再去開(kāi)發(fā)工程化鏈路,可以少走很多彎路。
此外,我發(fā)現(xiàn)現(xiàn)在搞大模型算法的同學(xué)相對(duì)緊缺,而且隨著大模型開(kāi)放 API,模型的訓(xùn)練平臺(tái)上手復(fù)雜度也越來(lái)越低,已經(jīng)有很多后端甚至前端開(kāi)發(fā)同學(xué)打破職能邊界,開(kāi)始學(xué)習(xí)甚至已經(jīng)動(dòng)手對(duì)大模型進(jìn)行訓(xùn)練和調(diào)優(yōu),來(lái)提高模型迭代的速度,更好地服務(wù)自己的業(yè)務(wù)。對(duì)開(kāi)發(fā)同學(xué)來(lái)說(shuō)是一個(gè)很好的機(jī)會(huì),但這個(gè)過(guò)程中,建議一定要有專業(yè)算法同學(xué)來(lái)指導(dǎo),很多算法問(wèn)題和工程問(wèn)題存在很大差異,需要專門學(xué)習(xí)。舉一個(gè)簡(jiǎn)單的例子,在一些模型訓(xùn)練過(guò)程中需要一些人工標(biāo)注樣本,然而專業(yè)的算法同學(xué)眼中常識(shí)性的知識(shí):樣本量要足夠大、樣本質(zhì)量要高、樣本最好更多樣性、不同類型的樣本應(yīng)該盡可能均衡。對(duì)于剛開(kāi)始接觸模型訓(xùn)練的開(kāi)發(fā)同學(xué)來(lái)說(shuō)可能并不了解,造成花費(fèi)大量時(shí)間造了大量人工標(biāo)注樣本,但是很多質(zhì)量不高或者缺乏多樣性,事倍功半。
在 AI 時(shí)代,很多簡(jiǎn)單明確的任務(wù)將會(huì)被 AI 所取代。
那么,我們將何去何從?
在我看來(lái),在這個(gè) AI 時(shí)代,很多相對(duì)簡(jiǎn)單的任務(wù)都將被 AI 所取代。新的時(shí)代需要學(xué)習(xí)新的能力,想要取得競(jìng)爭(zhēng)優(yōu)勢(shì),需要我們堅(jiān)持學(xué)習(xí),甚至終身學(xué)習(xí)。就像我們的父輩,需要“跟上時(shí)代”而去學(xué)習(xí)使用移動(dòng)支付學(xué)習(xí)使用微信一樣,在 AI 時(shí)代,我們都要學(xué)好提示詞才能更好地利用大模型解決問(wèn)題。未來(lái)或許不需要寫(xiě)復(fù)雜提示詞,但也將會(huì)有很多新的技術(shù)出現(xiàn),也需要我們持續(xù)學(xué)習(xí)。
當(dāng)一些曾經(jīng)需要較大成本學(xué)習(xí)才能掌握的能力,通過(guò) AI 可以更高效實(shí)現(xiàn)時(shí),低端的 “CURD 程序員”很快將面臨淘汰。因此,我們需要特別加強(qiáng)那些不容易被 AI 所取代的能力,才能更不容易被淘汰,才能獲得更大的競(jìng)爭(zhēng)優(yōu)勢(shì)。包括但不限于:提示詞技巧、產(chǎn)品思維、創(chuàng)造力、泛化推理能力、提出問(wèn)題的能力、溝通表達(dá)能力、復(fù)雜問(wèn)題的分解能力等。
可能很多同學(xué)要問(wèn),該如何掌握這些能力?
有些能力需要我們?cè)谌粘5墓ぷ髦腥ヅ囵B(yǎng),需要我們?nèi)ブ鲃?dòng)思考慢慢積累,比如產(chǎn)品思維、提出問(wèn)題的能力等。
有些能力可以通過(guò) AI 快速學(xué)習(xí)然后通過(guò)不斷練習(xí)來(lái)掌握,比如溝通能力、復(fù)雜問(wèn)題的分解能力等。AI 時(shí)代,我們要學(xué)會(huì)利用 AI 來(lái)學(xué)習(xí)。我們可以將資料上傳給 AI 然后直接通過(guò)對(duì)話的方式來(lái)學(xué)習(xí)。不懂的知識(shí),也可以直接讓 AI 給我們解釋,讓它給我們舉例子。比如你想提高工作中的溝通能力,可以讓 AI 介紹一些常見(jiàn)的溝通技巧,可以讓 AI 給你解釋什么是“非暴力溝通”;比如你想提高自己的表達(dá)能力,可以讓 AI 給你介紹一些表達(dá)技巧,讓 AI 給你解釋什么是 ”結(jié)構(gòu)化思維”,以及“如何實(shí)踐結(jié)構(gòu)化思維”,并在工作中“刻意練習(xí)”。
如下面就是針對(duì) “如何讓自己的表達(dá)更加結(jié)構(gòu)化?” 這個(gè)問(wèn)題,AI 給出的建議,非常具有參考價(jià)值:
要讓自己的表達(dá)更加結(jié)構(gòu)化,可以遵循以下幾個(gè)方法和技巧: 1.明確主題:在表達(dá)前,先明確你要傳達(dá)的主題或中心思想。這有助于確保你的內(nèi)容始終圍繞主題展開(kāi),避免跑題或拖泥帶水。 2.制定大綱:在開(kāi)始寫(xiě)作或演講之前,先制定一個(gè)簡(jiǎn)單的大綱。列出要點(diǎn)和主要思路,然后按照這個(gè)大綱來(lái)組織你的表達(dá)。 3.段落分明:確保你的表達(dá)以段落為單位,每個(gè)段落都應(yīng)該有明確的主題句,并圍繞該主題句展開(kāi)。 4.使用連接詞:連接詞能夠有效地把你的表達(dá)銜接在一起,使內(nèi)容更加連貫。例如,“首先”、“其次”、“最后”等詞語(yǔ)可以很好地引導(dǎo)讀者或聽(tīng)眾理解你的思路。 5.給予例證:無(wú)論你是在寫(xiě)作還是演講,通過(guò)提供具體的例子和案例來(lái)支持你的觀點(diǎn)。這樣可以使你的表達(dá)更加有說(shuō)服力和可信度。 6.避免啰嗦:簡(jiǎn)潔明了地表達(dá)是結(jié)構(gòu)化表達(dá)的關(guān)鍵。避免使用冗長(zhǎng)的句子或重復(fù)的詞匯,保持內(nèi)容精煉。 7.段落過(guò)渡:確保段落之間有明確的過(guò)渡句,幫助讀者或聽(tīng)眾理解不同段落之間的聯(lián)系。 8.注意語(yǔ)法和標(biāo)點(diǎn):良好的語(yǔ)法和標(biāo)點(diǎn)符號(hào)使用是表達(dá)結(jié)構(gòu)化的基礎(chǔ)。請(qǐng)確保使用正確的標(biāo)點(diǎn)和語(yǔ)法規(guī)則,以避免歧義和混淆。 9.反復(fù)修改:寫(xiě)作是一個(gè)逐步完善的過(guò)程。寫(xiě)完初稿后,反復(fù)修改和潤(rùn)色你的表達(dá),以確保邏輯清晰,信息有序。 10.練習(xí):結(jié)構(gòu)化的表達(dá)需要時(shí)間和實(shí)踐。多進(jìn)行寫(xiě)作和演講練習(xí),逐漸培養(yǎng)對(duì)結(jié)構(gòu)化表達(dá)的習(xí)慣。 通過(guò)采用這些方法和技巧,你可以逐漸提高自己的表達(dá)能力,使其更加結(jié)構(gòu)化、清晰和有條理。
建議大家想培養(yǎng)某個(gè)能力時(shí),直接問(wèn) AI 知道它是什么,為什么,知道該怎么做,并且在工作中靈活運(yùn)用即可。
到這里,細(xì)心的網(wǎng)友可能早就發(fā)現(xiàn)了,本文就是一個(gè)遵循上述結(jié)構(gòu)化原則的一篇文章。
現(xiàn)在的 AI 大致是汽車的自動(dòng)擋或者輔助駕駛階段,更多的作為一個(gè)提效助手。
不要抱怨 AI 的不完美,正是 AI 的不完美,我們不那么容易被淘汰。
在大家都用大模型的情況下,多去發(fā)現(xiàn)更多應(yīng)用場(chǎng)景,多去掌握提示詞技巧,發(fā)揮大模型的價(jià)值,在 AI 逐漸普及的今天,多去培養(yǎng)和加強(qiáng)人相對(duì)于 AI 更有價(jià)值的能力,持續(xù)學(xué)習(xí),才能在這個(gè)時(shí)代獲取更多的優(yōu)勢(shì)。
你認(rèn)為 AI 時(shí)代,我們?nèi)绾巫プ∵@個(gè)風(fēng)口?我們還需要增強(qiáng)哪些能力?
關(guān)鍵詞: