從碼農到工程師的距離:為什麼「自我迭代」才是自學程式最重要的本領?
📘 自學程式之前|先搞懂自己在害怕什麼
非本科、自學與「我適合嗎?」
由於我的本職學能不是資工,但我一直很想學程式語言。倒也不是為了轉職,而是單純覺得學會程式可以做好多事情……的樣子。
或許是興趣使然,或許是自己理想中的樣子,就是能像軟體工程師一樣,用技術解決問題。
於是我開始接觸 Java、Python、HTML,也開始在網路上尋找各種自學資源。
- 最大的疑問:程式語言到底適不適合自學?
- 背後的焦慮:非本科的我,會不會一開始就輸別人一大截?
- 真正害怕的事:不是學不會,而是怕自己花了很多時間,最後還是一事無成。
在我正式開始學程式之前,曾經在 Dcard 上問過這個問題。而其中一則回覆,我到現在都還記得。
這句話當下有點刺耳,但也讓我突然恍然大悟。
我甚至還沒真正開始發現問題,更不用說解決問題。於是,我就開始自學了。目前也還在努力當中。
PS:有些話聽起來很嗆,但剛好嗆醒人的時候,就會變成一種提醒。
🧠 工程師思維|不是等答案,而是找答案
工程師的本質,是與不確定性共生
在學習任何高門檻技能之前,我們很習慣尋求某種「許可證」。
- 希望有人告訴我們:你的邏輯夠好。
- 希望有人保證:你的英文沒問題。
- 希望有人背書:非本科自學也 OK。
說難聽一點,這種心態本質上是在規避失敗的風險。但工程師這個職業的核心,偏偏就是每天都在處理不確定性。
工程師最常說的話不是「我會」,而是: 「我查查看。」
當你不再害怕「不知道」,而是把「不知道」看成一個待解的謎題時,其實就已經開始接近工程師的思維了。
從學生心態,切換成工程師心態
即使報名了昂貴的 Bootcamp 或線上課程,如果心態還是「我付了錢,老師就要負責教會我」,那仍然是被動學習。
真正的差別,不在於有沒有上課,而在於你有沒有掌握學習的主導權。
| 學習特質 | 被動學習者 | 主動工程師 |
|---|---|---|
| 面對報錯 | 截圖問老師:「為什麼會這樣?」 | 先搜尋報錯訊息,嘗試幾種方法後再提問。 |
| 看待範例 | 照抄程式碼,跑通了就結束。 | 修改參數,把程式弄壞,再試著修好。 |
| 課程進度 | 老師教到哪,就學到哪。 | 為了完成小專案,主動去翻後面的章節。 |
| 技術選擇 | 問別人:「現在學什麼最熱門?」 | 根據想解決的問題,研究哪個工具最合適。 |
課程只是加速獲取資訊的工具,但如何把資訊轉化為解決問題的能力,這件事誰也沒辦法替你完成。
就算因為老師很會教,讓你很快學會了「程式語言」,也不代表你已經成為「軟體工程師」。
這樣講好了:AI 會自我迭代,如果工程師不會自我迭代,那終點可能就只是碼農。
🛠️ 培養工程師腦|給自己的三個練習
1. 從小問題開始實作
- 不要一開始就想做大專案:先從小工具、小腳本、小功能開始。
- 讓程式解決生活中的問題:例如自動整理檔案、批次改檔名、爬取資料、製作簡單網頁。
- 為了完成它去翻文件:這個過程本身,就是最好的訓練。
你不是為了把語法背熟而學程式,而是為了把某個問題解掉。
2. 學會精準提問
當你真的卡住需要求助時,不要只問:「為什麼我的程式跑不動?」
比較好的提問方式,是先整理清楚這幾件事:
- 我想達成什麼目標?
- 我目前寫了什麼程式碼?
- 我嘗試過哪些方法?
- 出現了什麼錯誤訊息?
- 我預期的結果與實際結果差在哪裡?
這種提問方式,本身就是一種邏輯訓練。你越會問問題,就越接近能自己解問題。
3. 建立自己的知識庫
- 工程師不靠記憶力:靠的是搜尋、整理與系統化記錄。
- 解決過的 Bug 要留下來:因為你未來很可能會再次遇到它。
- 寫成筆記或部落格:不只幫助別人,也是在幫未來的自己。
對我來說,寫部落格就是建立知識庫的一種方式。
每解決一個問題,就把它記錄下來。久了之後,那些紀錄會變成你自己的技術地圖。
🌱 結語|別再問路了,直接出發吧
說來有趣,網路上的留言很多時候都是調侃、嘴砲或看笑話,但那次我收到的回覆,卻真的讓我有所收穫。
那句話幫我做了一次心理篩選:
程式語言只是工具,邏輯思考只是手段,真正的核心是我們對世界運作方式的好奇,以及不達目的誓不罷休的韌性。
這條路當然充滿挫折,但每一次解決問題後的成就感,都是無與倫比的獎賞。
讀者也是,別再問路了,直接出發吧。
因為路,就在你尋找答案的腳下。
留言
張貼留言