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