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

我經常在文章發表或講課時說教:不要再花心思去學 How-to 了啦。 如果是對於工作上要用來謀生、不得不熟練的 How-to,那是另當別論;但是對於自我的學習成長、創新能力的發揮,幾乎不會有啥幫助。

"做中學" 的真正意義在於: 做了以後會去思考 "這是什麼?"、 "為什麼" 是這樣子?

尤其是軟體開發人員,總是要去思考,自己的職場生涯,是要往 "重複性的密集量化工作",還是 "知識性的創新設計" 之路來走?

軟體開發人員,太多太多,總是很容易把精力與時間浪費在不必要的地方上。 而且,對自己的成長卻沒啥幫助。

什麼叫作 "浪費在不必要的地方上"?

舉個例子。 上個月有位網友透過 Msn 問了我一個問題: 請問你會不會寫 C# 連結到 ActiveX 元件上?

ActiveX 是什麼? 我也不知道。 我直覺的就回答說:不是透過 MSDN 查一查範例就可以知道的?

那位網友回答說,他有查過,因為微軟已經不支援在 .NET 環境上開發 ActiveX 元件,所以看來,他必須自己要來自己從頭到尾寫 C# 連結 ActiveX 元件了。

姑且不論為何還要使用 ActiveX 元件,看來應該是要 "Re-Use (重用)" 已經寫好的元件吧。 但是,微軟轉移到了 .NET 環境卻不支援 ActiveX 必然會有其原因,可能是 安全性、穩定性與效能等問題。反正,我對其不支援的原因也不會有興趣。

但是,我只知道,那位網友要自行寫 C# 連結 ActiveX 元件這事,根本就是在浪費生命!

閱讀全文 »

哪個時候我會 How-to? 只有在學 How-to 的那個時候!

由於個性與工作性質的關係,我對於重複性的工作相當沒興趣也沒有耐性。 我喜歡思考,我喜歡 "玩" 沒有摸索過的東西,我也享受短時間內就能 "做" 出來的成就感; 但是,我的記憶力已經變得很差,當時是如何做出來的,過一陣子我就會忘記了。所以,這也是為什麼我會紀錄在部落格的原因,同時也可說是一種心得分享。 但是,我並不是作成所謂的教學性文章,所以紀錄的方式,只要我自己大概知道就可以了。 只是,有一些讀者,可能以為我很懂某領域的實做性技術,總是會留言或寄信問我,某某軟體、某某工具,要如何設定或如何實做等這類的問題。 說真的,我實在很為難,這些設定之類等的實做技術,我肯定是記不起來的。

什麼是屬於設定實做上的問題?

舉個例子,前陣子我在使用 Excel,希望利用 C#.NET 來取代 VBA 撰寫程式。 因為 VBA 是內建在 Excel 內,當然很簡單,參考其內的 Help 說明文件就可以了。 但是如何使用 C#.NET? 這個時候我就會透過 Google or MSDN 來找了,查來查去,總是會找到重點的。 例如這個: Visual Studio for Excel Solution。 再將其中的文章 (Articles) 看個大概,就可以開始實做撰寫啦。

另一個例子,前些時候我利用 Excel 要連結 DDE 時,對於該如何處理 (Handle)工作表 (Worksheet)內的 CELL 資料變動的事件,一開始會先利用中文搜尋相關的範例,但找到的 Solution 並不滿意,原因是竟然還要寫迴圈整個掃過所有的資料格,來判斷是哪一個資料格發生變動; 因為不滿意,所以才會再去國外找尋是否有更合理的解決方案,而後輾轉才找到官方對其的原始說明。 再來我才是邊參考範例、邊實做出來這篇: 關於 Excel DDE Tick 資料變更事件的處理。 而這也就是我實做 How-to 之後的心得分享與紀錄。

問題是,當我後來不再使用 Excel 來建立我的交易模型後,原來這些曾經學過、所謂的技術 (其實就只是 How-to),我早就忘光了! 對我來說,這些實做的過程都僅是手段,只是為了讓我可以 "用",以快速達成我原來主要的目的;而如果有 "更好用" 的手段,我就拋掉了。 How-to 對我而言,只是被利用的手段,所以我記不起來、也不會想去記這些 How-to。

在我看來,學會(或已經會) How-to 本身實在不重要,重要的是要如何快速學會 How-to 的能力。 當然,問已經會的人絕對是個捷徑,但是,前述提及,以我來說,一方面我已經忘記;另一方面,我發現到問的人,絕大多數連試都不願意試一下,就是要你把答案或設定步驟詳列下來給他用最好,若得不得到他要的,馬上走人,現實得很。

如果還沒具備透過 Google 搜尋、下對關鍵字、自行找 How-to 的能力,那麼,論壇 (Forum) 倒是不個不錯的好地方。 例如,前述 Excel 與交易程式 的相關問題,我也是透過 Google 搜尋後,才發現到有個「程式交易聚寶盆」這樣一個不錯的論壇。 許多問題的解答,或要問相關性問題,都可以透過該論壇尋找答案與提問。

我在教授軟體設計課程的時候,常會開一個玩笑。 經常就是會有人問我 Java or .NET 的一些實做技術,而我對男生與女生的差別就在於: 「我給一些關鍵字,然後請男生自己透過 Google 找答案;而女生呢? 我是比較體貼,會幫她們透過 Google,找到答案所在的網址,然後再把鍊結傳給她們。 :XD」

軟體思維顧問

專職軟體輔導與教育訓練的獨立顧問。輔導企業資訊單位如何有效組織系統開發與維護;輔導開發人員達成有效的專業分工。傳授如何把軟體作軟 (Keeping Software Soft)的技能,得以提昇系統的彈性/延展,並進而創造系統的再利用價值。

Personal