身為過去十年來一直領導開發者關係團隊、在程式設計訓練營任教並擔任專業軟體工程師的人,我見證了程式設計教育隨著生成式 AI 工具的興起而發生的巨大轉變。我想分享我對在這個新時代我們應該如何教人們編碼的看法。
教人們編碼的變化非常非常快。但我認為基本面比以往任何時候都更重要。儘管 GitHub Copilot、Amazon Q Developer 和 Cursor 等人工智慧編碼助理不斷湧現,但理解核心程式設計原理仍然至關重要。
原因很簡單:您仍然不應該將您不理解的程式碼提交到生產環境中。雖然生成式人工智慧可以加快開發速度,但軟體工程師必須能夠解釋他們的程式碼、辨識安全問題並長期維護它。
「氛圍編碼」在社群媒體上風靡一時,我很喜歡它。您只需編寫提示來建立應用程式,同時忽略程式碼。
我認為最令人興奮的事情之一是讓非技術人員成為開發人員並參與其中。它們可以非常快地從零到一。這使得編碼變得民主化,允許新手建立像 three.js 遊戲這樣的專案,而無需先掌握每個編碼基礎知識。
當我教人們編碼時,他們學到的第一課就是如何使用 CodePen 建立簡單的 HTML 和 CSS 網站,這讓他們能夠快速獲得他們所建立內容的視覺回饋。 Vibe 編碼將其提升到一個全新的水平。
然而,當人工智慧產生的程式碼投入生產時,風險也隨之出現:
安全漏洞
可擴展性問題
效能問題
影響使用者的錯誤
不同世代對這些工具的使用方式有明顯的差異。對於這群學生和新畢業生來說,這些 Gen AI 工具就是他們的思考和建構方式。它從根本上融入了他們的開發方式,與高級開發人員的開發方式截然不同。
雖然經驗豐富的開發人員可能很難改變他們的 devtools 設定(就像我使用CLI一樣!),但新開發人員從第一天起就將這些工具整合到他們的工作流程中,從而創造了更自然的結對程式設計體驗。
生成式人工智慧在執行傳統電腦科學程式經常忽略的任務方面表現出色:
測試生成:GenAI 非常適合為您的程式碼庫產生測試,這在程式設計課程中很少教授。
程式碼文件和解釋:一半的戰鬥不僅僅是編寫新程式碼,還在於了解在你之前的開發人員的程式碼,當你是初級工程師時,這可能真的很令人生畏。 GenAI 讓這變得簡單。
程式設計課程必須不斷發展,以便讓學生為這個新現實做好準備。我相信它應該適應,仍然教授基礎知識,仍然確保人們能夠很好地利用這些基礎知識取得成功...同時也確保人們能夠最好地進入這個就業市場,在這個市場上,你可以使用 Gen AI 工具更快地進行建置。
這意味著既要教授傳統的編碼原理,又要教授新的技能,例如有效的提示工程和與人工智慧配對程式設計師的合作。
我的回答很微妙。五年後的發展還會一樣嗎?今年晚些時候呢?絕對不是。訓練營是這個就業市場的學習方式嗎?不。
然而,程式設計從根本上來說就是解決問題。儘管計算器和計算機可以輕鬆解決人類遇到的任何問題,我們仍然讓學生學習數學。它仍然是一項值得學習的寶貴技能,而且我們還沒有達到可以在沒有人工幹預、大量程式碼審查以及關注安全性、可維護性和可擴展性的情況下推動生產程式碼的程度。
程式教育正處於十字路口。前進的道路將傳統的基本原理與人工智慧工具結合,就像克勞德的全新教育模式一樣。最有效的方法是教導核心原則,同時讓學生做好負責任地使用人工智慧的準備。隨著這些技術的發展,我們培養下一代軟體工程師的方法也將持續發展。
未來不是在人類知識和人工智慧輔助之間做出選擇,而是利用兩者來創造能夠建立更好軟體的更好的開發人員。透過兩者的結合,我們可以讓更多的人成為開發人員,並突破程式碼所能實現的界限。
原文出處:https://dev.to/aspittel/teaching-code-in-the-ai-era-why-fundamentals-still-matter-1k1g