iT邦幫忙

2024 iThome 鐵人賽

DAY 29
0
Modern Web

與 AI 一起開發 Side Project 吧!系列 第 29

Day29 — AI 時代,讀什麼書?

  • 分享至 

  • xImage
  •  

讀什麼書?

還有沒有需要「學」程式?

還讀什麼書? 不用讀了啦!

現在 AI 這麼厲害,按這個情勢發展,甚至可以預期 AGI (通用人工智慧)不久就會出現。一堆業界大老都說,以後程式設計師都要失業了,還讀什麼書? 學什麼程式?

好了,話就唬爛到這邊,再講下去大家會以為真的是這樣。當然不是叫大家都不要讀書,從這次與 AI 相處的經驗來看,離 AI 「全自動化」生成程式碼,還有一大段的距離。

綜合這幾年的開發經驗,還有這一年來使用 AI 的心得,以下分成兩個部分,想跟大家聊聊,在現代這個 AI 已經是不可避免趨勢的時代,我們開發者適合讀哪些書:

  • (還)讀什麼書?
  • (還要)讀什麼書?

所以(還)讀什麼書?

程式概念類的書

軟體設計類的書,讓我們學習由上而下去俯瞰程式的互動,學習程式的「戰略」設計。

AI 很懂得「具體實作」,擅長根據既有的訓練資料集,或是明確的參考資料做生成。但對於意圖猜測和架構設計,則是差強人意。

AI 知道你「現在」想要做什麼,根據指示生出相對應的程式碼,但不會想太遠,並不清楚你接下來要怎麼設計,所以只會針對當下的情境去產出「能用」的程式。

而軟體架構設計則是從「更高更遠」的角度來看程式碼怎麼寫,以規劃的層面來設計程式單元之間的互動,這是 AI 比較沒辦法插手的部分,因為它不會知道你腦中的想法,目前 AI 只有辦法知道目前這樣寫「應該可以」。AI 還沒有能力去管整個專案、整個服務的程式怎麼運作。

所以知道如何設計軟體架構,變得更加重要,從抽象角度設計優良的解決方案,了解如何「建模」設計解決方法,可能不再是「較資深」工程師才須必備的技能了。

以下是一些推薦書單:

  • Design Patterns:物件導向設計模式-可再利用物件導向軟體之要素
  • 領域驅動設計 — 軟體核心複雜度的解決方法:也就是俗稱的 DDD 藍皮書。
  • 深入淺出設計模式

想看但總是沒看的好書

  • 人月神話:軟體專案管理之道的經典
  • Code Complete 軟體開發實務指南:經典的軟體開發「磚頭書」(據說有 1.7 kg …)

寫法優化的書

程式碼總是不太可能「一步到位」,總會有寫完再整理的時候。而且你會發現,有時候快速先寫完,稍後再做修正,這種做法反而更有效率!

這是因為先把腦中想法倒出來,解放了專注力之後,大腦才有餘裕去做其他事情。而且在寫完停筆,上個廁所休息,腦袋冷靜等了一會後,再回頭看程式碼也比較能理性看待,更敢於「動刀」把程式碼重構整理。

而重構的做法也是有跡可循的,已經有許多前輩整理出一些常見的重構方法,我們就不必「重新發明輪子」設計全新的方式,大多案例都可以從既有的範例獲得解法。

這部分也可以搭配「設計模式」一起學習,如果懂得設計模式,重構可以「事半功倍」,兩者有相輔相成之力。但前提是「正確使用」,否則就是「過度設計」或是誤用了。

推薦書單:

  • 重構:改善既有程式的設計 2 版:這本也是經典,買起來就對了。
  • Clean Code 系列書:不用多說,寫好程式碼的必讀經典。
  • 重構的時機與實作|五行程式碼規則:以五行或更少的程式碼進行實作,這本書許多方法都是「第一次介紹」,而且手把手教我們如何重構。

基本算法 / 練練 LeetCode

還有一種蠻值得花時間讀的書:基礎功。這是寫程式能力中,最基礎中的基礎。

大家可能聽過「第一性原理(First Principle)」,這是回歸事物最基本的條件,拆分成各要素進行「解構分析」,從而找到實現目標最佳解法。最早是由雅里斯多德所提出這個原則。

最近因為被 Elon Musk 再度提起而喚起大家的注意,大家就開始關注到,為什麼 Elon Musk 或是黃仁勳這些人何以成功? 雖然運氣是一大關鍵,但他們
但背後還是因為他們的努力,以及能夠洞察事物本質的能力,即為「第一性原理」這種看待事物、剖析問題的技巧。

讓他們可以找到問題無法再分割的「本質」,根據這些「事實」證據推論,並加以組合,從中創造出新價值。

尤其像遇到的各種難題,可能不再像是以往那樣,可以輕易從表面就找到問題的本質,必須抽絲剝繭直到不可分割的基礎概念,再根據各個基礎概念元素去重新排列,找到真正的問題根源所在,甚至還能夠從本質發現其他人沒有注意到的其他關鍵之處。

而程式方面的「第一性原理」,就是「計算機科學」的基礎,構成程式碼運作的基礎概念,即為資料結構、演算法和計算機概論。其中最實用且「真的會遇到的」是前兩者,打好這部分的基礎功相當重要,讓我們懂得如何以「最基本原理」思考如何解決問題,而非完全依賴「高級」的套件或是框架,被人家做好的程式碼給綁死。

推薦學習資源

  • LeetCode:這個大家即便沒看過,也一定都聽過,相當受歡迎的程式練習平台,提供各種難易度的演算法與數據結構問題,而且討論區都有各種答案以供參考,不怕
  • Cracking the Coding Interview:針對程式編寫面試的實用指南,包括了大量(最新版有 189 題)以及其解答,有助於提升解題能力!
  • 各語言的「深入淺出」系列叢書 Head First OOO

(還要)讀什麼書?

溝通和表達,比以往還重要

自從電腦可以「聽懂」自然語言後,以往對於輸入指令的思維,會需要更加進化,而不是只有「點與線」的描述,而是要擴及整個面,甚至是包含「體」的程度。

完整表達脈絡和語境變得相當重要,因為 AI 系統不僅僅是在處理單一指令,而是能理解整個對話的流程和意圖。這意味著我們需要更全面、「更立體」表達我們的想法,以確保 AI 能夠準確理解問題的脈絡與完整需求。

具體清晰很重要,像是之前讀了一些溝通表達的書(本人相當不擅言詞,不擅於將想法輸出為語言),這類型的書大多都在講怎麼樣表達清楚,介紹一些「溝通框架」以幫助整理思緒,化為清楚易懂的語句表達出來,想不到會在這個地方派上用場。

這些書籍教會我們如何組織思路、清晰表達,以及如何「換位思考」使用者的需求。在與 AI 互動時,這些技能變得尤為重要。我們需要學會如何精確地描述問題、明確地表達期望,並提供足夠的脈絡資訊,以便 AI 能夠給出最適合「我想要」的回應。

以個人的經驗來說,大概翻幾本日本人寫的「這樣溝通就 OOO 」這類的商管書,讀個大概 5 ~ 10 本,大概就可以掌握 7788 了。日本的商管書籍通常以簡潔明了、實用性強著稱。它們往往提供具體的案例和步驟,幫助我們可以快速掌握溝通技巧。

這些書籍可能涵蓋如何進行有效的簡報、如何在會議中表達意見、如何寫出清晰的電子郵件等主題。通過學習這些技巧,我們不僅可以改善與人的溝通,也能大大提高與 AI 互動的效率。

推薦書單:

  • 最高學以致用法:介紹如何將我們所學的知識,發揮最大成效的輸出,讓學習成果可以被看見。其中「傳達想法」的技巧相當實用,而且介紹了許多輸出的「框架」,讓我們可以快速套用並實踐輸出成果。
  • 99%的人輸在不會表達:雖然是在講面對面溝通的訣竅,但有些技巧也是可以應用在 AI 提問。

商管類 — 思考與分析

在與 AI 互動的時代,商業管理類的思考和分析技能變得更加重要。大家對於開發程式的刻板印象,可能還停留在寫程式碼開發而已,以為只要知道「寫什麼和怎麼寫」就好,往往不太會去釐清背後這麼做的原因(Why)。

現今與 AI 互動時,理解問題背後的「原因」變得更重要,這讓我們可以用不同面向做提問,以逼近得出最佳的生成結果。

以下幾本書籍可以幫助我們提升這方面的能力:

  • QBQ(The Question Behind the Question):這本書強調個人責任,教導我們如何提出更好的問題來解決問題。在與 AI 合作時,能夠提出正確的問題是獲得有用答案的關鍵。
  • 底層邏輯 1 & 2:這兩本書深入探討了思考的本質,幫助讀者建立更系統、更深入的思考方式。在AI時代,能夠理解問題的本質並進行邏輯分析變得尤為重要。(這兩本書我都有買,但說實在的不是很好讀)
  • PDCA(Plan-Do-Check-Act):這是一個持續改進的管理方法。在與AI 協作的過程中,我們需要不斷計劃、執行、檢查和改進我們的工作方式。PDCA循環可以幫助我們更有效地利用 AI 工具,循環精進寫程式的技巧,並不斷優化我們的工作流程。

這些書籍和方法論不僅可以提升我們的商業管理能力,還能幫助我們更好地利用 AI 工具。通過培養系統思考、邏輯分析和持續改進的能力,讓我們可以在 AI 時代繼續保持競爭力,並更有效地與「機器」進行協作。

後話

書架上永遠缺一本書

還有好多經典的程式設計書沒看,上面推薦給大家的那些書,都是自己想要讀,而且也是大家都說必讀實用的好書。講是這麼講,但大概還有一半以上還沒讀過 😂

尤其商管類、人際溝通類的書一直推陳出新,永遠都會有新的方法技巧被發明出來,更新更好的方法被發現。如果要我推薦什麼書「一定要讀」,與其追求最新的暢銷書,那就是先讀「經典」吧。

經典被稱作是經典,一定是有其「不朽」的道理,概念可以流傳千古,啟發千千萬萬的作者。或者你可以這樣想,經典可以說是現在很多想法的「底層概念」,現在許多新知都是「站在巨人肩膀上」延伸發展。你如果知道其底層概念,就不容易被推陳出新的各種新知給迷惑。

那今天介紹到這邊,先去讀書囉。

REF


上一篇
Day28 — Cursor IDE 使用技巧指南
下一篇
Day30 — 總結:與 AI IDE 合作的軟體開發新體驗
系列文
與 AI 一起開發 Side Project 吧!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言