學習程式語言的經歷

  以我自己的經驗,學習任何一種程式語言,你手邊至少一定要有一本參考書,因為你不太可能一下子就記住程式語言中所有的語法,通常都是需要了才去查,查久了自然就會背起來了。

  我自己以前在學校是電子科,雖然是計算機組,但我那時雖對程式設計很有興趣,但卻沒有朝著那方向發展,一直到出了社會N年後,才想到再回來寫程式好了。我沒有很厲害,所以當我在自學C++時,總是有很多一知半解的,感覺好像都會了,可是有缺少些什麼,直到後來我去上了台大資訊系統訓練班及資策會的遊戲程設班之後,C++我才比較了解。

C++ Primer

  C++ Primer 4th 中文版
  作者:Stanley B. Lippman/ Josee Lajoie/ Barbara E. Moo
  譯者:候捷

cpp-book-1.jpg

  C++ Primer這本書跟我有著一段錯綜複雜的緣份,其實這本書我早在當兵的時候就買過了它第3版的中文版,後來一直沒有辦法看懂,且在幾年後都沒用到,就在Yahoo拍賣掉了。再過幾年後,忽然又想看一下C++的書,就在市面上選了一本,也就剛好又選中這本C++ Primer,只不過現在已經到了第四版了,這次我就比較看得懂了,但也是只能看前面比較基礎的部份,對於後面有關class類別的部份都不是很懂,後來,這本書就進冷宮。

  一直到我在資策會上課時,那時老師要我們使用這本書,我才想到這本書我有,才又把它拿了出來。我也後來才了解到,為什麼我程式語言學的不好的原因,原來是我的學習方法有誤,我每次在看C++的書時,就真的只是「看」而已,「看」都看的懂,所以就以為自己懂了,後來聽了老師的話,我知道,原來還要自己動手「寫」,最好是在看懂之後把書蓋上,然後在電腦上在不看書的狀況之後,將剛剛看懂的程式碼寫出來,當你能寫的出來時,就才代表你是真正的懂了,我是從這樣開始看書之後,程式的能力才真正獲得提升,感謝老師。

  這本C++ Primer我後來也都是這樣看的,雖然沒有全部看完,但大致上看過幾次,對於書中所提到的東西都有個印象,一直到現在,當我需要查什麼時,我都會先從這本書開始查,這本就變成我常常翻閱的其中一本工具書了。

  C++ Primer這本書裡面包羅萬象,幾乎什麼都談了,所以它的讀者群從入門到專家都適用,它在簡單且基礎上面講了很多,但它在比較深入的議題及STL的部份就談的比較少。而我看書都有個習慣,就是我捨不得在書上直接寫字,所以我每當有疑問或想做筆記時,都會寫在便利貼,然後再貼在書上,就像下圖這樣,所以我的書本都還蠻乾淨的。

cpp-book-2.jpg

大話設計模式

  大話設計模式
  作者:程杰

cpp-book-3.jpg
  

  當你寫了一段時間的程式之後,一定會開始聽到有人說「設計模式Design Pattern」這玩意,我一開始聽到Design Pattern,我還以為這是一個新技術,就像是Template一樣,後來才發現到是誤會一場。

  這本「大話設計模式」是大陸簡體書翻譯過來的,我個人是覺得寫的蠻棒的,作者把這23個設計模式,用很淺顯易懂的方式來教給讀者,我看過那本GoF的Design Pattern的原始著作,不過我實在太沒慧根了,看不懂裡面在說些什麼,看了之後也不曉得該如何的運用,我是一直到看了這本「大話設計模式」,才比較了解設計模式的。

  這本書的作者說的很好,他說設計模式有四種境界:
  1. 沒學前是一點不懂,根本想不到用設計模式,設計的程式碼很糟糕。
  2. 學了幾個模式之後,很開心,於是到處想著要用自己學過的模式,常會誤用模式而不自知。
  3. 學完全部模式時,感覺諸多模式極其相似,無法分清模式之間的差異,有困惑,但深知誤用之害,應用之時有所猶豫。
  4. 靈活應用模式,甚至不應用具體的某種模式也能設計出非常優秀的程式碼,達到無劍勝有劍的境界。

  為了翻閱容易,我還特別用了標籤,貼在23種設計模式的頁數,這樣要忽然要看哪個模式時,就方便多了。祝大家都能達到最高境界。

cpp-book-4.jpg

重構-改善既有程式的設計

  重構-改善既有程式的設計
  作者:Martin Fowler/ Ken Beck/ John Brant/ William Opdyke/ Don Roberts
  譯者:侯捷/熊節

  這本書也算的上是進階書了,如果你想讓自己寫程式的功力,能再進步一些,就要開始看這類的書,這本書的第1章以一個影片出租店的程式,來說明如何將一個雜亂不堪的程式,重構成一個容易閱讀,也容易擴充的程式碼,光是第一章能學習的就很多了。

cpp-book-5.jpg

程式設計的啟蒙課程

  除非您是寫程式的奇才,才有辦法看書自學電腦程式語言,我程式寫到最後的程度算是中等,在真正懂的「寫程式」,是在二個階段。

  第一個階段是參加一個二、三個月的資策會訓練課程,當時好像花了四、五萬元的學費,在那時候,碰到不少的好老師,所以整個寫程式的能力,大大的提升不少,而我們之所以在學校中,沒辦法把程式學好,有很大的因素是,程式的進度被大部份同學給拖累,所以老師都只能上一些「皮毛」,課程就整個結束了,所以我會建議真正對寫程式有興趣的同學,可以額外在外面上一些C++的課程。

  第二個階段,是進入華義國際的線上遊戲公司,在這個地方雖然待的時間不長,但經過一番的磨鍊,除了寫程式更上一層樓之外,我也真正找回「寫程式」的自信,我了解到寫程式是一種能力,只要真正懂得一種程式語言,要再寫其它的語言,就會變的很簡單。除了這個之外,我也了解到,其實自己只要有信心,不管再難的功能,最後都是能達成的。

  無意間看到以前上課老師所開的課程,想幫老師來推廣一下。

  這位老師叫…「林永祥」,Gary Lin。這是他的部落格「做自己的遊戲 - Litus工作室」,裡面有一些課程介紹。

  像其中一個「C++ 實務班」來說,30小時 5,000元,貴嗎?

  我跟你說,還真便宜,這30小時上完,絕對比你在學校花二年學程式,要學的更精、更好,好的老師帶你上天堂,不好的老師讓你住套房,這真的不是唬你的。

  一個人的熱情是會被澆熄的,如果這位老師還有在開課程的話,要趕快去上,要不然將來他不開了,絕對是各位的損失。

Posted by 唐先生 at 痞客邦 PIXNET Guestbook(0) 人氣()