沒想到是四年前的文章了...
會突然有感,是因為最近有碰到被 coaching 的小夥伴在查 stack overflow 相關資料,並嘗試解決他所碰到的問題之後,就繼續先往下工作了。(這並沒有錯,工作時間嘛,事有緩急)
不過觀察到這情況後,我好奇問了一下他相關的問題。
「你知道這樣寫,跟那樣寫的差異在哪裡嗎?」
「你看這個被標的解答,跟下面那個投票很多的解答,哪一種寫法好?你剛剛貼的那個被標為解答的,雖然解決了你的問題,但為什麼再下面那一篇的 vote 數那麼高?」
「你有發現解答下面還蠻多 reference link 的嗎?就你過去的習慣,從 stack overflow 上解決了你工作碰到的問題之後,你會有後續的其他動作嗎?」
a few minutes later....
91:「學習的起點,通常也是難度很高的點,是發現自己的無知跟未知。當你發現一個東西你不會、不知道時,你才可能學會它。
你好不容易可以在 routine 的工作裡面,碰到一個你不會的東西,已經發現了自己的未知了,卻只是應付工作上的問題,不求甚解。反正下次再 google 下次在 stack overflow 上還是可以找到其他人的解答。
那你這根本沒在學習,你只是在應付。
舉例來說,你碰到了一個 C# 裡面應該用 throw; 而非 throw ex;
你應該問,為什麼?明明 throw ex; 看起來直覺很多啊。
而且你不應該只問為什麼,不應該只知道 throw 跟 throw ex 的差異,你應該順便了解 Exception 身上有哪些東西,怎麼記 exception 的 log,為什麼有一堆東西是 readonly 的,為什麼有 4 個 constructor,該怎麼自訂自己的 Exception,為什麼需要自訂 Exception,怎麼處理 error handling,誰丟 exception 出來才是對的,誰攔 exception 處理才是對的。
什麼情況適合用怎樣的作法,來解決你實務上的需求情境。」
這些,才是從一個你未知的點,擦出火花之後,學習知識點,再到知識面。
這,才叫學習。
Search