科技 · 8 月. 18, 2023/星期五

程式設計(Programming)

什麼是程式設計(Programming)?認識程式與程式語言

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

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

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

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


什麼是程式設計 Programming?

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

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

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

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

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

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


什麼是程式語言?

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

高階語言與低階語言

程式語言可劃分為高階語言和低階語言。高階語言的語法比較接近人類語言,而低階則否。目前工程師使用的主流語言多為高階語言,例如 Javascript、C、Java、PHP、Python 和 Ruby。許多知名網站和應用程式都是利用高階程式語言開發,例如 Facebook,WhatsApp、Airbnb 和 Shopify。

低階語言包含機器語言(machine language)和組合語言(assembly language)。機器語言是由電腦能夠直接執行的二進位代碼所組成,而組合語言本身則和電腦結構有密切關係。開發低階語言的工程師必須對執行程式的硬體和中央處理器(CPU)有一定程度的了解。

如何選擇程式語言?

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

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

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

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

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

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

根據 Stack Overflow 的調查,JavaScript 已經蟬聯幾年是全球開發者最普遍程式語言了。在業界工作機會方面,JavaScript 的需求相當高。工程師社群的問答平台 Stackoverflow 2022 對工程師的調查,對專業工程師來說,最熱門、應用最多的程式語言是JavaScript、HTML/CSS、Python和SQL。

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

  1. Python:
    • 特點:Python 是一種高階、通用的解釋型語言。它的語法簡潔明確,且可讀性強,非常適合初學者學習。
    • 應用:Python 常用於資料分析、機器學習、網頁開發以及許多科研領域。
  2. Java:
    • 特點:Java 是一種物件導向的程式語言,具有寫一次,到處運行的特性,因此它具有很好的跨平台性。
    • 應用:Java 主要用於企業級應用開發,例如後端服務、Android應用開發等。
  3. JavaScript:
    • 特點:JavaScript 是一種腳本語言,主要用於增強網頁互動性。現代的JavaScript也能用於伺服器端開發(如Node.js)。
    • 應用:JavaScript 主要用於網頁開發,提供網頁動態效果,並可用於開發前端框架(如React, Angular, Vue等)。
  4. C++:
    • 特點:C++ 是一種擁有系統程式設計能力的高效率通用程式語言。相較於其他高階語言,它提供了更多的控制和效能。
    • 應用:C++ 主要用於系統/軟體開發,遊戲開發,以及需要高效能運算的場景。

以上都是簡單的介紹,每種語言的特點與應用還有更深入的範疇和細節。學習哪種語言取決於你的具體需求和興趣。

發佈日期:  作者: ALPHA CAMP
https://tw.alphacamp.co/blog/programming-for-beginner