透過 Google 找 Coding How-to 的好範例

我經常在文章發表或講課時說教:不要再花心思去學 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」?

文章導覽

   

共有 4 則迴響

  1. 無預算,問google;有預算就找專業的搜尋工具.找google需要極大的耐心, 這是現代技術人一定要有的能耐, 不管是程式,分析,設計, 方法論等等,在這兒幾乎都能找到, 當然有時候也要靠運氣啦. 我覺得How-to要花心思,而且要花很大(可能我立志當戰士吧), 但可以先從搜尋開始,既然文章都抄來抄去,程式當然也是抄來抄去. 相同的, 問人也算是搜尋的一種,但這種搜尋通常是單向的(沒互動也無趣),若沒有相當的籌碼(例如版大欠人家西提牛排等等),如何讓人願意幫忙. 版大遇到的人,似乎只想找人幫他解決問題,而不研究問題,他絕非戰士(專注於程式設計的高手),可以建議他花點錢找指引, 哈.

    • 我與 william 比較看法有些不太一樣的地方是: 自己找 How-to 很花時間,但倒是不會花我很多心思 !^^

      後面您提的很是現實,但的確很實在 🙂

      祝新年快樂!!

    • 我其實應該有提及到一個假設點: 如果你希望在某個領域成為專家 (Expert) 的話。 那麼,就應該更用心在該領域的 “Why” and “What” 的本直思考上。

      我在想,文內應該是要改成 不要只是花心思在 “How-to” 上比較不至被人誤解成偏激 !^^

      至於若是 “用” 的角度,那麼,請專家來協助 How-to 上的操作,那當然可以減輕操作上的熟悉障礙,肯定是好事。

      另,您推廌的文章我看了,該作者前述的觀點,不認為程式設計可以速成,我也是這麼認為; 不過,他的論點是把焦點擺在 “程式設計” 上、而我個人則是把焦點擺在 “軟體設計” 上。 兩者領域看來一樣,但卻是大不相同。

      倒是,目的是一樣的:培養基礎功夫才是各領域上進的必備。 只是,作法不一樣。 我比較頃向本質性的思考,才比較能鍛鍊基礎功夫。 🙂

發佈回覆給「Kenming Wang」的留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *