我經常在文章發表或講課時說教:不要再花心思去學 How-to 了啦。 如果是對於工作上要用來謀生、不得不熟練的 How-to,那是另當別論;但是對於自我的學習成長、創新能力的發揮,幾乎不會有啥幫助。
"做中學" 的真正意義在於: 做了以後會去思考 "這是什麼?"、 "為什麼" 是這樣子?
尤其是軟體開發人員,總是要去思考,自己的職場生涯,是要往 "重複性的密集量化工作",還是 "知識性的創新設計" 之路來走?
軟體開發人員,太多太多,總是很容易把精力與時間浪費在不必要的地方上。 而且,對自己的成長卻沒啥幫助。
什麼叫作 "浪費在不必要的地方上"?
舉個例子。 上個月有位網友透過 Msn 問了我一個問題: 請問你會不會寫 C# 連結到 ActiveX 元件上?
ActiveX 是什麼? 我也不知道。 我直覺的就回答說:不是透過 MSDN 查一查範例就可以知道的?
那位網友回答說,他有查過,因為微軟已經不支援在 .NET 環境上開發 ActiveX 元件,所以看來,他必須自己要來自己從頭到尾寫 C# 連結 ActiveX 元件了。
姑且不論為何還要使用 ActiveX 元件,看來應該是要 "Re-Use (重用)" 已經寫好的元件吧。 但是,微軟轉移到了 .NET 環境卻不支援 ActiveX 必然會有其原因,可能是 安全性、穩定性與效能等問題。反正,我對其不支援的原因也不會有興趣。
但是,我只知道,那位網友要自行寫 C# 連結 ActiveX 元件這事,根本就是在浪費生命!
這就是典型、違背了不要自行製造輪子 (Don't Reinvent the Wheel) 原則。
當然啦,如果是出於無聊、好玩又好奇 (有商業利益也除外,不過,很難有啦),那還沒話說。 但是,若是為了工作上,對自己能力也不可能有啥提升,那就不要作這種傻事。
不忍心看到這位讀者浪費生命,而且我絕對絕對相信,百分之一百一定有國外網友已經造好 C# 連結 ActiveX 這種輪子了。 所以好心的告訴他,請找我的好朋友 Google,就可以直接找到範例,Copy 一下、一個晚上就能搞定了。
這位網友無奈的告訴我,他有透過 Google 搜尋過,但卻沒有找出所以然。 嗯嗯,看來他還是沒有與 Google 當成好朋友呢。 🙂
所以就只好換我問我的好朋友了。 我一打關鍵字: C# ActiveX Wrap , 就排在前兩筆,馬上就有這位網友要的解答與範例了。
那位網友告訴我,因為他不知道要再加上 "Wrap" 這個關鍵字。
嗯嗯,這就不是回到軟體設計的基礎功夫了嗎? C#.NET 應用程式,要能呼叫老舊 Win-32 的 COM 元件,就必須要先能 "包(Wrap)" 起來。 自然而然, "Wrap" or "Wrapper" 就是一個找 How-to 範例時重要的關鍵字了。
所以,我現在才知道,原來還是有這麼多的網友不知道如何學會與 Google 交好朋友呢。
要能善用 Google 這位好朋友,首先你要學會下對關鍵字。 最好是能熟悉某個領域(如軟體設計)的英文字彙,不要只打中文,因為兩岸的翻譯詞彙不一樣,很容易偏掉; 再來,如何熟悉這些英文字彙? 這這,常在廁所看原文軟體設計書籍或常爬網看原文的技術性論文,日久不就記得了嗎? 😉
※ 延伸參考
o 哪個時候我會 How-to? 只有在學 How-to 的那個時候!
o 傷腦筋的 「How-to」 問題。
o 什麼叫 「How-to」?
無預算,問google;有預算就找專業的搜尋工具.找google需要極大的耐心, 這是現代技術人一定要有的能耐, 不管是程式,分析,設計, 方法論等等,在這兒幾乎都能找到, 當然有時候也要靠運氣啦. 我覺得How-to要花心思,而且要花很大(可能我立志當戰士吧), 但可以先從搜尋開始,既然文章都抄來抄去,程式當然也是抄來抄去. 相同的, 問人也算是搜尋的一種,但這種搜尋通常是單向的(沒互動也無趣),若沒有相當的籌碼(例如版大欠人家西提牛排等等),如何讓人願意幫忙. 版大遇到的人,似乎只想找人幫他解決問題,而不研究問題,他絕非戰士(專注於程式設計的高手),可以建議他花點錢找指引, 哈.
我與 william 比較看法有些不太一樣的地方是: 自己找 How-to 很花時間,但倒是不會花我很多心思 !^^
後面您提的很是現實,但的確很實在 🙂
祝新年快樂!!
你太偏激了…
“不要再花心思去學 How-to 了啦”
這樣一些 .NET 名師(如曹祖聖)到各機關去講課不就 !@#$%^&*(
ITHome 王建興的文章: 十年磨一劍寫得很好
http://www.ithome.com.tw/itadm/article.php?c=51181
我其實應該有提及到一個假設點: 如果你希望在某個領域成為專家 (Expert) 的話。 那麼,就應該更用心在該領域的 “Why” and “What” 的本直思考上。
我在想,文內應該是要改成 不要只是花心思在 “How-to” 上比較不至被人誤解成偏激 !^^
至於若是 “用” 的角度,那麼,請專家來協助 How-to 上的操作,那當然可以減輕操作上的熟悉障礙,肯定是好事。
另,您推廌的文章我看了,該作者前述的觀點,不認為程式設計可以速成,我也是這麼認為; 不過,他的論點是把焦點擺在 “程式設計” 上、而我個人則是把焦點擺在 “軟體設計” 上。 兩者領域看來一樣,但卻是大不相同。
倒是,目的是一樣的:培養基礎功夫才是各領域上進的必備。 只是,作法不一樣。 我比較頃向本質性的思考,才比較能鍛鍊基礎功夫。 🙂