明亮的天空

後來太陽才慢慢地衝出重圍,出現在天空,甚至把黑雲也染成了紫色或者紅色。這時候發亮的不僅是太陽、雲和海水,連我自己也成了明亮的了
個人資料
  • 博客訪問:
正文

培訓

(2008-03-03 16:51:05) 下一個



從這周開始,我被徹底調離原可以吃喝玩樂看窗外風景溫馨的小窩,發配到大教室做培訓一周。那裏每兩個人虎視眈眈看一個電腦,還要認真學習老師講課內容,做練習。最發愁的事情是要打亂我目前晃悠上班晚來晚走的作息時間,要提早起床一個小時。

今天是培訓第一天,我盡最大努力做到了沒有遲到。結果到了之後,後排的好位置電腦已經被早起的鳥兒占用了。我四下觀望半天,每走到一個位置,就有人提醒我,“那個位置已經被人占了。”果然,我看見一些筆記本占著位子,就好像大學自習室占位置一模一樣。我很有把他們的筆記本扔到一邊的衝動,想了想還是忍了。終於,在走過N個我認為的好位置之後,隻能坐在頭一排,和老師臉對臉了。這意味著我想利用培訓時間做些私活的計劃,徹底破產了。 

培訓照例一來就大家自己介紹自己,說明自己到底想通過這個培訓達到一些什麽目標。教我們的老師J眉清目秀的,看著還算順眼。另一位是他們的VP,也是負責回答問題,控製進度,查看學生做練習的。我們一個班,大概10多個學生,都是從不同組湊過來的。大家都紛紛介紹了自己項目,很自豪。我發現來的程序員分成了兩個陣營。紅方就是我方,屬於JAVA陣營,藍方是微軟那套.NET陣營。雙方互相看不起對方,也有悄悄向對方轉型的,打算腳踏兩隻船,以後見風使舵。 

培訓是關於一些自動檢測的方針,自動檢測的工具等等。上麵想讓我們把這部分做好,加強我們寫的軟件質量。很久沒有做培訓,發現目前IT行業還是與時俱進的有些新名詞。比如,今天學的就是TDD,全稱為Test Drive Development,當然還有BDD。這個老師喜歡捉對寫程序的方式。我也喜歡,因為可以一邊聊天一邊寫程序,還可以顯擺一下自己聰明的地方。而且,主要是承擔責任的人,一下就多了一倍。不過,最好還是能和聰明人配對,要不還是自己累。 

我們練習了一種叫乒乓球模式的寫程序方法。這個真是好玩啊,不過效率其低。比如,我們練習寫一個做階乘的程序。要一個人先把測試程序寫好,另一個人寫真正的程序,但是隻要寫到剛剛能夠讓這個測試程序通過就可以了。然後這個寫程序的再寫一個測試程序,讓測試程序失敗。然後讓頭一個人在去修改原程序,然後再寫一個測試程序,也讓測試程序失敗。就好像打乒乓球一樣,你推我擋。直到最後一個人,實在懶不下去了,寫好真正的程序。這樣測試程序已經在這個過程中全麵建立,而且雙方都用了腦子,想到了很多種可能的情況。 

和我配對的是以前我們一起做過一個特複雜問題的另一個組的.NET程序員。我們一聽這個比試聰明的辦法,就叫上勁兒了。這個和大家玩過那種搭積木,每次抽出一個方塊,看誰把這個積木最後弄倒誰輸的遊戲一樣,就看誰寫不出很多很多if else,必須寫真正的代碼了。我和這個.NET的程序員推擋了至少7個回合,最後還是以他先低頭了告終。我們還為階乘可不可以用負數爭執起來,我說不可以用負數,他說是可以的。官司打到老師那裏,老師推薦清官Wiki,再仔細閱讀了Wiki的定義之後,他心服口服的認輸了。 

這種培訓都很講究互動,老師每講一段就讓大家做練習,還總結一些我們應該接著做些什麽,少做些什麽等等。大家都寫了小條貼到前麵的白板上。老師一個個讀給大家聽,采納建議。在一個我們應該更多的有什麽的欄目下,竟有人寫了:我們要更多的好吃的,要提供我們免費午餐。這本來是我的風格啊,看來這個班裏真是臥虎藏龍不少喜歡吃的人。結果,老師看了這個條子,想了想,說周四帶大家去好好吃一頓,他們公司請客。班上一片歡呼雀躍,覺得民主就是好。 

培訓還是學到了很多東西,班上有些同學知道很多偏門黑道的技術,讓人歎為觀止。學無止境,的確如此。 



[ 打印 ]
閱讀 ()評論 (21)
評論
明亮 回複 悄悄話 我去我們樓下的那家。嗬嗬。差不太多吧。punny你去過黃石公園嗎?
punny 回複 悄悄話 你去哪家clyde啊,好像menu都不一樣的誒
明亮 回複 悄悄話 Outlier,嗯,你說得很對,練習其實可以,但真正要寫程序,推檔打和平球,這個程序永遠寫不完。但這其實是教你一種思維方式,就是先攻後守,所有攻擊都能化解了,內核也就robust了。而且,這個用在unit test多。真正用在functional test還是少。
做test其實是門學問的,行行出狀元的。最重要還是要學深學精一些。市麵上還有很多關於測試的書,講得也很科學全麵。做軟件難得是理論和現實需要平衡。大家都知道完美的應該怎麽做,可實際解決,全都受各種限製,執行起來就不是那麽回事了。
Outlier 回複 悄悄話 這個乒乓球模式的“遊戲”好玩,甚至可以打“和平球”,這樣可以永遠地推擋下去。不過,難道這種設計測試程序的方法是真在被用嗎?似乎覺得testing是很有意思的一個問題,但是好多人第一份工作拿到tester,都愁眉苦臉的。

階乘可以推廣的,程序就沒有那麽好寫了。

回複sorrowman的評論:

:) 你看樣子在幹很fundamental的東西,我是一點都不懂得。但是,如果你要做一個什麽graphical visualization的,我可以給你一些pointers。比如, OpenGL 當然可做 orthographic projection,更簡單一些。

關於階乘是不是可以有負數,你的對手如果是學數學出身的,也可能可以解釋。
sorrowman 回複 悄悄話 非常感謝!!!
明亮 回複 悄悄話 sorrowman, 你看看這個link:http://www.china1000.net/downinfo/9819.html 你還可以找找別的軟件也能做的。

嗬嗬,Mousa,我覺得寫程序大多都這樣的。

探長,你可以有以下選擇,1,寫個小程序,實時監控這個你要去的博客,用httpstream 傳回來contents,比較更新,送出個alert,可以發你郵件,然後你搶沙發。先進一些的,還可以自動post你的占沙發評論,甚至可以每天用不同評論占沙發。
2. 掐著孤草的脖子,讓她告訴你沙發出來了沒有。:)

阿貝,我新學了個dynamicProxy,貌似很有用。:)

punny,我們決心去clyde大吃一頓了。我這就預訂。回來向你匯報戰果。

墨淺,嗬嗬,是啊。不過不好一對多,那真成了天橋賣藝比武啦。:)

墨淺 回複 悄悄話 真熱鬧。乒乓球模式最好玩。有沒有多方混戰:幾個人寫測試程序,一個人寫真正的程序,要逐個單挑?
punny 回複 悄悄話 嘻嘻,明亮就那麽"輕描淡寫"的把人家給PK掉啦,這個過程肯定也很帶勁吧 ;-)
周四可以大吃一頓,好!回來匯報一下哦。
p.s. 我小時候最喜歡玩這個抽積木的遊戲了,還有遊戲棒 :)
阿貝 回複 悄悄話 回複明亮的評論:

我爸爸媽媽快要回去了,5555~~~
這樣的培訓真好玩兒,明亮好厲害,兩次讓你的partner認輸。我對你們課堂間交流的偏門黑道的技術有很強烈的好奇心。:)
agentsmith 回複 悄悄話 有沒有關於如何占沙發的偏門黑道的技術啊?:)這篇很有趣,嗬嗬。
白雲下的橄欖樹 回複 悄悄話 哈哈,跟數家珍一樣. 看來你在做你很感興趣的工作. 寫程序很累腦細胞, 等你媽媽來了真得給你做點好吃的. 每天盯電腦, 眼睛和脖子一定酸得要命.
Mousa 回複 悄悄話 我也是“晚來晚走”。作什麽事都沒有當過“早起的鳥兒”。
明亮 回複 悄悄話 嗬嗬,橄欖樹,你說得這幾種語言我大概都用過。最早是C,後來出現了object oriented在C基礎上C++大行其道,而C++複雜的memory allocation管理,thread管理等等,不如後來出生的JAVA 更靈活方便。但Java當初一直被認為performance不行,好多重要後台係統都不用Java,依舊用C++,甚至C。後來出現J2EE,發展了java可以用在enterprise的application上。而.NET是微軟跟大家open standard對著幹的,這個平台的確也有很多優點,又是一家控製,於是避免了一些爭吵浪費在standard製定上。
做係統之前一定要先做構架,好的構架要有open,flexibility等等特性,大係統裏麵會有小係統,再往下分模塊。每個模塊也要有好的設計,容易讀,容易改動,穩定等等。做好一個係統,和建一個漂亮的大樓一樣,可以有自己的“藝術”風格的。:)
明亮 回複 悄悄話 嗬嗬,孤草,學了不用就忘腦後了,也沒真正學到。當然最好要用了。要沒用的,幹脆就別學了。你放心,耐心地等,夏天還會卷土重來的。
白雲下的橄欖樹 回複 悄悄話 明亮,一個女子寫程序,不簡單啊. 問個問題,那C語言或C++ 和JAVA , .NET 有什麽區別嗎? 寫代碼之前,是不是先需要架構啊?
孤草 回複 悄悄話 夏天太短了,就好像這樣好玩的培訓,總是很快就過去了,然後就又要做牛做馬的幹活。

我很喜歡去參加培訓,學習新東西總是好的,不好的是要學以致用。
明亮 回複 悄悄話 孤草:我看你最近吃喝玩樂真是幸福啊。你別抱怨秋天了,你過夏天的時候,我們忍了很久很久啊。
還有阿貝姑娘,上次見了沒好好說上話,你父母也要過來了陪你了啊?恭喜。還有別氣孤草了,她本來就林黛玉,回頭她悲秋嗑血咱們可是擔當不起啊。:)
孤草 回複 悄悄話 沙發!
登錄後才可評論.