自學如何選擇入門的程式語言
比較各種程式語言的 Hello 程式
現在幾乎人人都有電腦 (computer) ,或是移動式電腦設備像是手機,學習程式設計 (programming) 蔚為風潮,如果想要自己學習程式設計也不是難事,難的卻是要選哪一門程式語言 (programming language) 來入門, Python 最近好像好熱門, C 好像是要打基礎, Java 或 Swift 來開發手機 App ,還有微軟推的 C# ,其他程式語言好像還有好多種。
要學哪一種呢?如果有老師可以跟著學,老師教哪一種程式語言就跟著學那一種程式語言就好了,問題是如果沒有老師,完完全全由自己獨自摸索,這時候選擇上就是件很難的事情,倒是各種入門教材通常會以印出 Hello 來當第一個程式範例,剛好從 Hello 程式可以一窺該種語言入門的難易度。
以下提供 C 、 C++ 、 C# 、 Dart 、 Go 、 Java 、 JavaScript 、 Perl 、 PHP 、 Python 、 Ruby 、 Swift 等的 Hello 程式,點擊連結可以查看詳細的程式內容與說明
- C - Hello C!
- C++ - Hello C++!
- C# - Hello C#!
- Dart - Hello Dart!
- Go - Hello Go!
- Java - Hello Java!
- JavaScript - Hello JavaScript!
- Perl - Hello Perl !
- PHP - Hello PHP !
- Python - Hello Python!
- Ruby - Hello Ruby!
- Swift - Hello Swift!
綜合以上各篇文章討論,用以下六個步驟來衡量難度
- 建立專案
- 定義程式庫
- 使用程式庫
- 打開瀏覽器
- 啟動伺服器
- 需要編譯
十二個程式語言如下列表
程式語言 | 建立專案 | 定義程式庫 | 使用程式庫 | 打開瀏覽器 | 啟動伺服器 | 需要編譯 |
---|---|---|---|---|---|---|
C | ✔ | ✔ | ✔ | |||
C++ | ✔ | ✔ | ✔ | |||
C# | ✔ | ✔ | ✔ | ✔ | ||
Dart | ✔ | ✔ | ||||
Go | ✔ | ✔ | ✔ | ✔ | ||
Java | ✔ | ✔ | ✔ | |||
JavaScript | ✔ | ✔ | ||||
Perl | ||||||
PHP | ✔ | ✔ | ||||
Python | ✔ | |||||
Ruby | ||||||
Swift | ✔ |
基本上每個步驟的難度都至少 1 顆星,其中,定義程式庫 (library) 、啟動伺服器都稍嫌複雜,因此多給 1 顆星
步驟 | 難度 |
---|---|
建立專案 | ★ |
定義程式庫 | ★★ |
使用程式庫 | ★ |
打開瀏覽器 | ★ |
啟動伺服器 | ★★ |
需要編譯 | ★ |
十二種程式語言的難度星等級如下
程式語言 | 難度 |
---|---|
C#, Go | ★★★★★ |
Dart, Java, C, C++ | ★★★★ |
PHP | ★★★ |
JavaScript | ★★ |
Python, Swift | ★ |
Perl, Ruby | ☆ |
由以上可以得出
C#
跟
Go
會是入門門檻最高的程式語言。
話說入門門檻高也不是壞事,因為如果一開始就有建立專案 (project) 的觀念,學會寫程式 (program) 也有很大一部分就是學會開發程式庫,然後繁瑣的先編譯成作業系統專屬的執行檔,再去執行,學到後面反而會有種越來越簡單的感覺,反之像 Perl 或 Ruby ,由於寫簡單的程式實在太容易了,導致後面學的越深入,會有觀念不完整的潛在危機,這時候往往要靠多寫專案來補足觀念。
至於入門程式設計該選哪一種程式語言呢?沒有哪一種一定好,或是一定要學,很多前輩建議學 C 或 C++ ,並認為用 C 或 C++ 打基礎,整個數位基礎觀念最為鞏固,其實這樣的建議是有前提的,如果現階段電腦架構不變,同時仍是沿用 0 、 1 的機器語言 (machine language) ,因為 C 或 C++ 除了處理器的工作細節之外,其他跟 0 、 1 的確完完全全接合在一起,倒是如果未來某一天流行量子電腦以後,或是其他架構的電腦,機器語言可能就不只是 0 、 1 的話, C 或 C++ 也會逐漸走向邊緣化,變成越來越少人使用。
所以找手邊容易取得資源的來當入門第一個程式語言就好囉!例如有 Mac 電腦,因為有 Apple 官方提供的 Xcode ,學習 Swift 就很方便,另外像是喜歡做網頁的話,先學 JavaScript 也是種好選擇。入門的第一種程式語言沒有哪一種是最好的,將來如果從事程式設計的工作,視需要也有可能學習使用其他各式各樣的程式語言,甚至自己將來發明一種全新的程式語言也說不一定呢!
中英文術語對照 | |
---|---|
電腦 | computer |
程式庫 | library |
機器語言 | machine language |
程式 | program |
程式設計 | programming |
程式語言 | programming language |
專案 | project |