想在寒/暑假學寫程式?推薦高中生學的 3 種程式語言

如果還是學生的你想往資工、資管科系發展,可以把握在寒假或暑假學習寫程式,除了可以將學習過程和作品變成學習歷程,提早學 coding 也能增加通過 APCS 大學先修程式測驗的機會,本文筆者會依個人經驗和所學,跟你推薦可以自主學習、也對未來有幫助的 3 種程式語言!

溫馨提醒:本文不會跟你推銷任何線上課程~單純是筆者整理在高中三年學程式的心得與觀察,希望能幫到也想學 coding 的高中學弟妹。

為何我建議高中生學寫程式?

必須先說清楚,會寫程式不是每個高中生的必須能力,但我推薦下列三種類型的同學學程式:

  1. 有想往資訊學程科系發展( 像是資工、資管 )
  2. 想參加高中資訊學科競賽累積競賽經歷
  3. 想考 APCS 測驗,計畫報名大學資訊科系 APCS 組

嚴格來說,有上面三種計畫的學生一定會需要寫到程式( 不然讀資訊科系幹嘛? )無論是大學二階甄試,或是大學課程,只要是有關「 資訊 」的科系都一定會寫 code,在高中先學程式除了能及早熟悉程式語法跟訓練邏輯之外,你也可以在學 coding 的過程搞清楚自己是否真的想往資工或資管發展。

建議高中生學寫程式的附圖,圖片是一個男人和一隻貓在看電腦

推薦高中生學的 3 種程式語言 👌🏻

下文我會針對不同需求推薦相對應的程式語言給你,我盡量精準去劃分不同程式語言的適合族群了,但沒有所謂完美的程式語言,只有適合你的,所以建議同時參考個人能力、興趣來選擇。

單純想多個技能,培養基礎能力:Python

倘若你還不是很確定想讀資訊科系,或是單純趁寒暑假或自主學習想多學一項程式語言,培養寫 code 的基本常識,那筆者推薦你學 Python。

Python 是很適合新手學的語言,它優點在於:

  • 語法不複雜,比多數程式語言還簡單好上手
  • 有許多現成的模組,不用從頭開始寫一堆程式碼
  • 功能多樣,可以用來寫爬蟲( 自動瀏覽網頁的機器人 )或是小遊戲

舉個例,你想用 Python 寫出一個顯示「 你好 」的程式碼只要一行:

print("你好")

用另一個也是主流、但較複雜的語言 C++ 方式則是:

#include <iostream>
using namespace std;
int main()
{
    cout<<"你好"<<endl;
    return 0;
}

你是不是也覺得:差太多了吧?!?

圖片改編自反正我很閒

應該可以感受到 Python 的簡易性了吧?對於單純想練習寫 code 的人而言,重點會是在「 學習怎麼把理想的效果或目的,透過程式碼有效率的達成? 」如果你只是想開始學新能力、不想太大挫折,Python 是你可以較快上手、且能培養基礎能力的語言。

筆者自己第一個學的程式就是 Python,我是看微軟的免費 Python 線上課程學習,有中文字幕。


想考 APCS、確定往資工發展的人:C++

不過如果你志向明確,確定要讀資訊工程、想直接從技術底層開始學習,或是有要考 APCS 的話,我會建議你學 C++。

儘管 C++ 語法相對複雜很多,但現在很多電腦遊戲跟作業系統都是用 C++ 寫的,它之所以還是主流是因為:

  • 程式執行速度快、佔用資源少( 比 Python 快很多 )
  • 語法結構更嚴謹,學 C++ 同時學會更深入的原理

我之所以推薦考 APCS 的人學 C++,主要是執行效率跟技術深度的關係,APCS 測驗有限制程式執行的時間範圍,Python 在處理複雜問題或資料時速度會慢 C++ 很多、可能會超時,APCS 的筆試題目也是 C++ 的,單純學 Python 可能會看不懂。

改編自真人真事。圖片改編自反正我很閒

而且目前各個學校的資訊科系都還是以 C++ 為主。

所以你是確定往資工發展,或是有意考 APCS 的,學習較難上手的 C++ 會比較適合你。

如果你想了解更多 Python 和 C++ 的差別,可以閱讀這篇:我想學程式,但到底該從哪個語言入門?. 程式麻瓜的程式知識課(一) | by Cheng-Wei Hu 👈🏻


想做出作品:Javascript / Python

倘若你的最終目的是想做出一個有程度的成品出來,可以用得到摸得到,像是做一個密碼產生器或是聊天機器人,那我推薦你學 Python 和 Javascript。

Python 在第一部分解釋過了,它有很多現成的模組,你可以加入一個 Messenger Bot 的模組,讓他變成 Facebook 粉專的聊天機器人,或是裝個 Numpy 模組變成數據分析程式⋯⋯只要搞懂語法,就可以寫出自己的程式作品,做學習歷程或自主學習成果都不錯 👍🏻

Javascript 則是個網頁語言,它可以讓原本靜態的網頁有動態效果,像是載入前的動畫、Youtube 影片播放控制功能、即時更新網頁內容都是用 Javascript 語言做的,而且很多服務都有提供 Javascript 語法的程式碼讓開發者自己使用,像你可以用 Python 或 Javascript 來寫機器人。

如果你對程式作品沒有什麼概念,就是能利用程式碼做出一個成果,而且別人可以使用。

我在 2021 年五月線上教學期間有做一個 LINE 機器人,讓瑜伽老師的群組成員可以傳「+1」報名課程,這就是一個作品。

延伸閱讀:做個 LINE 機器人記錄誰 +1!群組 LINE Bot 製作教學與分享 👈🏻


學生學程式的迷思澄清

最後我想澄清一些高中學生學 coding 常有的迷思或不完全正確的觀念:

其實學程式不用花錢( 或很少錢就可以 )

你可能有在網路上看到程式開發教學的線上課程廣告,因此猶豫學程式是不是要花很多錢買課程跟買書?其實學程式可以是不用花一毛錢的,現在網路有很多免費且有專業性的資源與網站可以參考與學習,只要有台連網路的電腦就可以學程式。

網路有很多免費的學習資源,只要願意花點心思整理就能學習

買書、買課程跟自學的差別在於:前者幫你整理好學習路線並歸納資訊,後者需要自行處理,但我覺得學程式的重點之一就在於培養自己解決問題的能力,而若你習慣自己在網路找資源、找答案,後面開發程式會順很多。

買付費課程沒有不好,但要清楚買課程跟精通 coding 沒有等號關係,更多的是自己有沒有學習的動力與計畫。

我認識一些程式開發的前輩跟大神同學,他們學程式都是自己看網路資源學的,所以不用擔心學程式很花錢,沒這回事。

數學不用超好也能學程式

很多人既定印象就是「 會寫程式的人數學都很好 」其實不然。當程式學到一定的程度確實很吃數學,但那就是在做人工智慧、機器學習跟建模的等級。一般來說,寫些小程式用不太到高深的數學,主要是邏輯。

像是我今天想要設計一個讓讀者能搜尋文章的 Messenger 機器人,就得想怎麼寫連接到 Facebook 的程式碼?如何把文章從網站抓到機器人的程式裡面?這過程中沒有碰到數學,而是把目標拆解成步驟的邏輯能力,這種能力是可以多練習培養的。

我反而覺得學程式比較吃的是英文能力,因為中文的程式相關網路文獻有限,要找解答或自學看國外網站比較方便,英文好的話學程式很吃香。


技術總結

總的來說,在高中寒暑假學 coding 是很好的機會,或是作為新課綱的自主學習題目也不錯,無論是多學一項技能,提前準備資工、APCS 考試或做作品當學習歷程都有幫助,只要有設定目標跟計畫,不用花錢、數學沒很好也能學喔!

延伸閱讀

嗨囉我是 Shawn,首先感謝你看完全部內容!我是位大一學生,也是一間新創的前端實習生,希望跟大家分享如何運用科技提高生產力,並在網站紀錄著自己樸實無華的平凡人生。

如果對於文中內容有任何問題,或是商業合作洽詢,可在下方管道與我聯繫:
e-mail: contact@jcshawn.com
Telegram: jschang666
前一篇文章

Netflix 電視字幕太小?2022 設定 Apple TV 字幕大小教學

下一篇文章

【個人年度回顧】2021 年 5 件我學到最重要的事情