程式碼高𠅙

顯示具有 essay 標籤的文章。 顯示所有文章
顯示具有 essay 標籤的文章。 顯示所有文章

2012/09/14

一則關於思考的小故事--心裡掛鳥籠

一則關於思考的小故事,出自《換個思考,換種人生》第 3 章「精通思考流程」,找個地方思考:
偉大發明家兼德科公司創辦人凱特林,擁有 140 多項專利,及近 30 多所大學的榮譽博士頭銜,我曾經聽他談起專門闢室思考的事情,他比喻那是在心裡掛鳥籠。
這種說法似乎很怪異,然而當你聽過他以 100 美元跟人打睹的事,就會比較有概念了。
有一回凱特林向朋友說,他有辦法讓對方在來年買一隻鳥當寵物。那位朋友心想,誰也無法「逼」他做這種事,就和他打賭了。
不久之後,凱特林送了一個瑞士手工精製的昂貴鳥龍給這位朋友。朋友把鳥籠帶回家,覺得鳥籠實在美極了,於是掛在飯廰裡。可是他發現每當客人來訪時,總有人問:「你的鳥什麼時候死的?」
「我從沒養過鳥。」他會這麼說,然後把整件事解釋一遍。重複幾次之後,他終於去買了一隻鸚哥,再把輸掉的 100 美元付給凱特林。凱特林後來說:「如果你把鳥籠掛在心裡,終究會放點什麼東西進去的。」
正如凱特林的鳥籠能引來一隻鳥,特定的思考地點也能引來好的想法。如果你來到思考的地點希望能產生好的想法,那麼終究會想出一些好點子。
這則故事也讓我回想起個人兒時的生活經歷:小學一二年級前,我並不是特別喜歡讀書。有一天父親竟然買了一架簡易式的折疊式書桌,說是給我當禮物。當時我對那書桌的設計感到好奇,也覺得它的樣式精巧。每天吃完晚飯後,非得「享受」一下坐在它上面的「樂趣」不可。就這樣,也養成我至今為止尚稱喜歡閱讀的習慣。

如果這樣的人也能成功的扭轉她的生命

在我生活周遭,免不了有些因為生活過得並不很好,而怪罪生活環境的朋友。雖然我認為他們應該停止抱怨,做些更有利於生命的事,但是總是少了一個強而 有力的案例,來說明每個人的確可以因為信念及努力,成功的改變他們的人生,直到我讀到《換個思考,換種人生》,「技巧五:釋放策略思考的力量」,「策略持 家」一節:
萊恩於 1900 年代中期住在俄亥俄州的迪凡斯。她一直沒有學開車,自從有了孩子以後,也從沒出外工作過。在她那個年代,身為母親就必需留在家裡。這本來也沒有什麼問題,只不過她家裡很缺錢,而且她有 10 個小孩!
她的丈夫凱利在一家機械廠工作,收入十分微薄。更糟的是,凱利是個酒鬼,每星期拿回家的錢,1/3 都被他喝掉了。
任何人在街上遇見萊恩,恐怕都看不出她會運用策略思考,但她的確是。她必需撫養 10 個小孩,打理家務,還要另外賺到足夠的錢養活全家。
在那個時間,製造廠商經常贊助徵稿競賽…〈略過部分〉
萊恩的文字能力不錯,婚前在地方報社工作又鍛鍊了不少,因此她想了一個順理成章的計劃。既然她不能外出賺錢 (即使有人願意照顧 10 個小孩,你能想像這筆褓姆費有多可觀嗎?) 那就參加競賽來賺取金錢與家用品。
想要照顧一家 12 口,洗這麼多人的衣服,還要同時寫數百首詩。廣告歌曲和宣傳短文,需要高度的策略。萊恩做到了。
首先,她苦心建立了一些關係網,用來蒐集參賽表格和購物證明,諸如盒蓋、罐頭標籤等等。其次,她必須在做家事的時候寫東西。每年她都買一本活頁筆記薄,把點子記錄下來,並追蹤一切參賽後的相關資訊。
接下來的挑戰,是找出時間寫作。她處理家務時,總是會把筆記本翻開就近放著,但是她發現燙衣服是最佳時機。
萊恩的策略思考並不限於書寫的準備工作,她也運用策略挑選書寫內容。每一次徵文比賽,她都慎選字眼。她的女兒泰莉回想萊恩準備競賽的情形,說道:
「她 總是會說競賽不只是收集盒蓋和表現聰明才智,還要考慮格式 (有些競賽會要求使用特定字眼,有時若是使用產品想關字眼可以加分)、產品對象 (針對家庭、年輕人或小孩) 和評審。比起贊助商和產品,參賽者更應該重視作為評審的廣告代理商。每個廣告商都有他們的偏好,可能是韻文或散文,可能是幽默或中規中矩的文章。」
萊恩打聽出每家廣告商的喜好,這個策略幫了大忙。在幾年當中,她為這個大家庭贏了幾台洗衣機和烘乾機,數十件大大小小的電器用品、兩輛新車 (車子賣了)、數面筆小額獎金,和兩筆大額獎金,分別是 5000 元與 3400 元。
她把第一筆大額獎金做為頭期款,買下一棟房子,一家 12 口終於搬出 2 房的出租屋。第二筆獎金則用來償還丈夫偷偷申請的二胎房貸 (她一直到償還日前一個月才發現)。
當情況不允許失敗,策略思考就是你最好的選擇。萊恩本來可以偶爾寫首詩,投稿到地方報社去,但她需要做點事來幫忙家人的生計。「像我爸爸這樣的丈夫和父親,永遠不可能改變,」她的女兒說:「我們家唯一的希望就是看媽媽怎麼改變,怎麼撫養一群快樂健康的孩子。」
萊恩成功了。她不僅讓家人活下來,還幫助他們成功。她擁有 7 個小孩大學畢業,1 個拿到博士學位,還有 1 個法學院畢業。
這則故事給了我很深的感觸。如果在那樣環境下的女人都能因為策略思考而成功,那麼我相信大都數人成功的條件都比她優越的多。我把這樣的故事告訴一個酒鬼朋友,想聽聽看他有何看法。
他說:嗯!能討到這樣的老婆就好了。
嗯,這……也算是策略思考的第一步吧。

2009/04/22

在麥當勞看了一場戲

一個皮膚黝黑的男子,兩眼無神的呆坐在餐飲區的一角。
一個體格壯碩的男子帶著一個清瘦的女生走了進來,坐在黝
黑男子的身旁,對他交待了幾句,拍拍了那女生的肩,便走
開了。

那男的哭喪著臉,哀求的詢問著那女生,那女生正顏厲色的
反過來詰問那個男的… 那男的無言以對,熱淚涔涔而下,
這種狀況來回幾次,那男的奪門而出。

那個壯碩的男子回來,再度拍拍那女生的肩,安慰她幾句,
再度離去把那女生留在現場。

最後,另一個面容白晰的男生走了進來,拉著那女生的手,
摟了摟那女生的肩,聊了幾句。那女生嘆了口氣,如釋重負
般的站了起來,那男生也跟著站了起來,兩個人牽著手,漫
步離開現場。

2008/12/10

小朋友的邏輯測驗

小二的國語參考書上看到一個選擇題,題目是:
「媽媽說,哥哥和我是她的一對寶貝 (1) 兒女 (2) 女兒」
唸小二的大兒子,兒女、女兒亂猜一通…
再問念小一的小兒子,他也不能正確答題。
於是我問他們,說這話的是誰,大兒子就說是哥哥,小兒子也不能知道是誰說的。
這時候老婆很熱心的打 pass:題目都說是媽媽說,所以就是媽媽說的。
為了讓我自己不要昏死在旁邊,我只好給提示:
「哥哥、姐姐、弟弟、妹妹」其中一個說的,你們選誰。
這時候老婆知道我在問什麼了。
二個小朋友還是一臉茫然…
以前唸過皮亞傑談到識知發展的書,簡要的內容就是人的各種認知、邏輯能力,
是隨著年齡而成長的。所以一些成人們認為理所當然的事,
對小朋友而言,並不總是理所當然。
今天這道題目,總算讓我有了另一次體驗。

2007/12/19

該學那些程式語言2008版

這主題向來是討論區上常被提出的問題,一言以蔽之,選擇最好的或最受歡迎的…

選擇最受歡迎的,站在你自己的角度來看,它可以提高你在市場上的身價,讓你找的到工作,可以填飽肚子。而站在別人的角度來講,你開發出來的系統容易讓別人接手,開發系統時可用的支援較多,市場的接受度較高,不用重新教育使用者。

選 擇最好的,一方面是可以接觸新思維,提供不同的視野。另一方面,則是期望有一天,最好的可以變成最受歡迎的。而早期投入者,多少可以收到 "傳教士" 般的尊崇待遇。還記得以前 XML 剛出來時,大力推廣 XML 的勞虎,在網路上廣泛傳送其免費電子書《無廢話 XML》,而今多少學習 XML 的網民,還是感念其恩德啊!

那麼,以下便是我的選擇。我會說明其主要應用,及個人對它的觀感。

最受歡迎:

C/C ++:這應該是正統資訊工程科系都必修的語言吧,它的應用不但能讓你直指核心(C),也能讓你站在物件的具像高度(C++),思考系統的構成。像是系統程 式、原生應用程式、軔體、Driver 等,皆是 C/C++ 應用所及之處。尤其台灣電子產業相對發達,在各種掌上型、智慧型裝置不斷推陳出新的今天,對C/C++的人力資源有高度需求。不過這個語言(尤其 C++)因為承載太多歷史包袱,各種實作變體太大,開發時常需用很多 tricks,在應用時需要付出較多心力,在程式語言本身及各種環境歧異的細節上!

Java:如果你唸資工 系,但學校 C/C++ 課程非必修,那麼至少 Java 是必修課程吧! Java 除了較少用在系統程式外,其他領域幾乎都占有一席之地。由於 Java 具有良好的物件導向基礎,當代許多企業應用皆採 Java Solution,尤其是在 SOA/ESB/EAI 等領域。採用 Java Solution 的好處是自由度高,但缺點就是很多事情沒有標準作法,或支援標準作法的解決方案太多,往往要花費不少時間在選擇如何架構系統上。

C# & VB.NET:這能讓你賺錢! 可以讓你快速的寫出漂漂亮亮的應用程式! 能讓你與微軟的企業系統做 完美的結合。像是 BI(OLAP、Reporting、Data Mining)那一塊,是 Java 在應用上比較需要費心的。而 .NET 相對於 Java 較緊緻的技術堆疊,能讓開發者較專注於應用程式的開發上。缺點是,離開了微軟平台的世界,就幾無用武之地。

PHP/Ruby:如果你想 run 自己的 business,或想建立一個像黑米、放P、挖女孩那樣的網站,相信我,這是一個很好的選擇。不過由於目前這兩個語言主要用途只在 Web 開發上,因此特別要注意典範的轉移,或是其原來專精的部分不再具有優勢。

就典範轉移:我的意思是,PHP/Ruby 除了在 Web 開發上已有成功的 killer apps 之外,其實它們能做的事,其他語言或平台也都能做,除非它們能在別的應用領域一樣成功,否則對其未來發展仍是一項危機。而就 "其原來專精的部分不再具有優勢",這並非不可能發生,請見以下的 ECMAScript 說明。但好消息是,至少在 2007 年,這兩個語言的排名在 TIOBE 上的排名都是往上升的。

最好的:

Python: 真正的跨平台,除了跨 Windows, Linux 這類原生作業平台外,它也有 Java 及 .NET 虛擬機器的移植版本。在 Java 與 .NET 競相誇炫平台能力之際,Python 仍能堅守語言本身的原味之美,是令人讚賞的。也因如此,Python 的應用領域眾多,從 Web、文字及檔案處理、科學到研究等,幾乎無所不包。事實上,很多研究平台內定的 scripting language 就是 python,像是用於統計的 SPSS、用於資料探勘的 Clementine 等。

D:被視為是 "C++ done right!" 的一個程式語言,支援了許多 C++/Java/C# 共有的特徵(OOP),但卻也有些特徵是其他語言所欠缺(或尚在研議中)像 Out function parameters,Nested functions,Function literals,Closures,Resizeable arrays...。在現今 VM 當道的年代,D 仍編譯為 native executable,可見其定位,是比較接近 C/C++ 的。也就是適合拿來撰寫系統程式、原生應用程式、伺服器程式,以及網路應用程式等。不過,對於 D 被廣泛接受仍有重大疑慮,因直至目前為止還不知有任何較大型的專案採用 D 語言開發。相較於 Ruby 也沒有像 RoR 那樣的殺手級應用出現。

最受歡迎+最好的:

ECMAScript/JavaScript/ActionScript:JavaScript 與 ActionScript 都朝 ECMAScript 標準靠攏。本來 JavaScript 是被某些人唾棄的一無是處,以為它只會在瀏覽器上作作表面功夫的語言,但一朝 Ajax 的應用得到普遍的喜愛,JavaScript 的行情也就跟著水漲船高。但如果只是這樣,對於 ECMAScipt 最新標準的推廣倒不見得有多大助益。特別是後來 ActionScript 也遵循 ECMAScript 標準,而且號稱 ActionScript 3.0 是非常遵循,這就好玩了。因為 ActionScript 是應用在 Flex/Flash player 中,而瀏覽器中主要執行的指令語言是 JavaScript, 而這兩者都是當代 Thin Client/RIA 的主流,因此我們可以說 ECMAScript Family 幾乎已成為 Universal Client Lauguage。

再者,認為 JavaScript 只會在瀏覽器上作作表面功夫其實並非事實。早期 Netscape Enterprise Server 及 BroadVision One-to-One Server,在 JSP 尚未出現前,伺服器上執行的指令語言就是 JavaScript。而前文提到現在是 VM 當道的年代,現在 ActionScript 的 engine 也已成為一個 VM,叫 AVM,且已貢獻給 Mozilla,成立 Tamarin 專案,將來若用於 Firefox 中,網頁內的 JavaScript 跑起來說不定會跟飛的一樣。

若是真有人拿 AVM 來寫伺服器,說不定會光復 JavaScript 在 Server 端的失土哦 (好吧! 天方夜譚)! 說真的,AVM Server 版若成(例如成為 Apache 的一個 module),要威脅 Java 或 .NET 既有地位是比較困難,因為這兩個平台既有應用多、進化動力也強;但對其他 Server 端的 Scripting Language 絕對是個威脅。想想看,若你能在 Server 端及 Client 端同時使用 ECMAScript,那使用 Ruby 或 PHP 的誘因是否會漸漸變弱呢!而 Ruby 會紅,並不是語言本身之美所致,而是出了一個 Ruby on Rails Framework,而 framework 裡面的 concepts 是很容易 porting 到別的語言或平台中的。

其他:

看了以上個人挑選出來的清單,看啊看的,現在還是程序導向和物件導向語言的天下。難道沒有其他不一樣思考面向的東西嗎? 有的,而且我們也還滿常用,像是 SQL,或是各式 Markup Language 了(雖然不是程式語言)。還有那些用在工程、模擬、統計分析、人工智慧上的,你沒有那個環境或從事相關職業,是幾乎無從著手的語言,而這些當然就不算在推薦之內。

結語:

一項語言要被廣為接受,在過去,我一直以為大廠的支援是個必要因素,但 PHP(XOOPs, Nuke...) 及 Ruby(RoR) 這種透過 Community 及 Killer Application 來帶動風潮的成功案例,似乎也印證了 "世界是平的" 的論點,在這個網路世代,不只大企業,小企業及個人一樣有機會。Killer Apps 與 Success Stories,可能比大廠背書更有價值。

而對於你的選擇,我想,如果要做個尋常的程式開發人員,我會建議你 ECMAScript Family 一定要學,那 Java 或 .NET 再選一種。若你是個不尋常 (開發特殊應用的軟體) 的程式設計師,通常也就沒什麼好選了,因為應用的型式就決定了我們的選擇。


2007/08/01

管理寓言:男人愛當顧問

在彭懷真所著的《時間好經營》中,讀到這樣一個管理寓言:

甲君養了隻愛叫春的公貓,每晚嚎叫吵得鄰人無法入睡。在群情激憤下,甲君不得已將公貓送去獸醫處使其不能貓道。幾天過後鄰人仍見那公貓夜夜外出 “辦事”。鄰人不解而問之,甲君便說:牠現在到處去給別人當顧問。

自從聽到這個比喻之後,我就對顧問這個身份感到過敏 (偏偏我的 title 便是顧問)。從上面的故事來看,似乎在諷刺顧問是只剩一張嘴,不能幹正事的人。不過,我在大陸的網站上看到另一個版本,而有不同的解釋:

社區裏,有只公貓,花心,夜夜出去,找母貓鬼混。 後招各家公貓投訴,女主人一狠心,把這只花心貓喀嚓了。 花心貓被喀嚓了後,仍然夜夜出去,回來後竟然更得意。女主人大奇。 花心貓得意地說:“您把我喀嚓之後,我是不行啦,那些公貓也安靜了幾天,不過他們現在都高價請我去做consultant。”

該站作者解說如下:

  • 各家公貓投訴,說明這只貓很有魅力和能力。暗喻在公司裏面能力非常強的sales,但是這個sales很自狂,未處理好同事之間的利益關係,遭同事到老闆那裏投訴。
  • 女主人把這只貓喀嚓了。暗喻老闆是昏君,賢能招妒無善終。
  • 公貓後來被大家聘consultant.暗喻公貓的實戰能力還是大家公認的,做consultant是無奈之舉。

不過我覺得這樣的解釋也有些牽強。有實力的人,何以只能無奈的做consultant。真正有實力的話,不但能在旁指導,甚且可以自己入場打場好球。有道是心寬天地寬,何必自嘲受昏君閹割啊!

2005/12/12

只有運數,沒有定數

天底下任何事,皆不出 "數" 之掌握,皆由數所控制。就世間法而言,"數" 乃是因果論的具體化。當你種了善因,運的 "正數",就會增加,當你種了惡因,運的 "負數" 就會增長。此運的正數與負數之合,達於某個臨界值,或達到某個啟發點,即會造成 "果" 的實現。

當和尚遇見鑽石 」一書中不斷提示的--如何透過「銘印」,達到心想事成的心法,著重的就是 "製造" 運的正數,"避免" 運的負數。中國人古代講的:天數既定。其實 "當因未種" 之時,天數是不定的,要達到這個天數既定的情境,必是所種之因已超越實現 "果" 之臨界值甚多,此時任何反向之因,都無法將現實拉回臨界值內,故呈 "天數既定" 之勢。

數可分為 "命數" 及 "運數" 及 "合數"。"命數" 者,為數之位能,為靜態已成之數。而 "運數" 者,則為數之動能,命數可透過運數而改變其值。"運" 可作名詞解,亦可作動詞解。而當 "運數" 或 "命數" 之組成,由兩方或多方組合而成時,我稱之為 "合數"。

中國古代講的,玄之又玄的 "數",其實是最實際、最現實的成敗論斷。我以求職及離職來說明 "數" 在現實塵世的運用:

當你求職、而欲往某家公司任職時,即代表該公司與你之間的 "合數",達到你(潛意識裡)所期望的臨界值。若你同時被許多公司所錄取,則你決定任職的公司,應該是你與彼(公司)之間達到合數最強的組合 。

這裡 "合數" 的成份,可能包括你對該公司期望的薪資、公司的前景、企業的經營理念、任職項目是否與你的專長相符、該公司重不重視人才培訓等。

平時即注重員工能力培養的公司,有核心競爭力的公司,稟持誠信原則經營的公司,對應徵者而言,其命數就會較高,就會吸引到較好的員工。

若有公司因經營不善,卻到處扣減員工福利,又刪減教育訓練等經費,則公司的命數就會較低,同時因吸引不到好員工,負數的循環加劇,則呈每況愈下之勢。

現在考慮一個員工會(主動)離職的情況:每個員工進入到公司的蜜月期,他與公司之間的 "合數" 通常達到某個可滿足該員工要求的臨界值之上。但隨著時間的變遷,員工熱情的衰減、企業經營狀況的改變、該員與同事之間相處的情況…,在這些 ”運數” 的 影響下,員工與企業間的 "合數" 亦發生改變。當此數低於該員留任於該公司的臨界值時,該員便會產生離職的念頭。

近代電腦應用科學裡面,有一熱門主題,稱之為 "資料探勘",資料探勘的基礎應用之一,就是拿來 "預測"。預測的項目相當多元:廣告商可以預測一個收件 者是否會有回應,銀行可以預測一個信用卡申請人是否會在後來欠債不還…。要達到這些預測,最重要的步驟之一,就是找到影響 "目標變數" 的 "自變數"。經由一些自變數,可以決定目標變數的值。同樣的,這也是因果論。有可能是經由其因,推斷其果。也有可能是經由其果,反推其因。

吾人在生命中,亦可設定自己的目標,找到達成目標的自變數,努力的製造這些自變數中的正相關,同時避免其負相關,這樣就有助於你目標的的早日實現。

所謂「諸惡莫作、眾善奉行」,就是不考慮特定的目標,但同時增長你個人在人生中各種運的正數。以是,為人當力求 "運數" -- 即主動增長運之正數,而不該為數所運。