# 我應該學甚麼程式語言呢？

剛進資工系的同學常常有一個問題，那就是：「我應該學甚麼語言呢？」

每個語言有不同的特性，以下列表說明：

| 語言 | 用途與特色 |
|------|-----------|
| C/C++ | 速度快，特別適合寫「系統程式、嵌入式系統」。|
| JavaScript | 是瀏覽器中的唯一語言，語法非常彈性，適合撰寫網頁前端。但搭配 node.js 就可以寫後端伺服器，已經成為全端式的語言。另外還可搭配 PhoneGap  或 React Native 寫網頁型的 APP。也可以用 NW.js 或 QML 寫桌上型網頁式應用程式  |
| Python | 語法單純，容易學，適合當第一門語言。而且是網管人員最喜歡的語言。開源資源眾多，可以搭配 Django 撰寫網站伺服端的程式。 |
| C# / VB | 微軟平台的語言，可寫視窗、網站與微軟手機程式等等。 另外目前最受歡迎的 Unity 遊戲引擎主要支援 C#, 但也可以用 JavaScript 撰寫 |
| ObjectiveC/Swift| Apple 平台的語言，寫 iPhone/iPad / iMac 上的程式。|
| Java | 通常用來寫企業內部的程式，或者寫 android 手機上的程式。|
| Ruby | 搭配 Rail 寫伺服端的程式，強項為網站開發。 |
| R/Matlab/Octave | 統計數學，科學計算類為其強項，擅長進行智慧型數據運算。|
| Verilog/VHDL/SystemC | 用來設計數位電路的語言，像是 CPU/ALU/GPU .... |
| ... | 當然還有很多其他語言，像是 go, perl, PHP, haskell, LISP, Prolog, .... |


語言沒有最強的，端看你想要用來做甚麼，再決定要學甚麼？
目前我使用 JavaScript 寫網站， C/C++ 寫系統程式， R 教機率統計， Verilog 設計數位電路並教計算機結構。

但是、事實上你也可以用一套語言做到幾乎所有的事情，因為現在語言社群通常很大，總是有人會開發出各種有趣的框架，像是讓你用 R 架網站，寫網誌等等的工具，或者是用 JavaScript / Python 寫 Arduino 程式的環境。

通常我們不會一次學兩種以上的新語言，而且在一個時期通常只會有一個主力語言，否則很容易導致學習錯亂，樣樣通卻樣樣鬆！

