程式初學者 - 你是要學程式語言還是程式設計
許老師給程式設計初學者的建議
常常有同學問我:「老師,我想要學程式,你建議先學什麼語言?」。其實,大部份想跨足程式設計領域的初學者,都不清楚學程式設計與學程式語言是兩回事。
學程式就像學開車一樣。假設你的教練車是一台超級跑車,你是要利用這一台車學會開任何車都有用到的基本技術還是要學如何開這一台跑車。目標是學開車基本技術的人,學習的重點就是如何轉彎、停車等各種開車的基本技術。目標是學開這一台跑車的人,學習重點是換檔時機、加速方式、高速過彎等各種讓這一台車的性能發揮到極致的理論。
所以,你要先確認自己現在是要學任何語言都要用到的程式設計的基本觀念與技巧,或是要學某一種程式語言的細節。如果你現在是要學程式設計的基本觀念與技巧,那麼用什麼語言就不是重點。就像上一段講的學開車,如果只是要學基本開車技術,用什麼車當教練車,其實都可以。
但是,我還是必須建議同學,不要用 Python 或 Java Script 等容易上手的語言學程式設計的基本觀念與技巧。因為那就像用自駕車學開車一樣,有很多基本的觀念及技巧學不到,這輩子就只能開自駕車,要開其它車,還是得從頭學起。Java Script 是語法格式上比較寬鬆的語言,也就是說你不按照語法寫也會對,容易養成不好的撰寫習慣。Python 是比較高階的語言,把一些語言中常用的基本動作省略掉,相對的那些基本觀念就學不到。
基本上建議用 Java 或 C/C++ 這種比較傳統的語言入門,能夠學到比較完整的基本觀念。不過一定要記得,不是去專研語言的細節,只是借用這語言來學程式設計的基本觀念與技巧。等你程式設計的基本觀念與技巧學完了、練熟了,再回頭去研究語言的細節。例如 C / C++ 的指標、參考、物件導向或是 Java 的物件導向與 API 的應用。若是你 Java 或 C / C++ 會了,再去學Python 或 Java Script 或是 C# 等其他語言,基本上就像己經會開車的人上了自駕車一樣,很快就會了。
講了半天,那到底什麼是程式設計的基本觀念與技巧呢?
程式的開發是針對要解決的問題,用程式語言依照正確的邏輯撰寫程式碼。真正重要的是程式設計的能力,也就是思考問題的解決方案,並把思考邏輯轉換為程式邏輯的能力。最後才是用程式語言把程式邏輯寫出來。所以,程式語言只是用來撰寫程式邏輯的工具。如果沒有思考邏輯,怎麼會有程式邏輯,沒有程式邏輯,語法再熟都沒有用。
幾乎所有初學者在開始學程式設計的時候,不管選擇什麼語言開始學,都會把學習的重點放在該語言的語法。也就是怎麼寫編譯會成功,程式可以執行;而不是把重點放在程式邏輯的演算與變化。學到最後,語法是很熟,但寫不出新東西,只能重複的撰寫老師教過的或是書中的範例。也可能是上了一堆程式語言的課程,但老是卡在基礎邏輯,不但無法學會核心技術,學習時程也會拖得很長。就算日後真的成為程式設計師,也會因為基礎沒有打好,沒辦法創新,只能重複的做會做的事,很難成為高級的工程師。
我是許裕永老師,我從 1998 年開始,在巨匠電腦教程式設計課程至今,己有超過 20 年的教學經驗。目前也是巨匠直播教學 APCS 系列課程的現任講師。我和巨匠電腦集團的窩課360 合作,獨家推出「程式學習的起點 | APCS 重點解析(Java)」錄影課程(購買後可以無限次觀看5年),讓同學們可以用最靈活而且精簡的時間達到最好的學習效果。
APCS 是國家為了讓高中生以特殊才能方式進入大學的測驗,而它的測驗範圍,就是程式設計初學者要打好的基礎。或許你不是高中生,不需要參加這個測驗。但是請注意:你日後的競爭者是一群學過這些東西的人,而且從高中就開始學。
這一門課程是以 Java 語言教學,依照 APCS 的測驗範圍內的每一項重點,深入講解、剖析,並透過逐行輸入程式碼的方式做範例演練,藉以解說各種邏輯的變化細節與注意事項。除了可以幫助想透過 APCS 測驗進入大學相關科系的高中生考取高分之外,更可以為初學者打下深厚的程式設計基礎。打穩了程式設計的基礎,日後不管是要針對 Java 語法做更深入的學習或是要學其他語言 (C / C++, C#, Python, JavaScript…) 都可以直接學習該語言的核心技術並做出變化。
而且,面對大數據的時代,許多公司會希望員工能有資料結構的觀念。目前補教業界並沒有教授相關內容的課程,網路上也沒有能夠很有系統性的引導學生入門的影片,以至於想學的同學都求助無門。本課程中包含了資料結構的資本觀念與進階應用。有了基本觀念與進階應用的能力,日後有深入的需求,自己研究起來就快多了。
針對上這一門課程的同學,有另外提供雲端資料夾與Google Classroom來方便同學發問及取得最新更新內容。
在許多國家全力發展高科技產業的國際趨勢下,程式設計師的需求會不斷的上升。想加入這個行列的你,來吧!讓這一門課程做為你這個未來的程式設計師職業生涯的起點。