雖然自己學習程式的環境並不是頂好,身邊不總是有高手相助排除疑難,不過就自己累積多年「被程式玩」的經驗,多少應該還是有一些能夠拿得上枱面的心得可以分享,在一些事情將告一個段落之際,我又開始想要回到這裡繼續發表一些文章。
我常對剛入門學習程式,許多環節進入不了狀況的人說自己的例子。記得在大學時候自己去學了 Java 的書自學,整本書的範例機乎讓我打過一遍,但是「類別 Class」和「物件 Object」的觀念,卻是等到過了一年之後,才慢慢掌握,在這之前都是照著書本或是網路上的範例進行,卻不明白自己是在作什麼。
和身邊其它自學程式的人來說,用一年的時間才學會一個觀念,算是慢的。我一直認為我學習程式的資質並不算上佳,只不過因為認清自己的這一點,所以很努力去打好基本功,並且盡可能的把不同程式語言的觀念融會貫通,原因是我的記憶也不太好,要是沒有藉此回憶複習之前學過的程式語言,那些知識和經驗可能又在不久後還回書本。
自認自己不是個理論派,所以總是無法把一些定義給背下來,能夠正確的應用總是比光會背定義來得好吧!而且在程式語言中,許多新概念光是找到最新的說明文件就不容易了,就別提有個權威給予它們簡短的定義,但是概念還是要學會,就得靠許多經驗和練習得來。
自己在檢視自己所學,或是在帶領別人學習程式的時候,會思考如何用自己的語言去表達問一個概念,在把模糊的概念轉化成語言的同時,也漸漸對於程式有另外一種解釋的方式。也發現到現在可見的書籍中提到的定義或說明,許多都是圍繞在「如何使用這個概念」而不是「為什麼有這個功能」或「其背後的概念」,少數提及這方面的書,卻又常常文句過短或例子不夠通俗,導致我這個悟性不高的學習者,沒辦法有效的吸收。
這也是想把自己的一些心得打出來的緣由,我不想去引用枋間書本中的定義,而是用我所理解的內容去作解釋。一來讓路過本站的朋友作個參考,二來讓自己在組織文句的過程中,再一次審視自己所學,更精進自己的程式能力。
所提出來的想法,不見得全對,也不見得包含主題所有的範籌。希望看到文章的人也能夠自行思考,我不見得有枋間書籍的作者那般功力,書本有作者與校槁人員都無法完全避免錯誤,何況是我只有一個人。有思辨與實作驗證能力的人,才能夠學會真正程式的精髓。
沒有留言:
張貼留言