OK,如果你想好你為什麼要寫程式,接著就來選一門語言吧。

開始之前,可以看看這篇好文:工程師的缺德行為:叫朋友去學C/C++

我同意作者的看法,如果對程式沒什麼熱忱,就跳下去洗演算法題目,或是下去用 C 寫什麼迴圈,真的是很痛苦。

還是先來看看 Stack Overflow (可以理解成國際型、程式工程師專用的新手友善討論平臺)對於 2018 的調查,程式語言的排行如何:

stackoverflowrank1

主要比較有名的大概就是 JS、前端(HTML、CSS)、Java、Python、C#、PHP、C/C++ 這幾個程式語言了吧?

JavaScript、前端

JavaScript 和前端應該是比較最快可以得到成就感的東西,寫個幾行 Code 馬上可以在瀏覽器上看到自己寫的東西。近幾年前端發展很快,各種教學都一大堆,我也曾經寫過一兩篇 視覺化 的教學,想要快速上手的話,前端是個好選擇。

不過 JavaScript 也可以用來撰寫搭配 Node.js 來撰寫後端就是了,寫起來差不多,是個可以一舉多用的語言。不過雷也很多,建議新手還是從前端下手會比較開心一點......

未來會再介紹 JS 發展有趣和惹人厭的地方。

Python

Python 則是最近爆紅的程式語言,有很多跟機器學習有關的東西都是用 Python 寫的,像是之前的 手寫辨識。而學 Python 有一個優點,因為這個語言強制縮排,不縮排的會影響程式的語意,所以算是新手練語言的好選擇。

Java、C#

Java 和 C# (念做西夏普,不是西井)則是物件導向的好選擇,我覺得這兩個語言有點像,畢竟微軟當初出 C# 就是為了和 Java 競爭。Java 也是可以寫蠻多東西的,可以寫跨平台的桌面應用程式、後端可以寫 JSP,也能拿來寫嵌入式系統的樣子;C# 可以用來開發桌面應用程式,最近比較有名的應該是可以在 Unity 裡面拿來寫遊戲。

這兩個都是物件導向味很重的語言,可以看看 我要學會 Java (二):物件導向其實很簡單

PHP

PHP 是個被鄙視的語言(先別難過,後面會講到為什麼 XD),但他還是很好用。

全世界最大的部落格平臺(WordPress)是用 PHP 寫的、全世界最大的社群網站(Facebook)也是用 PHP 寫的,PHP 曾經佔有舉足輕重的地位,到現在還是有很多人拿 PHP 在寫後端,所以還是有很多職缺。

C/C++

如果你覺得你未來會繼續走程式語言,想要從底子就打好的話,可以學個 C\C++,甚至可以去打演算法競賽,刷個經歷之後可以用;而且隨著 WebAssembly 的崛起,未來可能會有更多把 C/C++ 程式放在前端執行的應用。

我也曾經寫過 C 語言的教學:我要學會 C 語言(一):Hello World!

沒提到的 Bash/Shell Script 是你要碰 Linux 或伺服器比較會用到的語言;SQL 則是資料庫會用到的語言,我個人覺得剛開始不會碰到。

還是不知道要選什麼語言?

如果你還是不知道要學什麼語言?沒關係,先找一個語言開始吧!挑篇喜歡的教學,或是上 Google 搜尋有興趣的題目,看看有什麼好玩的。

同時,和朋友討論最近寫的東西,或一起學程式語言會讓你更有熱情,但絕對不要被同儕噓你寫這什麼糞語言就放棄。程式語言的圈子,或者說工程師的圈子本來就是互相鄙視,大家都覺得自己寫的語言是最好的、甚至大家都覺得自己用的編輯器(IDE)是最好的。不相信的話可以看看 軟體工程師的鄙視鏈 的最後一句:

所有的工程師都鄙視 PHP 工程師。

所以我說程式語言真的沒有什麼一定好、什麼一定差,除了 JavaScript 真的很棒以外

延伸閱讀

我要學程式 目錄