在這個 AI 迅速發展的時代,身為開發者的我們究竟該如何善用 AI 相關的工具?透過 《Generative AI for Software Development》這門線上課程,我找到了答案。這門課程主要講述如何運用生成式 AI(Large Language Models,LLMs)來輔助程式開發,非常適合已具備開發經驗,但還在摸索 AI 應用範圍的開發者。作為一個在開發單位服務、使用 AI 輔助開發已有兩年經驗的開發者,即便我從 ChatGPT 推出後就持續關注,並且也實際推出相關的應用產品,上完課後依然獲得許多新的啟發,因此想與大家分享這門課程的心得。

◎課程架構
這堂課包含三個獨立的教程:

- 《Introduction to Generative AI for Software Development》:生成式 AI 與軟體開發的基礎介紹
- 《Team Software Engineering with AI》:使用 AI 的團隊軟體工程
- 《AI-Powered Software and System Design》:AI 驅動的專業軟體與系統設計

軟體開發中的生成式人工智慧

我計畫分成四篇文章來分享心得,這是第一篇,先以總覽的方式介紹整個課程,另外我也有整理上課用的筆記。建議有興趣的讀者可以先報名一週的免費試讀,確認課程內容符合需求後再決定是否付費繼續。就我的經驗,在取得證書後我已經順利取消了後續的月費訂閱。

[全文:]

這門課程採用循序漸進的方式,從生成式 AI 的核心技術開始,一路帶到專業應用層面,幫助學習者掌握如何在軟體開發的各個環節中善用 LLMs。無論是個人效率的提升,還是團隊協作的優化,甚至是系統架構的設計,都能在課程中找到實用的指引。

◎重要章節與內容分析
生成式 AI 與軟體開發的基礎介紹,是這門課程的起點,內容主要在幫助參與者全面理解 LLMs 的技術背景,與其在實際開發中的應用價值。課程從生成式 AI 的基本概念出發,詳細剖析大型語言模型(LLMs)的運作原理,例如 Transformer 架構如何實現精準的語言理解與生成,這讓開發者認識到 AI 並非只是華而不實或幻覺百出的工具,而是真正能融入開發日常的得力助手。對於剛進入軟體開發領域的新鮮人,LLMs 能在許多細節上提供直接的幫助,例如快速生成程式碼範例、找出語法錯誤,甚至解釋程式碼邏輯。這彷彿給予了開發者一位全天候的高階導師,能在技術學習的起步階段大幅減輕壓力(四處踩坑卻沒人協助,是剛接觸開發的新鮮人最大的門檻)。課程特別著重於提示工程的教學,幫助程式工作者學會如何與 LLMs 有效互動,透過精準設計的提示快速獲取實用答案。此外資料結構與演算法的實作練習讓參與者在實際操作中理解 LLMs 如何輔助解決複雜問題,例如優化各種演算法或提升程式碼的資料查詢效率。這些內容讓開發者逐步建立起對 AI 的使用認知,並學會在實務中靈活運用。

團隊協作與開發流程模組則進一步探討 LLMs 在多人開發中的角色,幫助開發者不僅專注於個人貢獻,還能更高效地融入團隊合作中。課程展示了 LLMs 如何在測試與除錯中發揮作用,例如自動生成覆蓋率高的測試案例、快速定位性能的瓶頸,以及提出資安檢測的建議。這些應用特別適合小型團隊或新創公司,因為它們在資源有限的情況下需要更快交付成果,但同時又避免累積技術債。在開發環境的一致性方面,LLMs 能協助生成標準化的技術文件和程式註解,確保所有團隊成員對項目需求和模組設計有統一的理解。除此之外 LLMs 也能優化依賴管理和版本控制的流程,推薦兼容性更佳的第三方資源庫並提供升級指導,這有效減少了因版本衝突而導致的開發延誤,這也表示團隊可以透過 LLMs 來讓彼此開發環境一致化。透過這些應用,參與者會發現,LLMs 不僅僅是一個技術輔助工具,更是一位合作夥伴,幫助團隊建立更高效的協作模式,從而專注於創造性解決方案。

專業軟體設計與系統構建模組,進一步帶領開發者探索 LLMs 在解決高階設計問題中的潛力。課程以配置(情境)驅動開發(CDD)與測試驅動開發(TDD)為例,並結合 LLMs 展示如何設計結構清晰、邏輯穩健的系統架構。這對於初階與中階開發者尤其重要,因為許多人可能認為設計模式過於理論化或與實際項目無關,而忽略了這些經典模式的價值。然而 LLMs 的輔助功能讓這些架構設計更具操作性,開發者能快速獲取最適合當下需求的模式建議,並結合 AI 提供的範例進行實作驗證。資料庫設計與優化部分也充分展現了 LLMs 的優勢,課程設計上以生成式 AI 來實作高效的 CRUD 操作、優化查詢語句,甚至診斷潛在的結構問題,這些都讓開發者能以更高的效率完成項目。最後課程以四人幫提出的設計模式(Gang of Four Patterns)為收尾,通過案例演示如何在實際項目中靈活運用這些模式,並結合 LLMs 的建議進一步提升系統設計的穩定性與可維護性。需要特別提醒的是,雖然 LLMs 提供的建議多數情況下準確而實用,但它仍可能出現所謂的「幻覺現象」,即提供錯誤或不可靠的資訊。因此開發者在應用 LLMs 的過程中,必須要交叉驗證 AI 的輸出,並將其作為延伸學習與探索的起點。

all

我從 2024/12/16 開始一週的試讀,然後在 2025/1/10 拿下課程完畢的證書。原先以為我應該可以在試用的一週內把所有課程上完,後來第一段的證書我是花了九天拿到,且在這個過程中決定要付費繼續上課並取得課後證書。第二段的證書我花了七天拿到,最後第三段的證書則是花了八天的時間拿到。而每一天我看影片上課的時間其實不算太長,但真正花時間的地方是在延伸探究跟實作練習上面,上面提到的天數,都是以一天上課跟實作八小時來計算。

課程進行的過程會有測驗,測驗有規定要八十分以上才能通過,測試區分為選擇題跟程式實作題,兩者都有一定的難度,選擇題的難度在於閱讀上面,由於全部的課程都是英文,如果文義理解有一點點小偏差,就會答錯。選擇題答錯後可以重複再進行,所以這部份若是沒達標都可以再來一次。至於程式提交後若無法達標,我不確定會是怎麼進行,因為我自己程式端的作業都是通過的。除了這個之外,還有許多不計分的練習題,這也是耗費許多時間的地方,例如課程中有練習如何切換不同版本的開發環境,檢查第三方資源庫的替代方案,以及如何把舊版的程式藉由 LLMs 的幫助來升級到新版語法可支援的狀態。

我認為這堂課增加了我利用 AI 來開發的視野,如同一開始授課講師勞倫斯·莫羅尼所說的,他認為有人說 AI 會淘汰軟體工程師的這個觀點是錯的,他覺得作為一名軟體開發者的專業技能,在生成式 AI 時代比以往任何時候都更為重要。AI 可以賦予開發者超能力,讓工作更高效,且能夠解決這些特定領域的問題,並且在此過程中享受更多樂趣,讓我們在工作中更加充實。但我覺得,如果開發者不接觸 AI,甚至非常排斥,而當有另一群人很會使用 AI 來輔助作業而我們卻沒有時,那就真的會被這個潮流給淘汰。這也是我想要推薦這堂課的原因,讓有興趣的人找到適當的資源來進入這個與 AI 人機協作的領域裡。之後再個別介紹我參與裡面三段課程的心得。

◎延伸閱讀
二、用於軟體開發的生成式人工智慧簡介:從理論到實戰的三週學習心得

三、用生成式 AI 重新定義軟體開發:探索協作、效率與創新的新時代

四、從理論到實踐:生成式 AI 重塑團隊軟體開發新模式

五、軟體開發中的生成式人工智慧」學習筆記





2025-01-16  -  duncan Email  -  181  -  資訊工程 - 讀者回應

回應管理, Pingbacks:

這篇文章還沒有 回應管理/Pingbacks ...

讀者回應:


你的Email位址將不會顯示在這個站點.

您的URL將被顯示.

允許的XHTML標記: <p, ul, ol, li, dl, dt, dd, address, blockquote, ins, del, span, bdo, br, em, strong, dfn, code, samp, kdb, var, cite, abbr, acronym, q, sub, sup, tt, i, b, big, small>
Enter this code:
authimage

(換行會被轉換為 <br /> 標記)
(將你的姓名及Email及網址記在Cookie中)
(讓使用者可以直接寫訊息給你(不會顯示你的Email).)

上一篇文章: 從《影視颶風》的工作流程看組織與文化如何提升作業績效下一篇文章: 走進隈研吾的綠意美學:勤美術館攝影散記