寫程式不只是敲鍵盤?一次搞懂前端、後端、資料庫、硬體與韌體的「科技大亂鬥」
當你跟朋友說:「我想學寫程式」,或是看科技新聞時,是不是常被一堆名詞轟炸?
「我是做前端的」、「那個後端掛了」、「這是韌體更新問題」……
對於圈外人來說,這聽起來就像在念咒語。今天我們不講艱深的技術,我們用開一間餐廳的例子,帶你一次搞懂這些科技分工到底在幹嘛,以及如果你想入坑,該學些什麼?
- 前端 (Frontend):餐廳的「外場與裝潢
前端就是客人看得到摸得到的地方。 當你走進餐廳,牆壁的顏色、菜單的設計、服務生的制服,還有你按服務鈴時燈會亮,這些都屬於前端的範疇。在網站或 App 裡,就是你在螢幕上看到的按鈕、動畫、排版。
前端工程師的任務,就是確保這間餐廳「看起來很美」且「動線順暢」。 職責:將設計圖變成網頁,處理使用者點擊按鈕後的互動(例如:按讚變紅色)。
必學技能: HTML(骨架):決定網頁有標題、圖片、按鈕。 CSS(化妝):決定按鈕是圓的、顏色是藍的、字體多大。 JavaScript(肌肉):決定按了按鈕後會彈出視窗、或是滑動圖片。 框架:React.js, Vue.js。
- 後端 (Backend):餐廳的「內場廚房」
後端是使用者看不到的地方,但卻是餐廳運作的核心。 當你在菜單(前端)上點了一道牛排,這張單子會傳進廚房(後端)。廚師(後端程式)要負責切肉、調味、煎熟,最後把做好的牛排端出去。客人不需要知道廚房怎麼運作,只要東西好吃就好。
後端工程師的任務,是處理邏輯與數據。例如:計算購物車總金額、檢查你的密碼對不對、處理刷卡金流。 職責:接收前端的請求、處理業務邏輯、跟資料庫要資料。 必學技能: 程式語言:Python, Java, Go, Node.js, PHP
API 設計:懂得如何設計「菜單」讓前端點餐。
伺服器管理:懂得怎麼把程式跑在雲端主機上 (Linux)。
- 資料庫 (Database):餐廳的「巨大冰箱」 廚房(後端)不能憑空變出牛排,食材必須存放在一個地方。這個存放所有食材(資料)的巨大冰箱,就是資料庫。 當你登入 Facebook 時,後端程式會跑去資料庫(冰箱)裡,把你以前發過的貼文、照片(食材)全部拿出來,再組合成網頁給你看。
職責:高效地儲存、查詢、修改、刪除資料。 必學技能: 關聯式資料庫 (SQL):像 Excel 一樣有表格的,如 MySQL, PostgreSQL (必學!)。 非關聯式資料庫 (NoSQL):像文件夾一樣存資料的,如 MongoDB。 4. 硬體 (Hardware) vs. 軟體 (Software):軀殼與靈魂
有了餐廳的比喻,我們把視角拉大一點: 硬體 (Hardware):就是餐廳的建築物、桌椅、瓦斯爐、鍋鏟。 也就是電腦的實體零件,像是 CPU(大腦)、RAM(短期記憶)、硬碟(長期記憶)、滑鼠鍵盤。如果沒有硬體,軟體就只是寫在紙上的空話。 入坑方向:電子電路設計、IC 設計 (這是另一門深奧的學問)。
軟體 (Software):就是餐廳的員工手冊、食譜、SOP。 也就是指揮硬體做事的「指令集」**。像是 Windows、LINE、Chrome 或是你寫的 Python 腳本。硬體是身體,軟體是靈魂。
入坑方向:前面提到的前端、後端都屬於軟體開發。
- 韌體 (Firmware):硬體裡的「潛意識」 這是最容易搞混的一個。韌體介於軟體和硬體之間。 想像一下餐廳裡的微波爐。微波爐是硬體,但為什麼你按「解凍」它就會轉 3 分鐘?因為微波爐的晶片裡燒錄了一段小程式來控制它。
這段程式寫死在硬體裡,很少會去改動它,所以叫韌體。它直接控制硬體的電壓、轉速、燈光。 職責:讓硬體動起來的底層程式。像是滑鼠裡的程式、冷氣遙控器的程式、或是電腦開機時的 BIOS。 必學技能: 語言:C, C++, Assembly (組合語言)。 知識:作業系統原理、微控制器 (MCU)、嵌入式系統 (Embedded System)。
總結:我該學哪個? 喜歡畫畫、設計、重視視覺效果 前端工程師 (HTML/CSS/JS)。 邏輯強、喜歡處理數據、不愛管配色 後端工程師(Python/Java/SQL)。
兩個都想要 (全都要) 全端工程師 (Full Stack)。
喜歡摸電路板、想做智慧家電、物聯網 (IoT) 韌體工程師 (C/C++)。
希望這篇「餐廳大亂鬥」,能讓你對這些科技名詞不再感到陌生!下次聽到工程師在吵架,你就知道他們是「外場」在怪「廚房」出菜慢,還是「廚房」在怪「冰箱」找不到食材囉!
0 留言
發表留言