軟體工程師到底在做什麼?
很多人以為寫程式就是坐在電腦前面瘋狂打字,螢幕上一堆看不懂的東西在跑。實際上,軟體工程師的日常大概是這樣的:花 20% 的時間寫程式,花 80% 的時間在想「為什麼這個東西不會動」。
認真說,工程師做的事情其實是「解決問題」。老闆說「我們需要一個購物車功能」,工程師要做的不是馬上開始寫程式,而是先搞清楚:購物車要能做什麼?加商品、改數量、算運費、結帳?每一個動作背後都是一個小問題,工程師的工作就是把這些問題一個一個拆解,然後用程式碼來解決。
所以學程式,不是在背語法。語法 Google 就查得到。真正要練的是「怎麼把一個大問題拆成小問題」的能力。
會 Google 就成功一半了。認真的。全世界的工程師每天都在 Google 查東西,這不丟臉,這是基本技能。
前端和後端是什麼?
想像一間餐廳。你走進去,看到的裝潢、菜單、服務生的微笑,這些是「前端」——使用者看得到、摸得到的部分。廚房裡面在備料、炒菜、洗碗,這些是「後端」——使用者看不到,但沒有它餐廳就開不了。
網站也是一樣。你在瀏覽器上看到的按鈕、動畫、排版,都是前端工程師做的。你按下「送出訂單」之後,資料怎麼存到資料庫、怎麼通知商家、怎麼算金額,這些是後端工程師處理的。
| 前端 | 後端 | |
|---|---|---|
| 使用者看得到嗎? | 看得到 | 看不到 |
| 主要語言 | HTML, CSS, JavaScript | Python, Java, Node.js |
| 常用工具 | React, Vue, Tailwind | Django, Spring, Express |
| 日常挑戰 | 跨瀏覽器相容、RWD | 效能、安全性、資料庫 |
該學什麼語言?
這大概是新手問最多的問題了。答案是:不要想太多,先選一個開始就對了。語言只是工具,就像你不會糾結「我該用藍筆還是黑筆」一樣,重要的是你寫了什麼,不是你用什麼寫的。
| 語言 | 特色 | 適合場景 |
|---|---|---|
| JavaScript | 萬用,前後端都行 | 網站、App、什麼都能做 |
| Python | 入門最簡單 | AI、數據分析、自動化 |
| TypeScript | JavaScript 的進化版 | 大型專案、團隊開發 |
如果你完全沒方向,先學 JavaScript。它什麼都能做——網站前端、後端、手機 App、桌面應用,甚至可以拿來寫遊戲。學一個語言,打開所有大門。
學程式的正確順序
變數、條件判斷、迴圈。這三個東西搞懂,你就有能力寫出簡單的程式了。不用急著學框架,先把地基打好。
待辦清單、計算機、猜數字遊戲,什麼都好。重點是從頭到尾自己做一遍,體驗「把想法變成可以用的東西」的過程。
Git 就像遊戲的存檔功能。寫壞了可以回到上一個版本,多人合作的時候也不會互相蓋掉對方的程式碼。這是所有工程師都在用的工具。
去 GitHub 上找有興趣的開源專案,看看別人怎麼組織程式碼、怎麼命名變數、怎麼處理錯誤。看得越多,你的「程式碼品味」就越好。
有前端、有後端、有資料庫的完整作品。不用很複雜,但要「能用」。這會是你面試時最有力的武器。
常見的學習陷阱
Bad
把整本書看完再開始寫
Good
看一點、寫一點、錯一點
學程式最大的陷阱就是「準備太久」。看了三個月的教學影片,一行程式碼都沒寫過。學程式就像學游泳,你不跳進水裡,永遠學不會。
Bad
什麼都想學
Good
先精一個,再擴展
今天學 React,明天學 Vue,後天看到 Svelte 又心動了。這樣什麼都學不好。先把一個工具用到熟,理解背後的概念,之後切換到其他工具會快很多。
總結
你可以做的作品
- 個人網站 用 HTML + CSS 做一個自我介紹頁面
- 待辦清單 App 學會 CRUD 操作的最佳練習
- API 串接小工具 串天氣 API 或匯率 API 顯示資料
- 計算機 練習 JavaScript 邏輯和 DOM 操作
- 個人部落格 用 Hexo、Hugo 或 Astro 架一個
需要具備的觀念
- 變數、條件判斷、迴圈
- 函式和模組化
- 前端和後端的分工
- HTTP 請求和 API 溝通
- 版本控制(Git)
- 資料結構基礎(Array、Object)