《區段錯誤的勇氣----阿德勒教你寫程式》
Feb. 6, 2017
在一個工業大城中,住有一個相信“計算機無比簡單,人人都能寫程式”的工程師。
一天一位年輕人氣急敗壞,敲著工程師的門,並說道,“您簡直是一派胡言!”
工程師從電腦桌前轉過來,靜靜地說,“哦!是這樣嗎。”
“我讀了您的書,但您說‘人人都能寫程式’,我卻連作業都不會寫,連錯誤訊息都看不懂的人,您是不會瞭解的!”年輕人激動地說。
“拿出你的作業,給我看看吧。”
>>> 寫程式,就是練習表達 <<<
“老師叫我印出一堆星號,讓我看了就眼花,何況翻譯成程式語言。”年輕人抱怨說。
“你聽過心理學家阿德勒嗎(Alfred Adler, 1870-1937)嗎?他曾說過,人的煩惱,是因為人際關係的摩擦,而這些衝突又常常來自於沒有能力表達自己的想法。練習表達,是成功的關鍵。”
“您說了一大堆,又代表什麼呢?”
“到白板那邊,和我解釋要怎麼畫出星星。”
年輕人很快畫出了星星的圖樣。“不對,”工程師說,“從頭開始講,不錯過任何一個細節,試著與我表達。”
“在第1行印1個星星,第2行3個星星,第3行4個星星和1個空白....”年輕人用文字寫下了規則。
“`3k+2`行有幾個星星呢?”工程師問。
“年輕人想了一下說,`4k+3`個星星和`k`個空白。”他好像明白了什麼似的,回到電腦前面打字。“我懂了....”
哲學家在背後看著,微笑著說,“如果學會和人能夠溝通,那和電腦溝通也不遠了吧!”
>>> 改變自己,迎向成功 <<<
“但是老師,像這題只是計算反矩陣,為什麼電腦卻不聽我的話,告訴我區段錯誤呢?”年輕人充滿委屈。
“失敗雖然令人灰心,卻不能失去勇氣。阿德勒告訴我們,人,沒有完美的。程式也沒有。接受不完美的程式,然後把它變得更好。寫不出程式的時候,也會有‘我怎麼比不上別的工程師’的自卑情結。但阿德勒說,這樣只不過是陷在‘我不會寫程式’的藉口當中,而非去找到錯誤,改變錯誤。只要這樣,每個人都有能力完成想做的事。”
“老師,您說了這麼多,卻沒有告訴我怎麼找到錯誤,別再癡人說夢了吧!”年輕人嘲諷著。
“人生只是瞬間的集合,我們只能把握當下。此時此刻你看見了overflow,就不要想東想西的,看看上一步的輸出結果。你發現有一個除以0。此時此刻,又為什麼有0呢,是因為你用`int`來儲存除法的結果。如果你利用`static_cast`變成`double`,不就對了嗎。”
“老師,您說過‘不要試著改變對方,而是改變自己’,就是這個意思嗎?既然無法儲存小數點,那麼就更改資料結構,達成雙贏的局面。”
“不是我說的,是阿德勒說的喔。”工程師笑著說。
>>> 運用現有的工具,完成未知的任務 <<<
“那請問老師,這題叫我把多項式相乘,但是C++就沒有多項式這種形態,簡直是不可能的任務啊!如果是Mathematica,就可以直接相乘,教授卻偏要我用C++來做,不是自找麻煩嗎?”
“真的沒有辦法嗎?”
年輕人搖搖頭。“不可能的,我已經試過了。”
“雖然C++沒有多項式的型態,卻有別的型態啊。你何不問問自己,什麼是多項式。”
“係數的集合,和一個未知數。”
“如何儲存1個係數呢?”
“用`double`或是`float`。”
“如何儲存3個係數呢?”
“宣告長度為3的陣列。”
“那麼如何把兩個2個二次多項式相乘呢?”
“那就把常數相乘,把一次項交叉相乘....”年輕人呆若木雞,沒有把話說完。
“就像阿德勒說的,不要抱怨天生擁有的少,而是如何活用擁有的資源。”工程師靜靜地說。
--------
更多精彩內容,詳見《區段錯誤的勇氣----阿德勒教你寫程式》!全省各大書局熱賣中!