[程式教育] 該學哪一種程式語言才好?你必須先了解程式語言的7個應用領域
之前一再強調,學習程式語言不完全是為了將來當工程師而學的。但對初學者來說,在這麼多種程式語言中,究竟要選哪一種程式語言做學習呢?
在這之前,我們要先了解,程式語言的應用,大概有哪些領域。先看看自己對哪一個領域有興趣,不妨從該領域下手,學習一種該領域會用到的程式語言,並透過學習去完成一個小作品。
以下是依照應用領域的分類,列出該領域的幾個主要採用的程式語言。
一、網頁開發 (Web Development)
網頁(網站)開發是最普遍的一種應用,幾乎每個人每天會接觸到的,都脫離不了網頁開發的相關產品。在這裡我要特別說明,「開發」網站跟「架設」網站是兩回事,如果只是要「架設」網站,那是可以不需要學會寫程式就能做到的,因為有太多現成工具就可以達到「架設」網站這件事。關於「架設」網站的工具,我們有機會再另外寫一篇文章說明。但不論如何,網頁(網站)的基本運作原理還是要懂的。
網頁開發的部分,一般來說還區分「前端」和「後端」的開發與維護。前端開發專注於設計和構建用戶直接交互的部分,如網頁的結構、佈局和動態效果。後端開發則負責伺服器端邏輯、資料庫管理和應用程式的整合,確保網站能夠有效地處理請求和回應資料。
- 前端開發 (Frontend Development)
- HTML (HyperText Markup Language): 用於建立網頁的結構和內容。
- CSS (Cascading Style Sheets): 用於設計網頁的外觀和佈局。
- JavaScript: 用於增加網頁的互動性和動態效果。
- TypeScript: 可以視為JavaScript 的演進版,增加了靜態類型檢查功能。
- 後端開發 (Backend Development)
- Java: 跨平台的物件導向程式語言,廣泛運用在各領域,包括網頁後端。
- Python: 目前最熱門、應用最廣的程式語言。
- Ruby: 網頁後端開發中,也是主要被選擇使用的一種。
- PHP: 廣泛應用於網頁伺服器端開發,像最常見的架站工具WordPress,主要就是PHP開發的。
- Node.js: Node.js不是一種程式語言,而是開發「框架」,使用JavaScript搭配該框架,是後端開發最常用的一種方式
(註:關於「程式語言」與「開發框架」的關係,之後再寫一篇文章說明)
二、資料分析和機器學習 (Data Analysis and Machine Learning)
資料分析旨在處理和解釋大量數據,找出趨勢、模式和洞見。機器學習則利用統計技術和演算法訓練模型,使其能夠進行預測和決策,應用於各種領域如金融、醫療和市場行銷。從資料中提取有價值的信息,並使用演算法來預測和優化結果。
這兩年火紅的AI工具,如ChatGPT,就是透過資料分析與機器學習,搭配自然語言的呈現結果。
- Python: 擁有豐富的資料分析和機器學習庫,如 NumPy、Pandas、Scikit-Learn、TensorFlow、Keras。
- R: 專門用於統計分析和資料視覺化。
- SQL (Structured Query Language): 嚴格來說,SQL其實不算是一種程式語言,它是用於資料庫查詢和操作的特定語言。
三、行動應用程式開發 (Mobile App Development)
簡單來說,就是智慧型手機上的App開發,包括 iOS跟 Android兩大主要系統。廣泛一點的話,包括平板、智慧型穿戴裝置,都屬於這個範疇。
- Swift: 用於 iOS 應用開發,是Apple官方設計的語言。
- Kotlin: 用於 Android 應用開發,是Google官方設計的語言。
- Java: 也是 Android 應用開發的主要語言,於Kotlin問世之前的Android開發所使用。
- React Native: React Native是一種使用 JavaScript 開發的「框架」,讓開發者可以用相同的程式碼構建 iOS 和 Android 應用。
四、遊戲開發 (Game Development)
遊戲開發包括遊戲設計、圖形創作、音效設計和程式編寫。開發者需要考慮遊戲的互動性、畫面渲染和物理引擎,以提供流暢且吸引人的玩家體驗。此領域也包括跨平台遊戲的開發和測試。
- C++: 在一些高效能的遊戲引擎,如 Unreal Engine,是採用C++語言開發的。
- C#: 著名的Unity 遊戲引擎,在開發上是主要透過C#。
- JavaScript: 應用廣泛的JavaScript,可以用於簡單的網頁遊戲開發。
五、嵌入式系統 (Embedded Systems)
嵌入式系統是一種專門設計用來控制電子設備的計算系統,廣泛應用於家電、醫療設備、汽車和工業機器。這些系統通常具有硬體上的資源與效能限制,需要高效的程式碼和即時反應能力。
- C: C語言著重於記憶體管理,適合用於底層硬體控制和嵌入式系統開發。
- C++: 相較於C語言,C++提供更高階的抽象層概念,也同樣適用於嵌入式系統。
六、自動化和腳本語言 (Automation and Scripting)
自動化和腳本語言旨在通過編寫簡單的程式或腳本來自動化日常任務,從而提高效率和減少人工錯誤。例如,系統管理員可以編寫腳本來自動備份數據,開發者可以自動化測試和部署過程。
- Python: 在自動化測試的領域,Python是最常用被於各種自動化腳本和系統管理。
- Bash: 用於 Unix/Linux 系統的腳本語言,也被廣泛用於自動化流程的操作配置。
- PowerShell: 用於 Windows 系統管理和自動化。
七、系統程式設計 (Systems Programming)
系統程式設計涉及底層軟體的開發,這些軟體直接與硬體進行交互,提供其他應用程式運行的基礎。這些程式需要高度的效能和穩定性,並且經常涉及到記憶體管理和多執行緒處理。
- C: 用於作業系統、驅動程式和高效能應用程式的開發。
- Rust: Rust是較新的程式語言,設計用來解決C/C++中較複雜的記憶體管理在開發上可能造成的缺失,提供記憶體安全的系統程式設計選項。
呼應開頭提到的,以上僅列出程式語言的7個應用領域,和分類中相應的常用程式語言,不表示該領域中只能用這些程式語言。希望這篇文章能夠幫助初學者的你,根據自己的興趣甚至職業目標選擇合適的程式語言學習。