如何學習一個程式設計?這個問題學校教育似乎沒有好好告訴我們
青年學子們。以我自己的經驗來看,學校的程式設計課程大部分都是講述程式語法的使用,我認為這是錯誤的方法,教育程式設計的正確方式是:傳授程式設計的核心概念。
以下分享自己在程式設計學習之路的心得,期望能幫助正在學習程式語言的青年學子們。
首先,我們必須知道程式語言(Programming Language)的意義為何?我認為
程式語言是「幫助人類完成處理資料的目的」,重點在於「處理」與「資料」兩個部分。
開始學習之前,根據「工欲善其事,必先利其器」原則,必須先準備好開發工具,不過這又關係到程式語言的種類。個人認為選用自由軟體的開發工具作為學習較好,例如
Eclipse或
NetBeans,也可以使用微軟的Visual Studio的Express版本。
重點不在於開發工具和語言種類,這些都只是工具,學習程式設計在於程式設計本身!
開發工具有了,第一步先了解「
資料」這個部分,你必須先認識
資料型態,常見的資料型態有:整數、浮點數、字元、字串等, 這些屬於
基本資料型態。由這些基本資料型態組合成的資料型態有:陣列、結構、類別等,稱為
複合資料型別。學習的核心概念在於認識與瞭解每種資料型態的特性,什麼時候適合採用哪種資料型態,更進階學習則屬於「資料結構(Data Structures)」的領域了。
第二步是了解「
處理」這個部分,程式處理資料不外乎兩種模式:重複與判斷。
重複(或稱反覆)在程式語言中是迴圈 ,人類利用迴圈自動化處理重複的工作,一般來說有:for迴圈、while迴圈、do-while迴圈、foreach-in迴圈等,用於處理相同的動作。
判斷(或稱選擇)在資料處理中依據資料狀態做不同的動作,通常有:if-else判斷、switch-case判斷等。重複與判斷互相搭配使用,已經足夠幫助我們完成處理資料的目的,同樣的,學習的核心概念在於認識與瞭解每種重複與判斷的特性。更進階學習則屬於「演算法(Algorithm)」的領域了。
再來,更進階一些的就是
函式(副程式)的觀念,程式寫多的會發現程式碼重複,因此,你可以利用函式將常用的功能包裝起來成為函式,減少後續修改維護的麻煩。更進階的學習則是使用
程式庫(library)與開發程式庫。
資料型態、重複與判斷這三類程式語言的基礎知識,如果可以掌握好,我相信你已經有程式開發的基礎能力。至於其他像是
物件導向(Object-Oriented, OO)這個部分,我認為這是屬於更進階的程式設計學習,是讓你成為真正的「程式設計師」。
物件導向其實是程式語言的一部分(對於物件導向的語言來說,目前流行的程式語言時之八九都是OO),很難抽離去獨立學習程式語言。因此我建議剛開始學習程式語言,重心放在資料型態、重複與判斷這三類程式語言的基礎知識,物件導向若不明白以後再學習,千萬不要因為不懂物件而受挫,學習程式設計真的是很有趣的一件事情!
###
延伸閱讀
Web Programming Language網頁程式語言