Day 1|30 天 ITSA 挑戰,從「看不懂題目」開始
文章開頭
「如果今天給我一題 ITSA,我到底能不能寫出來?」
這是我決定開始這個 30 天挑戰時,腦中第一個浮現的問題。
身為資工系的學生,寫程式這件事情應該算是日常,但老實說,我的程式能力並沒有想像中那麼好。
有時候看到題目,第一個反應不是「這題要怎麼解」,而是:
「蛤?這題到底在問什麼?」
就算知道題目在問什麼,開始寫之後也很容易卡住,甚至寫完還不知道為什麼答案是錯的。
所以這次我想做一件事情——
用 30 天,好好練習 ITSA。
為什麼是 ITSA?
ITSA(ITSA Online Judge)是我想拿來訓練自己程式解題能力的一個平台。
以前遇到程式題目的時候,很容易有一種感覺:
「我好像看得懂每一行程式碼,但是要我自己從零開始寫,我就不會了。」
這也是我覺得自己最需要改善的地方。
寫程式並不是只要知道 if、for、陣列或函式怎麼使用就好了,更重要的是:
能不能看懂題目?
能不能把問題拆開?
能不能想到解法?
能不能把想法寫成程式?
如果答案錯了,能不能找到錯在哪裡?
所以這次我不想只是「背語法」。
我希望透過實際刷題,慢慢建立自己的解題能力。
我的 30 天目標
這次的目標不打算訂得太誇張。
🎯 第一個目標:看懂題目
至少看到 ITSA 題目的時候,不要第一時間腦袋空白。
🎯 第二個目標:學會拆題
把一個看起來很複雜的問題拆成幾個簡單的小問題。
🎯 第三個目標:學會 Debug
不再只是:
「為什麼錯了???」
然後一直亂改程式。
希望可以慢慢知道自己的錯誤到底出在哪裡。
🎯 最終目標:ITSA 解出 3 題
這也是我給自己的一個挑戰。
希望經過這 30 天的練習,可以讓自己在 ITSA 比賽中至少成功解出 3 題。
這 30 天會做什麼?
接下來的文章,我會從比較基礎的內容開始,慢慢進入 ITSA 題目。
大概會包含:
程式基礎 → 基本題型 → 實際刷題 → Debug → 錯題整理 → 模擬比賽
而且我不打算只放「正確答案」。
因為對我來說,真正有價值的其實是:
我是怎麼從不會,到最後把這題解出來的?
所以之後每一篇也會盡量記錄:
今天練了什麼
題目在問什麼
我原本怎麼想
哪裡卡住
為什麼會錯
最後怎麼解決
今天學到了什麼
Day 1 的開始
其實我現在還不是一個很會寫程式的人。
所以這次鐵人賽對我來說,比起「教別人怎麼寫程式」,更像是一次:
把自己的學習過程完整記錄下來的挑戰。
我也不知道 30 天之後自己到底可以進步多少。
但至少可以確定一件事情:
今天的我,開始了。