l

2016年5月27日 星期五

消除浪費與課題分離

May 25 10:48~11:43

螢幕截圖 2016-05-25 11.39.54

▲少改一份作業可以多跟Eiffel玩幾分鐘

 

消除浪費

有一年收到一份學生繳交的作業,學生很有禮貌的在作業一開始先自我介紹,把他就讀資工所的動機與大學參賽、獲獎紀錄以及證照全部條列。看完「落落長」的一大串前言,好不容易讀到作業核心,卻是草草幾句帶過,作業要詢問的「重點」都沒抓住,白白浪費Teddy幾分鐘的時間。

不知道是不是「推甄」推到走火入魔,還是日本漫畫看太多,導致學生認為「只要透過書面美化自己就可以在真實世界獲得相對應的能力?」對Teddy而言,這些都是廢話,做白工,徒然浪費時間。學生浪費寫這份作業的時間(雖然可能沒花幾分鐘就寫好),也浪費了Teddy改這份作業的時間。與其如此,還不如直接缺交,皆大歡喜。

交差了事的心態所完成的作業,還不如不交。

***

課題分離

曾經有一位學生寫信給Teddy,說他開學第一周要去參加研討會不能來上課。Teddy回信告訴他,「如果第一周不能來,那就不用來了。」

又有一次學生說他要去國防役面試,還特別強調「面試時間是廠商規定的,不能改時間」,問Teddy能不能請假?Teddy反問他:「你怎麼確定你今年會畢業?請假去國防役面試還不如活在當下。

還有學生在第二周課程結束之後寫信給Teddy,說他只差一門課就可以畢業,但開學時選了不合適的課上了兩周他才發現,所以想退掉原本的課來選修Teddy的課。Teddy告訴他:「課程已經進行兩周不再接受加選。」這位學生很有毅力,又寫了一封信很誠懇的說明他真的還差一門課就可以畢業,但是合適他選修的課程,不是已經修過就是系上沒開課,所以他才需要來選這門課。Teddy告訴他:「選錯課是你的問題,你必須自己承擔後果。

到底學生念研究所是為了什麼?修課、讀書、寫作業、讀論文、做專案、寫論文、參加學術活動、交友、玩樂、處理私事、洗學歷、逃避乒役?這些事情的優先順序要如何安排?這原本應該是「學生」的課題,不是老師的課題,至少不是Teddy這種「兼任教師」的課題。身為一位兼任教師,Teddy最大的課題就是如何把課上好,讓學生修完課之後對於軟體開發的態度與行為能有所改變。學生除了生病、喪假,發生意外事故或家裡有事非得親自處理以外,其他缺課理由對Teddy來講都是同一種理由—就是缺課。Teddy真的不需要,也不想要知道細節啊。

學生覺得缺課處理其他事情比上課重要,那就請便,然後承擔這個決定的後果,就這麼簡單。而不是把「自己的問題」丟到老師身上,變成老師的問題。課題分離,很難嗎?真的很難...Orz。

***

友藏內心獨白:可能要實施負分制度,亂寫扣分。

2016年5月26日 星期四

Eiffel存在嗎?

May 25 12:12~13:15

2016-04-20 14.20.06 拷貝

▲Eiffel在午後看著窗外,思考自己是否存在的課題

 

Eiffel是Kay和Teddy養的一隻貓,剛領養她的時候,世界上只有三個人知道這件事:送養者、Kay和Teddy。後來Teddy在部落格寫了有關Eiffel的文章,知道Eiffel的人變多了。但是,對於不知道Eiffel的人而言,例如非洲草原上的遊牧民族,Eiffle是否存在?

這個問題,和著名的「假如一棵樹在森林裡倒下而沒有人在附近聽見,它有沒有發出聲音?」是一樣的。參考維基百科的說明,這個問題基本上有兩種看法:

  1. 存在就是被察覺到:被察覺到的東西才存在,否則它就不存在。所以從非洲草原上的遊牧民族的角度來看,他們根本不認識也不知道Eiffle,所以對他們而言Eiffel並不存在。
  2. 「是什麼」和它「看起來是什麼」是兩種不同的概念:一個物體本身,它不辯自明的內在性質,和外來的、由別人所賦予的性質之間是不同的。因此物體可以不被感知地存在,就算非洲草原上的遊牧民族沒有感知到Eiffle,但Eiffel本貓還是存在。

***

這兩種說法,好像都有道理。如果一個人的思維偏向「存在就是被察覺到」,在日常生活中就會想盡方法「刷存在感」,正所謂「我刷故我在」。網路時代,刷存在感的方法很多,寫部落格、在Facebook上發文、貼照片、實況轉播,針對爭議性的話題發表激烈言論、以分享為名達到自我行銷的目的等等。

思維偏向後者的人,不甚在意他人眼光,做自己想做的事,不以求得他人認同為出發點。這種人經常會讓人覺得孤僻、很兇、沒有親和力、沒有同理心、高傲、龜毛、難以接近、無感,或是「根本是個白癡」。

但人的行為並不是可以用簡單的二分法就可以解釋,人在不同的情況下,有時希望被察覺,有時又希望可以不被感知地存在。

***

Teddy相信「是什麼」和它「看起來是什麼」是兩種不同的概念,所以Quality Without A Name(無名特質、有實無名)和A Name Without Quality(有名無實)這兩句話經常放在心中。當你追求Quality Without A Name,此時有沒有「名(名聲)」就不是關注的焦點。反之,當你的目的是追求「名」,只在意 KPI 存在感,那麼Quality經常是被忽略與犧牲的對象

追求「Quality Without A Name」到了一個極致,一不小心真的「Without A Name」,成為「不被感知地存在」。不但內心平靜,連口袋都變得非常平靜Sarcastic smile

***

友藏內心獨白:尚未開悟的「不被感知地存在」,還是希望三不五十能被感知一下下XD。

2016年5月25日 星期三

一個模式解決一個小問題

May 24 21:12~21:42

螢幕截圖 2016-05-24 21.37.58

▲Bridge Pattern:開發多國語言憤怒鳥的例子

 

泰迪軟體【Design Patterns這樣學就會了–入門實作班】招生中。

***

昨天在上Design Patterns企業內訓,講完Bridge的休息時間有一位很認真的學員問了一個問題:「Bridge建立起抽象體系和實作體系兩者之間的關係,假設還有另一個體系存在,我可以繼續套用Bridge來建立這三者之間的關係嗎?

Teddy不太了解這個問題的意義,於是請對方舉個實例。

***

學員:例如要支援多國語言。

Teddy:對於多國語言的支援會因為不同版本的憤怒鳥而有不同的翻譯內容嗎?

學員:不會。

Teddy:那多國語言的內容會因為平台不同,例如Android 5.0或Android 6.0而不同嗎?

學員:也不會。

Teddy:感覺起來這個問題和Bridge所要解決的問題不同。

Teddy:以pattern-based的設計流程來看,你的問題首先被Bridge給解決了,接著你檢視套用Bridge之後的結果(resulting context)是否還存在未被滿足的force?以我們講義上的例子來看,應該是沒有,Bridge已經把跨平台憤怒鳥的問題解完了。但是,你現在提出另一個需求,就是跨平台憤怒鳥要支援多國語言,因為我們剛剛介紹Bridge,所以你很自然的可能會想,支援多國語言的問題是不是可以被Bridge解決。

Teddy:思考某個問題是否可以套用某個pattern,首先要問這個問題是什麼?和準備套用的pattern所解決的問題是不是一樣的問題?以多國語言的例子,和Bridge所要解決的問題不同,你只需要先建立多國語言的對照表,然後在程式中使用到字串的時候去查這個表就可以了,好像不需要特別套用什麼pattern。如果真的想套pattern,你也可以去Google看看有沒有人幫「支援多國語言」寫一個pattern。

***

一個pattern只解決一個特定的(小)問題,要解決多個問題,需要套用不同的pattern。初學者在套用的過程中很容易不小心落入「為了套pattern而套pattern」的陷阱。要知道自己的design pattern有沒有學會,最簡單的方法之一就是問自己:「這個pattern要解決什麼問題?」如果回答得出來,就算懂了….百分之20%。

***

友藏內心獨白:其他的80%還有context、force、solution、resulting context。

2016年5月24日 星期二

【工商服務】7月Design Patterns這樣學就會了入門實作班

May 23 23:13~11:48

螢幕截圖 2016-05-23 23.46.34

 

這個月去某公司上Design Patterns企業內訓,由於上課人數多達50幾人,但上課時間只有14小時,所以Teddy把原本公開班的課程重新安排,以便在有限的時間內發揮最大的效用。

該公司員工素質很高,所以Teddy把重點放在介紹Alexander的pattern方法,再搭配少數幾個pattern作為例子,希望學員在理解Alexander的pattern方法之後,日後有能力可以看懂與活用各種其他類型的pattern,而不是僅限於GoF書中的那23個design patterns。

今天上課,在實作完Proxy pattern之後,我請學員作一個練習活動,回頭寫出Proxy pattern的problem,然後寫下solution,最後對solution問「為什麼」來找force。活動結束討論的時間,學員普遍反應:「我明明已經知道Proxy pattern,而且也會實作了,可是你要我用一句話寫出Proxy pattern解決什麼問題,還真不是很好回答。」有一位學員提到,在這個練習中,他學到一件事:「如果我連問題是什麼都說不出來,這樣我怎麼有辦法判斷套用的解法到底是否合適呢?」這個道理非常淺顯,但卻經常被人們忽略。

在討論到force的時候Teddy告訴學員:「沒有 force 就不會有 problem」,這句話講過好幾次了,但不知為什麼今天講這句話特別有感覺。

晉惠帝說:「何不食肉糜」,是因為他的世界不存在「短缺」這個 force,所以他無法感受到老百姓的問題。 大老闆說:「台北房價哪會太貴?」因為他的世界不存在「缺錢」這個 force。 你同事說:「為什麼一個class要有這麼多小method,還要浪費時間幫它們取名字?」那是因為他的世界不存在「可讀性」這個force。

要讓一個人改變觀念、行為,接受新的東西,首先要讓他觀察到force,才會發現問題。

***

要提高設計能力,看到問題背後的問題,活用各種pattern,歡迎參加:Design Patterns這樣學就會了入門實作班,7月23、24、30(五、六、日)上課。

入門班課程重點包含:

  • 軟體設計與設計的產出物
  • Pattern的六大元素(Context、Problem、Force、Solution、Resluting Context)
  • 動手寫自己的Pattern
  • 套用Pattern的流程 
  • 基礎物件導向觀念
  • 10個常用GoF設計模式:包含State、Facade、Template Method、Factory Method、Abstract Factory、Observer、Command、Adapter、Strategy與Composite。
  • 套用設計模式的原則,如何判斷套用的設計模式是否合適?

螢幕截圖 2015-09-21 18.55.23

***

▼課程照片。

螢幕截圖 2015-09-21 19.55.44螢幕截圖 2015-09-21 19.56.12螢幕截圖 2015-09-21 19.56.37螢幕截圖 2015-09-21 19.57.07螢幕截圖 2015-09-21 20.04.24螢幕截圖 2015-09-21 20.06.05

***

image

***

友藏內心獨白:學習看那看不到的東西。

2016年5月23日 星期一

成為武林高手的兩種方法

May 20 15:00~16:30

螢幕截圖 2016-05-20 16.30.12

▲畫面節錄自Google搜尋結果

 

武俠小說中,要成為武林高手,除了天生就是「百年難得一見的練武奇才」以及不小心撿到「天山雪蓮」、「何首烏」或「大還丹」這種吃了之後立刻增加一甲子功力的寶物以外,常見的方式還有以下兩個途徑:

  1. 學習各個門派的武功精華:最著名的例子就是《天龍八部》中善長「以彼之道、還施彼身」的「南慕容」。
  2. 一門絕世武功一直練:《天龍八部》中的「北喬峰」,光靠降龍十八掌與打狗棒法這兩招,即可獨步天下。《射鵰英雄傳》的「東邪、西毒、南帝、北丐」也分別有自己的獨門功夫。

武俠小說中像「南慕容」這種學習多種技能而成為武林高手的例子比較少,像「北喬峰」這種精通少數武功而在武林中站有一席之地的例子比較多。畢竟一般人從零開始要學好一門絕世武功,三年大概只能入門,十年也只有小成。沒有累積個十幾二十年以上的功力,很難徹底理解絕世武功箇中的奧妙之處。

要同時將好幾個門派的武功都練到十成功力,除非這些武功非常簡單,否則著實困難。練到極致大概每個門派的武功頂多也只有八成功力,只能依靠「招式多樣性」來彌補深度不足。

***

要成為一位專家,同樣面對著「廣度」與「深度」的難題。到處趕場聽演講、參加讀書會、社群聚會、上課,可以增加自己的廣度。但繁華過後,如果自己沒有持續深耕每一個主題,最後只剩下「自我感覺強大」以及每天在Facebook上想方設法「讓別人認同你的自我感覺強大」,對於解決正真的問題幫助不大。

如果只考慮到深度,將少數主題研究到一個極致狀態,也可能落入「故步自封」、「不食人間煙火」與被困於「知識象牙塔」的風險。

香港電影《倚天屠龍記之魔教教主》有一句台詞,張三豐說:「無忌,你有九陽神功護體,學什麼武功都特別快,太極拳只重其義,不重其招,你忘記所有招式,就練成太極拳了!」

放屁,編劇根本鬼扯。喔,學了九陽神功之後再學其它武功都特別快,哪有這種事。那我也可以說「會煎荷包蛋之後再學其他菜都特別快」,那不是每個人都變大廚了。第一次看這部電影的時候,心中是這樣想的。

But,過了N年之後,居然覺得電影中的這句話頗有道理。如果天道運行有其一定的道理,理解這個道理之後,便不會被萬事萬物各種不同的表象所迷惑。「九陽神功護體」就相當於在武學上以達「開悟」境界,此時再學習其它武功,自然得心應手。

***

所以,光有廣度但沒有一個已達「開悟」境界的拿手項目,你可以成為「紙上談兵專家」、「嘴砲大師」、「聊天好夥伴」、「社群活動熱衷者」、「證照收集狂」或「鍵盤達人(簡稱『鍵人』)」。至於已經開悟的人,因為已經到達無為境界因而無不為。活在當下,該做什麼,就做什麼。

***

友藏內心獨白:還是當「鍵人」比較輕鬆。

2016年5月22日 星期日

2016大津考察之旅Day1-B三井寺

May 03 18:05~18:45

▼中午在京都待太久,都忘了今天還安排參觀大津三井寺的行程。放好行李休息一下趕快出門,以免寺廟關門。

螢幕截圖 2016-05-03 18.07.53螢幕截圖 2016-05-03 18.08.03螢幕截圖 2016-05-03 18.08.37螢幕截圖 2016-05-03 18.09.01螢幕截圖 2016-05-03 18.09.23螢幕截圖 2016-05-03 18.11.09

 

▼終於來到三井寺的山門,沒想到三井寺範圍還挺大的。

螢幕截圖 2016-05-03 18.18.02

螢幕截圖 2016-05-03 18.21.44螢幕截圖 2016-05-03 18.21.57螢幕截圖 2016-05-03 18.22.20螢幕截圖 2016-05-03 18.23.02螢幕截圖 2016-05-03 18.24.45螢幕截圖 2016-05-03 18.25.52螢幕截圖 2016-05-03 18.28.18螢幕截圖 2016-05-03 18.46.34螢幕截圖 2016-05-03 18.49.12螢幕截圖 2016-05-03 18.26.41

 

▼從寺中可遠眺琵琶湖。

螢幕截圖 2016-05-03 18.47.34螢幕截圖 2016-05-03 18.32.36

 

▼寺中還有一個著名景點:弁慶鐘

螢幕截圖 2016-05-03 18.53.01螢幕截圖 2016-05-03 18.53.12螢幕截圖 2016-05-03 18.53.18螢幕截圖 2016-05-03 18.53.58螢幕截圖 2016-05-03 18.54.05螢幕截圖 2016-05-03 18.54.24螢幕截圖 2016-05-03 18.54.32螢幕截圖 2016-05-03 18.54.40螢幕截圖 2016-05-03 18.57.17

 

▼寺中還有另外一個鐘,三井晚鐘。

螢幕截圖 2016-05-03 18.58.28

螢幕截圖 2016-05-03 18.58.07螢幕截圖 2016-05-03 18.58.12螢幕截圖 2016-05-03 18.58.19

 

▼離開三井寺,大門口有一個石碑刻著它的原名園城寺。根據網路上查到的資料,寺院中有天智、天武、持統這三位日本天皇誕生時用來入浴的泉水,被稱為「御井之寺」,日文發音同「三井寺」。

螢幕截圖 2016-05-03 18.58.56


***

友藏內心獨白:來的太晚了啊。

2016年5月21日 星期六

2016大津考察之旅Day1-A從台北到大津

May 03 17:04~17:43

▼二月底利用228假期到京都附近琵琶湖畔的大津小旅行五天,一早的飛機五點多到機場,餐飲店還沒開門。

螢幕截圖 2016-05-03 17.04.53

 

▼長榮飛關西機場的機上餐點。

螢幕截圖 2016-05-03 17.05.32

 

▼到達熟悉的關西機場。

螢幕截圖 2016-05-03 17.09.00

▼搭Haruka前往京都轉車,旅客好多居然有人沒位置坐。Haruka提供免費WiFi上網,記得上次搭乘還沒有。

螢幕截圖 2016-05-03 17.10.29螢幕截圖 2016-05-03 17.10.43螢幕截圖 2016-05-03 17.11.23

***

▼12點半左右到達京都車站,先到拉麵小路吃午餐,吃完再逛一下京都車站。

螢幕截圖 2016-05-03 17.23.06螢幕截圖 2016-05-03 17.14.53

螢幕截圖 2016-05-03 17.13.54螢幕截圖 2016-05-03 17.14.33螢幕截圖 2016-05-03 17.15.01螢幕截圖 2016-05-03 17.15.21螢幕截圖 2016-05-03 17.15.30螢幕截圖 2016-05-03 17.15.48螢幕截圖 2016-05-03 17.21.55螢幕截圖 2016-05-03 17.22.27螢幕截圖 2016-05-03 17.22.47

***

▼前往大津,沒想到京都到大津只有兩站,有沒有那麼近啊。

螢幕截圖 2016-05-03 17.35.57螢幕截圖 2016-05-03 17.36.11螢幕截圖 2016-05-03 17.36.25螢幕截圖 2016-05-03 17.36.37螢幕截圖 2016-05-03 17.36.54螢幕截圖 2016-05-03 17.37.01

 

▼工事中的大津車站。

螢幕截圖 2016-05-03 17.40.57

 

▼在京都逗留太久,到達大津的SuperHotel已經近下午三點。

螢幕截圖 2016-05-03 17.33.23

***

友藏內心獨白:這算是樂不思蜀嗎?