2015年6月30日 星期二

教育學習類-給程式初學者的建議

  電腦的發明對人們的生活造成深遠的影響,學習編寫程式亦成為世界的一股風潮。有時在FB社團、課堂中,看到剛接觸程式設計的初學者詢問「學習程式很困難嗎?」、「該選擇哪一種語言學習呢?」日常生活人與人之間需要溝通、交談對話。其實程式就像交代電腦按照我們希望的步驟,一一完成工作罷了;只是「步驟」需要嚴謹點!坊間有相當多介紹程式概論、設計、甚至演算法、資料結構的書籍,本篇僅簡單地提供程式初學者些許參考意見,希望踏上這條新的旅程能夠更順利愉快。

  不論哪一種語言,一開始學習只要寫出「Hello World!」註1,大概就算是入門了。每種程式都有方法,控制資料的顯示。編寫出「Hello World!」就代表已掌握了顯示靜態資訊的方式了,可以寫出任何想呈現的數字、文字、符號,甚至是換行,透過排列組成圖案。

  接著進入第二階段-讓程式進行簡單的運算及判斷,這時設計適當的輸入資料,讓程式處理後得到結果。這部分使用變數的宣告、判斷語法,接著是迴圈的使用。常見的問題大多是語法錯誤,如變數未宣告(undefined)、重複宣告、宣告名稱錯誤(像是使用不允許的特殊字元)、是否正確插入分號、括號、換行與對齊……等等。可以透過練習熟悉語法,逐漸熟練後這方面的錯誤便減少了。

  進入第三階段-學習進階技巧並運用程式解決問題。如陣列、副程式、遞迴、指標、字串處理、檔案輸入輸出等進階技巧可以讓程式更彈性、多元,或增加編寫的效率。解決問題是學程式很重要的目的,也是最需要思考、長時間累積經驗的部分。有些問題相當著名,如費氏數列計算、圓周率計算、質數判斷搜尋、河內塔(或譯漢諾塔)、大數運算等,書本、網路皆可查詢到許多解決之道,甚至能比較不同方法之優劣!但初次碰到這些問題時,若能在查閱答案前,試著用心的思考,即使最終並未成功,對於培養計算性思維(Computational thinking)依然有些幫助。當面對未知的難題,或許google找不到解答,只要大腦靈機一動,說不定馬上迎刃而解囉!



註1:或許有些人從arduino、Keil C等平台,甚至組合語言學習程式開發,這些與硬體控制相關語言的「Hello World!」,可以視為讓一支I/O port為1(高電位)或為0(低電位)。總而言之,「Hello World!」是程式最基本的功能之一。

2015.7.1 初稿

沒有留言:

張貼留言