學寫程式這件事,現在還有意義嗎?
這是我最近一直在思考的一個問題。
30 多年前我開始學程式設計時,老師並不是先教我們某種程式語言。
相反地,他們先教我們演算法、流程圖、需求、輸入與輸出、條件判斷、迴圈,以及在寫下第一行程式碼之前,如何先推理出一個解法。
當時我並沒有完全體會到這種教學方式的價值。
和大多數學生一樣,我很想立刻開始寫程式。我希望能盡快在螢幕上看到一些能運作的東西。
回頭看,我才意識到,他們教給我們的,其實遠比一門程式語言更有價值。
他們教的是如何思考。
接著進入了 2000 年代。
軟體開發人員最有價值的能力之一,就是能接手既有的程式碼庫,通常還是遺留系統,理解它的運作方式、修復錯誤,並加入新功能。
文件常常不完整。有時候原本的團隊早就離開公司了。唯一可靠的文件,就是程式碼本身。
讀懂程式碼、理解它的邏輯,並且安全地進行演進,成了一項高薪技能。
這不一定是大家最喜歡的工作,但市場需求非常大,尤其是在銀行、金融與製造業,因為軟體正逐漸成為業務不可或缺的一部分。
如今,AI 正在改變這個局面。
理解一段程式碼在做什麼、修復一個 bug,或是實作一個小功能,成本都大幅下降了。
沒錯,AI 也有成本。Token 不是免費的。
但如果把產生與反覆修改程式碼的成本,和聘請有經驗的顧問來完成同樣工作的成本相比,就很容易看出為什麼經濟結構正在改變。
那麼,年輕的開發者今天應該學什麼?
我認為,如今稀缺的技能已經不再是寫程式了。
稀缺的技能,是對問題有足夠深入的理解,進而提出正確的問題。
是能定義清楚的需求。
是能辨識限制條件。
是能評估取捨。
是能判斷一個解法是正確的,還是其實有隱藏的錯誤;是可擴充的,還是脆弱的;是安全的,還是有風險的;以及它是否適合特定情境。
諷刺的是,我在 30 多年前學到的那些課題,如今比以往任何時候都更有相關性。
演算法。
需求。
輸入與輸出。
條件判斷。
迴圈。
系統思維。
這些不只是程式設計概念,更是思考方式。
而且,當我在設計 AI 工作流程、編排多代理系統,以及審查 AI 產生的程式碼時,我發現自己最依賴的,正是這些能力。
工具變了,但基本功沒有變。
如果你今天才開始踏上軟體開發的旅程,不必太擔心去死背某個程式語言或框架的語法,也不必只忙著收集提示工程的小技巧。
把時間投資在建立心智模型上,幫助你理解系統是如何運作的。
因為那才是最難自動化的部分。
而我相信,無論 AI 如何演進,這都會持續是最有價值的技能之一。
原文出處:https://dev.to/robertobutti/does-it-still-make-sense-to-learn-how-to-code-3g7g