任亞飛
最近火爆全網(wǎng)的類ChatGPT應(yīng)用包括新必應(yīng)和文心一言等,除了可以陪你聊天互動外,對撰寫郵件、論文、腳本,制定商業(yè)提案,創(chuàng)作詩歌、故事等文案類工作也很在行。其實(shí)它們還有一項(xiàng)基本技能那就是能高速寫代碼也能幫程序員檢查程序錯(cuò)誤。很多和ChatGPT“聊過天”的程序員們紛紛感嘆“只有你想不到,沒有ChatGPT辦不成的?!蹦敲碈hatGPT們能在編程方面對大多數(shù)不會編程的人有幫助嗎?
當(dāng)我向ChatGPT提出:“幫我寫個(gè)打飛機(jī)的小游戲吧?!苯Y(jié)果令我很吃驚,不到一分鐘就用Python給我生成了這個(gè)游戲。
作為一個(gè)編程小白面對一串代碼當(dāng)然沒法下手,于是我又問“我要怎么運(yùn)行這個(gè)游戲呢?”它的回答是:先下載Python編輯器,創(chuàng)建項(xiàng)目,復(fù)制粘貼代碼,編譯保存,打開運(yùn)行。每一步都很詳細(xì)地介紹出來,還能對某個(gè)有疑問的步驟繼續(xù)提問。同樣的問題在新必應(yīng)和文心一言中也獲得了較好的反饋,新必應(yīng)給出的程序需要載入背景和飛機(jī)圖片,面對黑色的游戲運(yùn)行框完全不懂編程的人繼續(xù)提問也能獲得解答。這對于編程“小白”來說真的是福音,完全就是一個(gè)智能老師。
接著我又讓ChatGPT幫我處理文本數(shù)據(jù),我的想法是把這個(gè)txt文件轉(zhuǎn)換為3列的Excel表格。
需求如下:用Python代碼實(shí)現(xiàn)txt文本轉(zhuǎn)換為Excel表格,文本的格式是xxx————xxx————xxx。
描述得越具體它給出的答案就越準(zhǔn)確,就跟你在生活中跟人提問一樣。從結(jié)果上看,它給出的答案很準(zhǔn)確,還解釋了語句和函數(shù)的功能,只需要把文件名修改一下就能跑起來,最后它還不忘了提醒你要安裝pandas庫。在此基礎(chǔ)上,我接著提問:如果不用第三方的pandas庫能否實(shí)現(xiàn)?
它推薦我使用標(biāo)準(zhǔn)庫中的CSV模塊配合openpyxl庫來實(shí)現(xiàn),代碼差不多,還貼心地在關(guān)鍵代碼處給了注釋。但是我不知道openpyxl是個(gè)什么庫,我接著問它:openpyxl要怎么導(dǎo)入。
ChatGPT告訴我使用“pipinstallopenpyxl”命令安裝庫,在代碼中使用“importopenpyxl”語句導(dǎo)入openpyxl庫。
我根據(jù)提示把代碼復(fù)制到編輯器,安裝好openpyxl,修改了文件名,程序沒有報(bào)錯(cuò)和預(yù)期的一樣得到了正確結(jié)果。
作為程序員在ChatGPT出現(xiàn)之前想要完成任務(wù),首先需要搜索知道任務(wù)可以使用pandas或openpyxl庫,接下來還要翻看這兩個(gè)庫的說明文檔和實(shí)例,這個(gè)過程中肯定要經(jīng)過多次搜索和篩選,從其他程序員留下的各種內(nèi)容中找到答案。而ChatGPT直接給了你一個(gè)確定的答案。
不過,如果你真的是零基礎(chǔ)什么都不懂的小白,給你一串完成的代碼也不會運(yùn)行,遇到報(bào)錯(cuò)沒法定位或者debug時(shí),還是很難完成目標(biāo)的。這就好比一個(gè)開手動擋的老司機(jī)去開自動擋會非常輕松,如果你駕照都沒有就想直接上手自動擋還是非常危險(xiǎn)的。所以ChatGPT只是大幅度降低了編程使用的門檻,但門檻還是存在的,至少需要學(xué)習(xí)基礎(chǔ)的Python知識,這樣才能知道編程能夠幫助我們完成哪些需求。不需要會寫代碼但需要理解代碼的大意,這樣遇到問題時(shí)才知道怎么向ChatGPT提問。
例如,我用新必應(yīng)找到了1960年至今的金價(jià),讓它幫我畫了一張歷史金價(jià)的折線圖,用給出的Python代碼畫出圖形后我覺得坐標(biāo)軸的說明文字用中文比較好,就自己修改了代碼中的文本部分。再次運(yùn)行發(fā)現(xiàn)中文顯示成了方塊,再次詢問后才知道需要再填兩行代碼解決中文字體和負(fù)號的顯示問題(雖然其實(shí)沒有用到負(fù)號,但負(fù)號也會顯示成方塊)。快速而完美地解決了問題。
作為初學(xué)者,我們怎么利用ChatGPT來學(xué)習(xí)編程?如果我可以重新選擇我的第一門編程語言,我會從一種可以讓我輕松進(jìn)入代碼世界的語言開始。這非常重要,因?yàn)闆]人想在學(xué)習(xí)時(shí)經(jīng)常遇到難以克服的困難并感到深深的沮喪!你的第一門語言應(yīng)該可以幫助你輕松學(xué)習(xí)核心編程概念,無論你是抱著怎樣的目的學(xué)習(xí)編程,這些概念都是必不可少的。如今大多數(shù)人認(rèn)為JavaScript和Python是編程入門的好選擇。如果必須在它們之間做出選擇,我肯定會選擇Python,因?yàn)樗暮唵涡院投喙δ苄裕▋H代表個(gè)人意見)。選了一門應(yīng)用廣泛的編程語言,一旦你在一種編程語言方面打下了堅(jiān)實(shí)的基礎(chǔ),就可以根據(jù)興趣繼續(xù)學(xué)習(xí)其他語言,并逐步建立你自己的主流框架。
作為初學(xué)者,我們總不能隨時(shí)隨地問老師問題,并獲得滿意的解答。而現(xiàn)在不必?fù)?dān)心了,可以盡情社恐,跟著ChatGPT這個(gè)老師,最低級的代碼問題我們隨便問。對于ChatGPT來說,問題沒有高低之分,因?yàn)闄C(jī)器人它不會對我們提問的水平做出評價(jià)。
比如:我們忘記了如何將兩個(gè)字典合并。ChatGPT不會嫌棄使用操作符“|”這種操作低級,還會很貼心地列出四種方式。
ChatGPT老師也可以幫助我們進(jìn)行更好的在線學(xué)習(xí)。
比如,我們正在學(xué)習(xí)一個(gè)編程講座的視頻,但是跟著視頻學(xué)習(xí)運(yùn)行的代碼卻遇到了錯(cuò)誤。我們不必盲目地在百度中搜索各種解決方案,完全可以讓ChatGPT幫助我們直接分析整個(gè)代碼腳本,看看問題出在哪里。你還能讓ChatGPT根據(jù)你的要求把代碼完善升級,它給出替代解決方案更完美。
你也可以對ChatGPT提出各種要求,不用有任何顧忌,它會讓你的好奇心隨心所欲地自由發(fā)揮。
在經(jīng)過一段時(shí)間的編程學(xué)習(xí)后,還可以利用ChatGPT老師來鞏固并提升學(xué)習(xí)成果。比如提出一個(gè)能讓我們保持動力檢驗(yàn)?zāi)芰Φ木C合項(xiàng)目,提供有關(guān)如何實(shí)現(xiàn)任務(wù)的詳細(xì)步驟。這樣我們就可以知道復(fù)雜應(yīng)用需要的實(shí)踐步驟。如果自己親自開發(fā)一個(gè)項(xiàng)目,也可以使用ChatGPT來審查代碼,并且還可以為我們優(yōu)化代碼的可讀性、代碼效率,還可以要求它來幫忙調(diào)試代碼。實(shí)在不行,我們也可以讓ChatGPT編寫整個(gè)腳本來執(zhí)行任務(wù)并從它給的解決方案中進(jìn)行學(xué)習(xí)和理解。
雖然我們開始進(jìn)入自動編程時(shí)代的大門,但這不代表作為個(gè)人就可以不用再學(xué)編程了。相反,編程思維和正確地學(xué)習(xí)編程變得更加重要了。無論是數(shù)學(xué)、物理等學(xué)科知識,還是編程、機(jī)器人以及鋼琴、舞蹈等非學(xué)科知識,這些學(xué)科的內(nèi)容都是我們在成長過程當(dāng)中的學(xué)習(xí)載體,通過這些載體不斷幫助我們?nèi)グl(fā)展思維、習(xí)得能力。“正如計(jì)算器發(fā)明之后人類沒有放棄學(xué)習(xí)算數(shù),電腦和輸入法發(fā)明之后人類沒有放棄練習(xí)寫字?!边@是因?yàn)槿藗冊诮?gòu)知識的過程中,并不是只積累了知識本身,而是在這個(gè)過程中鍛煉了我們的思維方法與能力,這個(gè)能力是我們永遠(yuǎn)不可分割的一部分。未來,自動編程可以讓普通人也可以編寫一些程序,但如何架構(gòu)一個(gè)程序、如何對任務(wù)有結(jié)構(gòu)地描述將成為一個(gè)程序員越來越重要的能力,編程思維能力的訓(xùn)練會變得更重要,編程思維與解決問題的能力會越來越被重視。
ChatGPT會徹底改變編程與軟件行業(yè),但它一定是程序員的輔助者而非替代者。在這個(gè)技術(shù)變革的時(shí)期,我們更要學(xué)習(xí)編程,成為新技術(shù)的主導(dǎo)者而不是犧牲者。
我們認(rèn)為,ChatGPT將對不同人群有著不同的影響,對普通人來說,ChatGPT的影響是多方面的。比如:個(gè)人助理:ChatGPT可以作為一個(gè)個(gè)人助理,回答各種問題,提供日常生活中的實(shí)用信息和建議。
學(xué)習(xí)和教育:ChatGPT可以為學(xué)生提供輔助教學(xué)工具,幫助他們在學(xué)習(xí)過程中更好地理解知識和掌握技能。
心理健康:ChatGPT可以為那些需要幫助的人提供心理支持和慰藉,為他們提供安慰和建議。
社交互動:ChatGPT可以作為一種社交工具,幫助人們在社交網(wǎng)絡(luò)上進(jìn)行更加自然的交流。
語言學(xué)習(xí):ChatGPT可以作為一種語言學(xué)習(xí)工具,為人們提供了解不同語言和文化的機(jī)會。
當(dāng)然,隨著ChatGPT和其他大型語言模型的發(fā)展,也存在一些潛在的問題和風(fēng)險(xiǎn),如個(gè)人隱私和數(shù)據(jù)安全問題、信息誤導(dǎo)和虛假信息問題等。因此,在使用ChatGPT時(shí)需要注意這些問題并采取必要的預(yù)防措施。
對于他們來說,ChatGPT的出現(xiàn)對程序員的影響更加迫切和實(shí)際。首先,ChatGPT可以幫助程序員更加輕松地與機(jī)器人和其他智能設(shè)備進(jìn)行交互。傳統(tǒng)的交互方式需要使用特殊的語言或者輸入指令,而使用ChatGPT可以直接使用自然語言與智能設(shè)備進(jìn)行交互,從而更加方便。這使得程序員可以更加有效地開發(fā)智能應(yīng)用程序,因?yàn)樗麄兛梢允褂米匀徽Z言與智能設(shè)備進(jìn)行交互。ChatGPT可以讓程序員更加靈活地與機(jī)器人溝通,從而更快地了解項(xiàng)目的需求,提高項(xiàng)目的滿意度。
其次,ChatGPT可以幫助程序員更好地理解自然語言處理的概念和技術(shù)。這種模型可以生成自然語言,因此程序員可以使用ChatGPT來學(xué)習(xí)自然語言處理的各種技術(shù)和方法。此外,ChatGPT可以為程序員提供一個(gè)直觀的學(xué)習(xí)環(huán)境,讓他們更好地理解自然語言處理的原理和應(yīng)用。這可以幫助程序員更好地開發(fā)自然語言處理應(yīng)用程序。
最后,ChatGPT可以提高程序員的工作效率。程序員可以使用ChatGPT來生成文本,回答問題。這可以幫助他們更快地完成工作,減少輸入時(shí)間。此外,ChatGPT可以幫助程序員更好地理解客戶需求和反饋,從而更好地滿足客戶需求。ChatGPT可以為程序員提供一個(gè)高效的工具,讓他們更好地完成工作任務(wù)。隨著ChatGPT技術(shù)的不斷發(fā)展和成熟,它成為語言處理的API接口,直接作為各種應(yīng)用、硬件和游戲的組成部分。
ChatGPT的出現(xiàn)為各種人群提供了更多的機(jī)會和挑戰(zhàn)。我們需要不斷學(xué)習(xí)新的技術(shù)和方法,以應(yīng)對ChatGPT帶來的變化。如果能更好地利用ChatGPT完成工作里的任務(wù),將大幅提高你的工作效率,這也將為你的提升提供更多的機(jī)會。