現在,換你來當程式旅人了!歡迎你來到程式王國!

程式語言和日常語言一樣,越常使用就越熟悉,也就學得越快。剛開始,不管學習哪一種語言,認識的字彙往往不足以應付所學,常常需要一邊學習、一邊查字典。
  • 書摘
  • 2017-08-31
  • 瀏覽數1,520

為什麼要學程式?從哪裡開始學?

每個人都有自己學習的理由和動機,通常是因為有興趣、覺得好玩。真的!設計一個程式,讓電腦自動去跑是一件很有趣的事。

當然,如果沒有接觸過程式,也就談不上有沒有興趣。要是想學,你可以試著先接觸「兩」種程式語言,等學到一個程度了,先評估看看自己有沒有興趣,再決定要不要更進一步深入。為什麼是兩種不是一種呢?因為程式的領域很廣,只學一種,可能會局限你的視野。至少學兩種,才會比較開闊。

以本書為例,火系法術介紹的就是很好上手的Scratch。學了Scratch之後,建議你可以在水系、風系、土系裡再選一、兩個比較有興趣的來學。

程式語言和日常語言一樣,越常使用就越熟悉,也就學得越快。剛開始,不管學習哪一種語言,認識的字彙往往不足以應付所學,常常需要一邊學習、一邊查字典。學習程式語言也是一樣,有經驗的程式設計師也常常一面寫程式一面查網路,因為使用到的字彙和功能太多了,實在很難、也沒必要全部背起來,常用的自然會記住,其他的等要用時再查就行了。

本書很鼓勵大家利用電腦與網路自主學習。電腦自學的一個好處是:電腦沒有所謂的情感,也就是說,電腦有無限大的耐性,不論你的操作速度多慢,或是犯了多少次錯誤,它都可以讓你一直試到成功為止。

 

選定一種語言後,如何上手呢?

1  先上網搜尋這種語言的入門指南(tutorial),點進去了解它的操作環境,並試著做做看。剛開始可能需要一些時間,之後只要按部就班的練習,一回生,二回熟,自然而然就具備了使用這種語言的基本詞彙。熟悉它的功能和特性,讓它成為你手中實用的工具,建構程式的過程就會變得既流暢又好玩。

2  現在就給自己出個題目來做吧!如果一時想不起來要做什麼,那麼先用「仿、創、改」三字訣來幫助自己。「仿」就是模仿──模仿製作一個你曾經看過的機械或是程式;「創」就是從無到有,善用自己的創意來發想,創造一個全新的作品;「改」就是拿別人做好的,或是自己以前的作品來修改,給它加上新的功能,或是把程式代碼改得比原本更精簡。

3  多多與人分享自己的作品,聽聽別人的意見,作為日後的參考方向。

4  參與討論該程式語言的社群網站,可以交換彼此的想法,同時看看人家在做什麼,也可以順便交個朋友。

 

如果卡住怎麼辦?

「卡住」是什麼意思呢?簡單來說,就是你想做一個東西,但想破頭就是做不出來。可能在一開始就不知道如何下手;也可能寫到一半出了狀況,查不到問題究竟出在哪裡,就此停擺。
危機就是轉機,卡住的時候先別慌,有很多辦法可以解決。一是去偵測程式內容是否出錯了;二是上網找答案,這時你會發現,其實很多人都會問問題,而且題目五花八門;還有,也可以直接問懂程式的人,請他提供自己的經驗或教你怎麼做。

1.偵測程式內容:
先閱讀顯示錯誤的訊息,看它要表達什麼。許多語言出現錯誤(bug)時,只要一執行,螢幕上就會顯示問題出在哪裡、是什麼樣的錯誤造成的。例如:「syntax error in line 16」表示第16行有語法錯誤,有可能只是打錯一個字造成的。

2.上網查找:
如果遇到看不懂的英文單字,如「algorithm」,可以開啟搜尋引擎,直接輸入「algorithm 中文」這組關鍵字,就可以查到它的中文翻譯。如果你想要一個功能,但不知道它的語法,例如想要用Haskell語言將資料排順序,可以開啟搜尋引擎,打上「Haskell 排順序」就可以查到範例。如果你知道這個功能的英文是「sort」,當然也可以用英文「Haskell sort」去查。

3.直接問人:
如果你認識懂程式的人,面對面詢問當然最直接。不然也可以上網路社群論壇,向有經驗的人提問,他們大都很樂意回答,只要你提的問題夠明確、夠仔細,不是那種三言兩語說不清的大哉問就好。

 

一些祕訣

1.不用急著一下就成為程式專家。如果你踏出第一步,又知道每一步之後如何再踏出下一步,那麼你就可以越走越遠,無可限量。

2.很多的程式學習資源,在網路上都找得到。請一面閱讀本書,一面使用電腦,上網查資料和實際操作。

3.如果遇到不懂的名詞,請直接拿它當關鍵字上網查詢。一查就有的詞語,書中多半不會另附說明。要是你在閱讀過程中遇到了這些詞,就把它當成訓練「蒐集資訊」能力的練習吧。

4.程式設計的領域日新月異,不斷有新的平台、新的語言、新的工具被發明,本書的內容只是入門,幫助你尋找方向,並不是一切,上手之後,還有很寬廣的天地等著你去發掘,有興趣的話請你繼續往前走,不要停下來喔。

 

摘自 唐宗浩《普格碼島的法師:歡樂自學寫程式》/網路與書出版

 


Photo:Daniel Cheung, CC Licensed.

數位編輯:吳佩珊、曾琳之

本站提供網路意見交流,以上文章屬作者個人意見,不代表未來親子學習平台立場