iT邦幫忙

2026 iThome 鐵人賽

DAY 1
0

如果有人問我:「你擅長程式設計嗎?」

我的答案大概會是:「我不是學得最快的那一個。」

從接觸程式設計開始,我一直認為自己不是一個特別有程式天分的人。每當老師介紹新的語法、新的演算法,或是在專案中接觸新的框架時,我總是需要花比別人更多的時間閱讀教材、查詢資料、反覆練習,才能勉強理解。

然而,即使成功寫出了程式,我心裡仍然常常出現一個疑問:

「我真的理解它了嗎?」

很多時候,我只是知道「怎麼寫」,卻不知道「為什麼要這樣寫」。

我會使用 Dictionary,但不知道它為什麼查詢速度比 List 快。

我知道 StringBuilder 可以改善字串操作效率,卻不知道它到底改善了什麼。

我知道 async / await 很重要,卻說不出它真正解決了哪些問題。

我開始發現,我的問題並不是不會寫程式,而是一直沒有真正理解程式背後的運作邏輯。

原來,我一直都在背答案

回頭看自己的學習方式,我發現自己其實一直都在「背答案」。

老師怎麼教,我就怎麼寫。

網路文章怎麼做,我就跟著做。

LeetCode 看懂答案後,我就把解法記起來。

甚至到了 AI 普及之後,我也開始利用 AI 協助完成程式。

這些方式都沒有錯,它們確實讓我更快完成作業,也能更有效率地開發功能。

但慢慢地,我發現了一個問題。

當需求稍微改變時,我不知道該如何修改。

當老師問我「為什麼」時,我回答不出來。

當遇到新的框架、新的語言,我又必須重新開始背誦。

這時我才意識到,自己真正缺少的並不是程式語法,而是理解能力。

「Why」比「How」更重要

以前學程式時,我最常問的是:

「這段程式怎麼寫?」

但是現在,我更希望自己問的是:

「為什麼它要這樣設計?」

例如:

為什麼 Dictionary 的查詢效率比較高?

為什麼 Framework 要分成 Controller、Service 與 Repository?

為什麼 List 不會每新增一筆資料就重新配置記憶體?

為什麼 HTTP Request 能夠找到正確的 Controller?

為什麼 ASP.NET 能知道要執行哪一段程式?

我發現,只要開始追問「Why」,很多原本零散的知識就會慢慢串連起來。

那些以前只能靠背誦記住的內容,也開始變得容易理解。

AI 可以幫助寫程式,但不能取代理解

近幾年,AI 已經改變了程式設計的學習方式。

現在,只要輸入一段 Prompt,就能快速產生程式碼、修改 Bug,甚至完成一個完整的功能。

我自己也經常使用 AI,它確實讓我節省了很多時間,也幫助我快速理解新的技術。

但是,我慢慢發現:

真正重要的不是 AI 幫我寫出了什麼,而是我是否理解它為什麼這樣寫。

如果只是複製 AI 提供的程式碼,我可能可以完成今天的需求。

但是當需求改變、功能增加、程式出現錯誤時,如果不了解背後的運作原理,就很難判斷哪裡出了問題,更不知道該如何修改。

因此,我希望自己能夠做到:

先理解,再使用 AI。

讓 AI 成為學習與開發的工具,而不是唯一的答案。

為什麼會有這個系列?

於是,我決定開始這 30 天的挑戰。

這個系列不只是介紹程式語法,也不是單純分享某個框架的使用方式。

我希望透過每天回答一個「Why」,重新理解程式設計背後真正的運作邏輯。

每一篇文章,我都會試著回答一個問題。

例如:

為什麼需要 HTTP?
為什麼需要 Routing?
為什麼 Framework 要有 Middleware?
為什麼要 Dependency Injection?
為什麼 Reflection 能做到自動尋找 Controller?

除了閱讀資料之外,我也會透過實作與實驗,驗證自己的理解。

我相信,只有真正動手做,才能知道自己是否真的理解。

30 天後,我想完成什麼?

我希望這 30 天不是 30 篇彼此沒有關聯的文章。

而是一段完整的學習旅程。

每天理解一個 Why。

每天完成一個小功能。

最後,把這些知識串連起來,完成一個屬於自己的 Mini Web Framework。

它或許不會像 ASP.NET Core 那麼完整,也不可能取代真正的 Framework。

但它會是我理解程式設計運作邏輯的最佳證明。

因為每一個功能,都是建立在理解之上,而不是複製別人的程式碼。

我希望帶給讀者什麼?

如果你和以前的我一樣,

花了很多時間學程式,卻總覺得學了又忘;

可以照著範例完成程式,卻不知道它為什麼能運作;

看到 AI 產生的程式碼,知道可以用,卻不知道是否真的正確……

那麼,我希望這個系列能陪伴你一起重新學習程式設計。

我們一起從「How」開始,但不會停留在「How」。

我們會一起追問每一個「Why」。

理解它。

驗證它。

最後把它真正運用出來。

我相信,程式設計真正困難的地方,從來不是記住更多語法,也不是使用更多工具,而是理解每一個設計背後的原因。

希望 30 天後,我們得到的不只是完成一個 Mini Web Framework,更重要的是建立一套屬於自己的學習方式。

未來,當我們面對新的程式語言、新的 Framework,甚至新的 AI 工具時,都能先思考:

「為什麼?」

因為當開始習慣追問 Why,我們學會的就不只是某一種技術,而是一種能持續成長的思考方式。


下一篇
程式到底是什麼?為什麼電腦看得懂我們寫的程式?
系列文
程式設計沒有告訴你的事:30 天破解每一個 Why3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言