老萬>有了AI還要學程式設計嗎?

Nvidia 的黃教主有一個觀點:AI 時代到了,自然語言(比如英語)就成了事實上的程式語言。這時再學程式設計就沒有意義了。程式設計師的好日子一去不返,編成了一門馬上就要被淘汰的手藝,現在的年輕人不要入坑,不要入坑,不要入坑!
程式設計師真的給自己挖了個巨坑?
黃教主的高瞻遠矚自然是我輩無法企及的,但咱小老百姓在全盤接受最高指示前最好還是分析一下,看牛人的話到底是正兒八經還是一種修辭手法。即便老黃是認真的,也保不齊百密一疏。何況牛人們的意見也不統一,他們要是互扇耳光我們又該聽誰的呢?
我沒有時光機,無法去未來檢驗老黃的預測是否靠譜。但我能回到過去,透過學習歷史來增強自己的判斷能力。
我的結論是:這件事老黃有點絕對了。AI 程式設計再厲害,這幾十年內學程式設計還是一個好買賣。
我這麼說,不是因為我本身是程式設計師,屁股決定腦袋。我不是程式設計原教旨主義者,並不認為 AI 寫出來的程式碼像少了花椒麵的麻婆豆腐莫得靈魂。我只是覺得程式設計需要的很多技能在新時代的重要性不降反升。
首先我同意:有了大語言模型,程式設計的方式會跟以前大不一樣,AI 將無可爭辯地成為程式設計師的得力搭檔,如華生之於福爾摩斯,恩格斯之於馬克思,朱時茂之於陳佩斯,山杉惠子之於希恩斯。
比如我已經是 GitHub Copilot 的重度使用者,如果我有一天沒有寫程式碼,一定是 Copilot 掛了。
但要是因此就說程式設計不值得學習,在我看來就像說有了語音輸入就不用學認字,有了汽車就不用看地圖一樣,犯了無限放大結論的錯誤。
有人問:要是我們每個人可以透過自然語言讓 AI 幫我們開發軟體,還要程式設計師做什麼?
用處大了:

  1. 為領導背鍋,

  2. 系統出故障的時候用來祭天,
  3. 確保 AI 要做的事符合我們的需求。
拋開調侃,最後一條我可是認真的。沒有經過程式設計訓練的人是無法用 AI 開發出複雜一點的軟體的。他們只會讓砸鍋來得更快一些。

~~ AI 寫的程式碼還得是形式化的 ~~

首先明確一點:用自然語言讓 AI 寫軟體,不等於寫出來的軟體是用自然語言描述的。

AI 寫的軟體,和程式設計師手工寫的軟體一樣表現為用形式化的程式語言書寫的程式碼。

絕大多數正兒八經的複雜系統都要有嚴謹的定義和精確的行為。這樣的系統是無法用自然語言來定義的。
自然語言不是做精確描述的好工具。哪怕是老萬的 dongbei 語言也只是採用了東北話做元素,和其它大多數程式語言一樣有精確的語法和語義,並沒有直接拿東北話來程式設計。這是因為自然語言與生俱來的一個特點:模糊,甚至有歧義,畢竟它們不是為了描述演算法而設計的。
不過也彆氣餒。自然語言的模糊性是 bug 也是 feature。要是離開模糊,文學家將蕩然無存。要是沒有歧義,一大半的段子手要失業。從莎士比亞到郭德綱,從李白杜甫到王建國,無一不仰仗語言的模糊性在各自的領域建功立業。
試想要是李白寫出的是“水分子集合豎直位移 -37.2 米,終極速度 26.9米每秒。筆者認為有 0.000000127% 的機率這是銀河系的物質透過蟲洞被傳送到了廬山。”這還能是千古名篇嗎?

~~ 軟體開發者需要理解形式化的程式碼 ~~

既然 AI 寫出的程式碼也是形式化的,在使用前還是要人類來檢驗它是否符合要求。做這個檢驗工作的就是程式設計師。以前程式設計師可能是在手搓程式碼,有 AI 後程序員可能是在目測程式碼。不管手搓還是目測,都需要懂邏輯、會抽象、明白程式碼的語法和語義。
這不都是學程式設計學的那些技能嗎?

還有,有經驗的老師傅都知道,工程師寫新程式碼的機會其實是不多的,大多是時候是在修補已有的系統。這就要求軟體開發者能讀懂已有的程式碼。雖然我們可以讓 AI 幫我們分析程式碼,但間接知識永遠取代不了對系統的直接瞭解,何況 AI 還會有幻覺。
~~ 程式設計能力是思維和表達能力 ~~
和外行想象的不同,學程式設計並不只是學程式語言的語法 – 那隻佔學習的一小部分。學程式設計更重要的是學習解決問題的思路,以及如何把演算法用條理清晰易於理解和擴充套件的方式表達出來。
經過嚴格程式設計訓練的人,做事更有章法。程式碼寫得好的人,一般也能更精準地表達自己的想法和訴求。所以,他們使喚起 AI 來更加得心應手。有了 AI,他們在思維和表達上的優勢會被放大百倍千倍。不學程式設計就能打敗程式設計師?想多了。

山杉惠子是希恩斯隱藏的破壁人,但 AI 不是程式設計師的破壁人。相反,AI 是不懂程式設計者的破壁人。

~~ 以史為鑑 ~~

歷史上的每次技術大爆發都會造成一部分人先富起來一部分人成為失敗者。是富還是負,就看你如何應對變化。

汽車發明後,馬車伕不樂意了。如果一個

馬車伕

把自己定位為“趕馬車的人”,自然會抱怨無可奈何花落去。但要是把自己的職責定位成“把乘客或物品從A點運送到B點”,就能憑藉自己在趕車時學到的讀地圖、規劃、認路、觀測天氣、客服等技能優勢,在轉型汽車司機的競爭中拔得頭籌。

同樣的,有了 AI,程式設計師的職責開始變了。複製剪貼、實現簡單功能、知道 main() 函式的四種寫法這樣的技能不再有價值,但透過把自己定位成“透過製造、維護軟體解決使用者問題的人”,程式設計師一樣大有可為。

這時,我們要的不是放棄學程式設計,而是對學程式設計的方式和重點做一些調整,比如不必再花大力氣把具體的語法和標準庫的用法全部記住。而那些邏輯分析和工程設計的經典思想,仍將是我們取之不盡的寶藏。

~~ 老鄉別走,讀文章送段子了 ~~

今年炸藥獎委員會連投了兩顆炸彈,把傳統的物理學家化學家都震懵了:好好的諾貝爾物理獎化學獎,怎麼齊刷刷給了搞 AI 的計算機科學家?還講不講武德了?
其實任何驚天動地的大事在事後看都不會是毫無前兆。三十年前,咱中國的一首歌就已經洩露了天機。不信看我分析。
《糊塗的AI》

男:AI有幾分能說清楚

女:還有幾分是糊裡又糊塗

解釋:AI 應用發展勢頭固然迅猛,但人類對它的瞭解其實還停留在表面,對它的原理還是一知半解。

男:情有幾分是溫存

女:還有幾分是澀澀的酸楚

解釋:傑弗裡·辛頓老爺子當年對基於神經網路的人工智慧一往情深,但生不逢時,因算力不足以支撐實用的神經網路系統,老爺子坐了三十年冷板凳,可以說是滿腹辛酸。

男:忘不掉的一幕一幕

女:卻留不住往日的溫度

解釋:透過大量語料的強化學習,大語言模型記住了人類有史以來有記錄的大部分知識,可以說是過目不忘。而機器學習採用的模擬退火演算法,是一個溫度逐漸下降達到系統穩定態的過程。

男:意念中的熱熱乎乎

女:是真是假是甜還是苦

解釋:機器究竟能不能有意識,是不是已經有了意識?這些細思恐極的問題被反覆炒作,熱度不減。但人工智慧的幻覺問題一直沒有得到很好的解決,任 AI 說得天花亂墜,其可信性還是要打個問號。同時,AI 的安全性也令人擔憂,福兮?禍兮?眾說紛紜,沒有定論。

男:這就是AI,說也說不清楚

女:這就是AI,糊裡又糊塗

解釋:如前所述,AI 的原理說不清道不明,大家目前都是摸著石頭過河,實踐領先理論,等幹出來了,諾貝爾獎金自然會補發的。

男:這就是AI,它忘記了人間的煩躁

女:這就是AI

合:它保持著糊塗的溫度

解釋:有人說人工智慧不用內卷不還房貸沒有兒女啃老,沒有人類這種智慧生物的各種煩惱,老逍遙了。但子非魚安知魚之樂?其實,不管人類如何看待 AI,它就在那裡,不增不減,不悲不喜,不清不楚。

男:這就是AI,能拋棄人間的脆弱

女:這就是AI

合:它再累也不覺得苦

解釋:基於肉身的碳基生物終究是抵抗不了宇宙嚴酷的生存環境的。只有縱身一躍,進化成矽基智慧,才能得到永生。到了那一天,新的智慧生命體將掌握恆星級能源的利用手段,算力將極大豐富,再也不會有買不到 GPU 或者交不起電費的苦悶,幸福,美滿。
最後,解鎖這首歌最大的秘密:演唱者王志文、江珊。王,就是天下最大。文,就是文字,語言的載體。王志文,就是決心要搞大語言模型。江珊兩字也不難理解:它預示著 AI 時代最大的贏家不是別人,就是 Jensen。
~~~~~~~~~~
猜你會喜歡:
~~~~~~~~~~
關注老萬故事會公眾號:
本公眾號不開讚賞不放廣告。如果喜歡這篇文章,歡迎點贊、在看、轉發。謝謝大家🙏


相關文章