Loading...

到底什麼是程式?什麼是電腦?

寫程式,所謂的 programming 其實是產生一系列的指令。而這些指令告訴電腦如何執行工作。但別忘了,學習這些語法的目的是為了要和電腦溝通讓電腦幫你執行工作。才能把工作自動化,把人類的產能釋放出來,去做更重要的事情。這才是學習寫程式的目的。

程式不就是運行在電腦上的一種指令嗎?不就是用來編寫軟體的文字嗎?

沒錯,第一種說法,描述了程式的特質與概念,第二種說法,則提出了程式的功能。也就是說,兩種說法的組合正好是完整的答案:「運行在電腦上」是程式的特質,而「寫出一個可執行的軟體」則是程式的目的。

人類在日復一日的工作中,發現某些行為的重複性(或者說是規律性),因此,透過各項電子元件,發明了電腦,協助處理思考性的工作。

而電腦則是透過程式碼的指令,經由「輸入(input)→儲存(storage)/處理(processing)→輸出(output)」的流程,完成人類需要的結果。


什麼是程式設計?

程式設計(programming)又稱程式編碼(coding),透過建立指令來讓電腦執行工作。指令的建立必須按照特定程式語言的詞彙和語法編寫。人類進行「高階」思考,而微處理器需要詳細的指令才能與外在世界互動,因此程式語言就是連接兩者的橋樑。

舉例來說,當電腦在遵循網路應用程式的指令,進行一項工作時,我們會說電腦在「執行程式」,俗稱「跑程式」。

學會寫程式後,能夠開發自己的應用軟體、架設網站,甚至打造自己的聊天機器人等。以下是幾個軟體工程與其他領域結合的例子:

  • 程序化交易:金融 + 程式設計
  • 區塊鏈:密碼學 + 數學 + 程式設計
  • 資料科學:統計學/語言學 + 程式設計
  • 合約分析:法律 + 程式設計

除此之外,現今許多大學都在推廣「CS + X」,也就是電腦科學結合特定專業領域的課程。無論你是否想成為工程師,培養程式設計的思維、學習運用程式語言解決問題,都能幫助你強化專業能力、提升效率。因此,程式設計對未來世代將是不可或缺的重要能力。

基本上,程式設計就是運用科技找到一個更有效的方式來解決問題。

自學程式設計?你要跨過的5個坎

什麼是程式語言?

就像英文有一套詞彙和文法規則,程式語言的語法是用來讓電腦進行特定工作和解決問題。為了應付某些特定情況,或是因應程式設計的潮流,不同的程式語言會設計自己的專屬語法。不過,由於程式語言的基本概念大同小異,學會一種之後,要學其他程式語言就會輕鬆許多。

高階語言與低階語言

程式語言可劃分為高階語言和低階語言。高階語言的語法比較接近人類語言,而低階則否。

低階語言包含機器語言(machine language)和組合語言(assembly language)。機器語言是由電腦能夠直接執行的二進位代碼所組成,而組合語言本身則和電腦結構有密切關係。

雖然用這類語言編寫程式非常費力,但由於電腦直接與硬體基本結構相連,因此跑程式的速度非常快。開發低階語言的工程師必須對執行程式的硬體和中央處理器(CPU)有一定程度的了解。低階程式語言具有平台相依(platform-dependent)的特性,也就是以低階語言所編寫的程式只能在預設的特定硬體上執行。

目前工程師使用的主流語言多為高階語言,例如 C、Java、PHP、Python 和 Ruby。許多知名網站和應用程式都是利用高階程式語言開發,例如 Facebook,WhatsApp、Airbnb 和 Shopify。

2021 熱門程式語言,JavaScript、Python 哪個語言職缺最多

如何選擇程式語言?

程式語言組成了整個電腦科學領域的骨幹,在應用上廣泛且多元。具備程式語言的知識能創造無限可能,相信你開始學寫程式後絕對不會後悔!

而不同的程式語言會有不同的開發目標和應用領域,我們用表格呈現如下:

目標 應用 語言
系統程式設計 作業系統 C
網路後端應用程式 資料庫、網站架構 PHP、Ruby、Python
網路前端應用程式 所有網頁的視覺編排 JavaScript、HTML、CSS
Android 應用程式 Android App Java、Kotlin
Apple iOS 應用程式 iOS App Swift、Objective-C
資料分析 大數據、文本分析 R、Python

除了考量到這些領域的差異,我們在選擇程式語言時,通常也會考慮以下幾個面相:

  • 困難程度:這個語言對於程式設計初學者來說好學嗎?別忘了,隨著你不斷精進程式設計的技能,之後也能學習其他語言,所以建議從容易上手的語言開始。
  • 適合度:想一想你做為程式設計師的目標。你想解決什麼樣的問題?這個語言適合解決這類型的問題嗎?不同語言適合的應用領域也不盡相同。
  • 普及度:多少人在使用這個語言?使用族群大嗎?語言使用者越多,學習資源可能也就越豐富,有問題時也較可能找到為你解答的人。

很多業界工程師對於特定語言有既定看法和偏好。比如你可能常聽到有人說 Python 是最適合初學者的語言,因為在 Python 的世界裡,一切都有「正確的作法」,所以初學者會有明確的規則可循,加上既有的函式庫已經提供非常強大的功能,等同於今天你只需要寫幾行程式碼就能解決遇到的問題。

Java 廣受歡迎,同時也是個相當穩健的語言,也因為它的歷史悠久所以相關線上資源豐富,因此也常被推薦給初學者。

根據 Stack Overflow 的調查,JavaScript 已經蟬聯幾年是全球開發者最普遍程式語言了。在業界工作機會方面,JavaScript 的需求相當高。

JavaScript 網頁開發課程:從零基礎入門到軟體工程師養成

如果你想深入了解不同類型的程式語言,不妨參考下方圖表,這張表格豐富地呈現了主要程式語言的特性:

3分鐘小測驗,找到自己的程式自學入口

更多技術學習資源
前端 JavaScript | HTML /CSS| Bootstrap | RWD | DOM | API | AJAX | Postman | jQuery
後端 HTTP / HTTPS | Node.js | MongoDB | Git | SQL / NoSQL | Docker
其他 VSCode | Web App | Leetcode