[程式教育] 我未來想念資訊相關科系,那應該從哪個語言開始學起?

想學程式卻不知道從哪開始?本篇帶你掌握第一步該學什麼,讓初學者能清楚邁出學習的第一步!

Photo by Kevin Ku on Unsplash

不久前,我分別寫了兩篇文章,「我未來不想當程式設計師,那還需要學程式語言嗎?」,以及「該學哪一種程式語言才好?你必須先了解程式語言的7個應用領域」。那如果你真的對程式語言有興趣,且大學的目標就是想要攻讀資訊相關科系,那建議從哪一個程式語言開始學起呢?

這個問題,有可能你問10個人,10個答案都是「Python」。原因無他,因為Python是目前最熱門、應用也很廣的程式語言,而且語法簡單、易學,自然是最被推薦入門的語言了。

其實之前我就寫過一篇文章,針對程式語言初學者,我推薦的並不是Python,文章連結在此,有興趣的可以看看。

不過,如果你未來目標就是念資訊相關科系,我的建議是從學「C++」開始,原因有以下幾點。

深入理解電腦科學基礎

C++ 雖然被歸類於高階語言的一種,但其設計上是基於C語言所演進而來到,故與硬體的關聯較緊密,這使得學生能更深入地理解計算機科學的基礎概念,如記憶體管理、指標和系統資源。這些知識對於學習更高階的電腦科學概念非常重要。

強大的性能和控制

C++ 是所謂的編譯式語言,執行效率極高,並且提供了對硬體和系統資源的精細控制。學生可以學習如何寫出高效的程式,理解程式的性能瓶頸,這對於以後進行高效能計算或系統程式設計非常有幫助。

豐富的標準函式庫 (STL)

C++ 標準函式庫(STL)提供了豐富的資料結構和演算法,這對於學習資料結構和演算法非常有幫助。學生可以在實際應用中學習這些資料結構和演算法,增強他們的理解和應用能力。

廣泛的應用領域

C++ 在許多領域都有廣泛的應用,包括系統程式設計、遊戲開發、高效能計算和嵌入式系統等。學習 C++ 可以為學生未來的職業發展打下堅實的基礎,開啟更多的職業選擇。

良好的可移植性

C++ 程式可以在多種平台上編譯和運行,這使得學生可以學習和理解跨平台開發的概念和技巧。

學習其他語言的跳板

掌握 C++ 之後,學習其他程式語言會相對容易,因為 C++ 涵蓋了許多其他語言的概念。C++ 的語法和結構與許多現代程式語言類似,例如 C#、Java 和 Python。因此,C++ 可以作為學習其他程式語言的良好基礎。

物件導向程式設計 (OOP)

C++ 是一個強大的物件導向程式設計(Object-oriented programming,縮寫:OOP)語言。學習 C++ 可以幫助學生理解和掌握物件導向的基本概念,如類別、物件、繼承、多型和封裝。這些概念對於現代軟體開發至關重要,並且在許多其他程式語言(如 Java、Python 和 C#)中也是核心部分。通過學習 C++ 的物件導向特性,學生可以建立良好的編程習慣和設計模式,這對於他們未來的軟體開發工作非常有幫助。

APCS程式檢定的可用實作語言之一

APCS(Advanced Placement Computer Science) 是一個針對高中生的程式設計檢定,考試內容包括「觀念題」與「實作題」兩部分,在「實作題」的部分,C++是被允許的其中一個。APCS也是目前在各大學院校的資訊相關科系中,第二階段面試時所參考的主要依據。關於APCS的資訊,之後我再寫一篇文章來詳細說明。


總結來說,選擇 C++ 作為入門程式語言,可以幫助學生打下堅實的計算機科學基礎,提供強大的程式設計能力,並為未來的職業發展開啟更多的機會。物件導向程式設計的學習,則進一步提升了他們在現代軟體開發中的競爭力。

Read more

聽說 AI 都能寫程式了,那我還需要學程式語言嗎?

自從ChatGPT橫空問世,人們在獲取知識的方式,發生很大的改變。很多既有的知識或疑問,可以不用在透過Google等搜尋引擎,搭配正確的關鍵字,從中找到相符的結果。 有了ChatGPT,只要用聊天的方式,用人類自然語言詢問,就能在短時間統整出邏輯清晰且條理分明的結果。不論是知識的學習、文章的統整、甚至程式的撰寫,都能透過AI工具快速產生具有一定水準的成品。 那,既然AI都能幫忙寫程式,而且也寫得不錯,我還需要學習程式語言嗎?答案是「肯定」的。 AI是輔助工具,不是程式設計師 沒錯!AI能寫出不錯的程式碼,但如果你本身不懂程式設計,你如何判斷它寫出的結果,是否符合你所想要的?對懂程式的人來說,他會比較清楚該如何對AI工具「下指令」,程式設計師可以利用AI工具的輔助,節省掉實際開發與除錯的時間。 再者,要寫出一個可以應用的程式,並非如此簡單。從一開始的需求分析,到架構設計、模組化元件、單元測試等等,絕對不是透過跟AI工具講三兩句話就能產出的。 AI是透過背後龐大資料與分析模型取產生我們想要的結果,意即,它做不到「無中生有」。相較於AI,人類的優勢在於「創造」。AI工具的出現與

By 三寶爸工程師

[程式教育] 該學哪一種程式語言才好?你必須先了解程式語言的7個應用領域

之前一再強調,學習程式語言不完全是為了將來當工程師而學的。但對初學者來說,在這麼多種程式語言中,究竟要選哪一種程式語言做學習呢? 在這之前,我們要先了解,程式語言的應用,大概有哪些領域。先看看自己對哪一個領域有興趣,不妨從該領域下手,學習一種該領域會用到的程式語言,並透過學習去完成一個小作品。 以下是依照應用領域的分類,列出該領域的幾個主要採用的程式語言。 一、網頁開發 (Web Development) 網頁(網站)開發是最普遍的一種應用,幾乎每個人每天會接觸到的,都脫離不了網頁開發的相關產品。在這裡我要特別說明,「開發」網站跟「架設」網站是兩回事,如果只是要「架設」網站,那是可以不需要學會寫程式就能做到的,因為有太多現成工具就可以達到「架設」網站這件事。關於「架設」網站的工具,我們有機會再另外寫一篇文章說明。但不論如何,網頁(網站)的基本運作原理還是要懂的。 網頁開發的部分,一般來說還區分「前端」和「後端」的開發與維護。

By 三寶爸工程師

[程式教育] 我未來不想當程式設計師,那還需要學程式語言嗎?

這個問題,最中肯又八股的答案當然是「不一定,但有學比較好」。如果問我,我肯定是建議你「最好要學」。 我換個問題,我未來不想當英文老師,那我需要學英文嗎?答案應該很清楚了! 你可能會說「不一樣啊!」請你仔細想想,學習「語言」跟「程式語言」的目的,我在 [程式教育] 學習程式語言的Why and How 這篇文章內有提到,兩者的目的一樣都在「溝通」,只是對象不同。 以目前AI發展的速度,也許不久的將來,「語言」也不需要學習了也說不定。屆時,「程式語言」的角色可能反而更吃重。並不是說你要學會用程式語言來開發軟體,而是透過學習程式語言吸取基本知識和延伸的能力。以下我列出五點,學習程式語言所能帶來的價值。 一、提升問題解決能力與創造力 學習程式設計可以培養邏輯思維和系統化解決問題的能力。這些技能在各種職業中都是非常寶貴的,無論是管理、行銷、工程還是醫療領域,遇到複雜問題時,能夠分解問題並系統地找到解決方案是非常重要的。 程式設計是一種創造性的活動,讓你能夠實現自己的想法和項目。

By 三寶爸工程師

[程式教育] 如何學習程式語言?5個推薦的免費學習平台

上一篇我們提到了3種不同的學習管道,有些管道,像是教學機構,會設計專屬的學習平台,當然是只有付費加入課程才有機會使用。不過,大部分的學習管道,其教學的內容,還是以線上既有的一些免費學習平台為主。 所以,這一篇我們就來介紹5個推薦的免費學習平台。不同的平台,其設計上針對的學習年齡層也有所不同。透過這一篇,希望讓大家在進入學習前,有一些簡單的概念,並選擇適合的平台去學習。之後我會再針對這些平台,提供對應的學習管道給大家。至於,要透過自學或是付費找教學機構學習,就依照個人需求而決定。 一、Scratch Scratch是由麻省理工學院所開發出來的一套「視覺化程式語言」開發平台。上圖就是Scratch的開發介面,透過這個開發介面,利用左方的一些控制元件(積木),將其拖曳至中間的工作區,依照順序設計出腳本,就可以讓右方那隻貓咪依照設計進行對應的動作。 這個平台是支援多國語言的,中文當然也是其一,所以學習上不用擔心語言的問題,只是需要了解這些翻譯過的控制元件和操作介面的用途,是必要花費的學習成本。這個平台,據我所知,目前大部分的小學和中學,在學校的資訊科技相關課程,都有教授這個平台。如果

By 三寶爸工程師