得益於矽穀電腦科技的氛圍,兒子的高中上學期開始教Java語言,我也可以跟他交流一些心得。
為了拓寬他的視野,讓他接觸當今最新的潮流,我跟他說,除了學習Java,他還可以看看Python。
他一開始是反對的,說學Java一門就夠了,何必再額外多學一門!我先給他解釋了電腦語言是高度相通的,你學了一門,另外一門基本上可以無師自通。至於不同的語法習慣,會有很多工具幫你解決。然後我又給他解釋了電腦技術發展的簡史,和在電腦發展史上每一種語言的特點,所要解決的問題,對電腦技術的主要貢獻,自身的局限,和誘發出來的新的語言。
一方麵我還算是磚家,可以講得頭頭是道,另一方麵兒子的智商情商甚高,很快就領悟到了天機。果然沒過幾天他就開始跟我開玩笑說,老爸,你說為什麽有時候電腦告訴你的程序有什麽錯,卻不告訴你在哪裏錯了;有時候電腦告訴你在哪裏錯了,卻不告訴你是什麽錯?我說第一個肯定是Java語言最有名的Null Pointer Exception是吧?他說你怎麽知道的!我說我當初修理那些Null Pointer Exceptions的時候他連個Null Pointer還不是呢。第二個果然就是Python,豎子可教!
可是他又說Python不怎麽好用,告訴我哪裏錯了,卻不說是什麽錯。我說對於幾百行的程序,能告訴你哪裏出錯就已經解決了百分之九十九的問題了。至於是沒告訴你是什麽錯誤,那是因為你的糾錯工具沒設置好。Python是互聯網的語言,有很多開源的工具,基本上你碰到的問題都可以找到解決的方案。我先叫他下載了一個編輯工具,然後告訴他這個編輯工具可以嵌入其他工具,你隻要先加一個嵌入工具的管理器,然後其他工具都可以自動拉下來裝嵌了。可是他卻居然還嫌麻煩。Teenager就是那樣,多說他半句都嫌煩。我也由得他,我對他的智商和情商有信心。
果然他今天又來找我,說老爸,你能不能幫我看看我的這個For-Loop,為什麽我寫的遊戲的背景圖就顯示不全。我說好,我先教你裝那個嵌入工具管理器,然後再下載一個糾錯工具。這次他聽我的了。在我的指導下,用Google尋找那個工具的網頁,Copy,Paste,回車,幾秒鍾就裝好了。再教他怎麽找開源工具。我說,開源工具因為提供的人很多,容易花多眼亂,一定要看大眾點評。你現在的問題是Python的語法和自動糾錯。我給了一個自動糾錯的關鍵詞,他就馬上去找。兒子看英文比我快很多,三五段的文字他幾秒鍾就讀通了,我連第一句話都沒讀完。其實我知道哪個工具好,不過我意在教他選工具,沒告直接訴他,而是讓他自己挑。果然他很快就挑到了我本來要他選的那個工具。
工具拉裝下來,也就是幾秒鍾,突然他寫的程序就顯示出很多錯誤。他說什麽?多一個空格也錯,句子長一點也錯,這還有完沒完啊!我就接回他的那個玩笑說,至少人家告訴你錯在哪裏,和是什麽錯誤。這次他聽了,根據分析工具的報錯大致修改了那些他認為無害的小錯誤。
Teen就是缺乏耐性,還沒完全改好,他就回到主題說,好了,我的程序本來是沒有這麽多語法錯誤的,現在先讓我Show給你看看我的那個問題。
誰知道這次一運行,原來難倒他的那個問題就不見了,遊戲的背景完全按照他的設計顯示出來。Magic!
我一邊走出他的房間一邊說說Problem solved。他在我身後說,Thank you Daddy for helping me to debug my program,然後又補了半句,without even reading my code!
哈哈,兒子對老爹的滔滔江水就是這樣點滴而成的。。。