從這周開始,我被徹底調離原可以吃喝玩樂看窗外風景溫馨的小窩,發配到大教室做培訓一周。那裏每兩個人虎視眈眈看一個電腦,還要認真學習老師講課內容,做練習。最發愁的事情是要打亂我目前晃悠上班晚來晚走的作息時間,要提早起床一個小時。
今天是培訓第一天,我盡最大努力做到了沒有遲到。結果到了之後,後排的好位置電腦已經被早起的鳥兒占用了。我四下觀望半天,每走到一個位置,就有人提醒我,“那個位置已經被人占了。”果然,我看見一些筆記本占著位子,就好像大學自習室占位置一模一樣。我很有把他們的筆記本扔到一邊的衝動,想了想還是忍了。終於,在走過N個我認為的好位置之後,隻能坐在頭一排,和老師臉對臉了。這意味著我想利用培訓時間做些私活的計劃,徹底破產了。
培訓照例一來就大家自己介紹自己,說明自己到底想通過這個培訓達到一些什麽目標。教我們的老師J眉清目秀的,看著還算順眼。另一位是他們的VP,也是負責回答問題,控製進度,查看學生做練習的。我們一個班,大概10多個學生,都是從不同組湊過來的。大家都紛紛介紹了自己項目,很自豪。我發現來的程序員分成了兩個陣營。紅方就是我方,屬於JAVA陣營,藍方是微軟那套.NET陣營。雙方互相看不起對方,也有悄悄向對方轉型的,打算腳踏兩隻船,以後見風使舵。
培訓是關於一些自動檢測的方針,自動檢測的工具等等。上麵想讓我們把這部分做好,加強我們寫的軟件質量。很久沒有做培訓,發現目前IT行業還是與時俱進的有些新名詞。比如,今天學的就是TDD,全稱為Test Drive Development,當然還有BDD。這個老師喜歡捉對寫程序的方式。我也喜歡,因為可以一邊聊天一邊寫程序,還可以顯擺一下自己聰明的地方。而且,主要是承擔責任的人,一下就多了一倍。不過,最好還是能和聰明人配對,要不還是自己累。
我們練習了一種叫乒乓球模式的寫程序方法。這個真是好玩啊,不過效率其低。比如,我們練習寫一個做階乘的程序。要一個人先把測試程序寫好,另一個人寫真正的程序,但是隻要寫到剛剛能夠讓這個測試程序通過就可以了。然後這個寫程序的再寫一個測試程序,讓測試程序失敗。然後讓頭一個人在去修改原程序,然後再寫一個測試程序,也讓測試程序失敗。就好像打乒乓球一樣,你推我擋。直到最後一個人,實在懶不下去了,寫好真正的程序。這樣測試程序已經在這個過程中全麵建立,而且雙方都用了腦子,想到了很多種可能的情況。
和我配對的是以前我們一起做過一個特複雜問題的另一個組的.NET程序員。我們一聽這個比試聰明的辦法,就叫上勁兒了。這個和大家玩過那種搭積木,每次抽出一個方塊,看誰把這個積木最後弄倒誰輸的遊戲一樣,就看誰寫不出很多很多if else,必須寫真正的代碼了。我和這個.NET的程序員推擋了至少7個回合,最後還是以他先低頭了告終。我們還為階乘可不可以用負數爭執起來,我說不可以用負數,他說是可以的。官司打到老師那裏,老師推薦清官Wiki,再仔細閱讀了Wiki的定義之後,他心服口服的認輸了。
這種培訓都很講究互動,老師每講一段就讓大家做練習,還總結一些我們應該接著做些什麽,少做些什麽等等。大家都寫了小條貼到前麵的白板上。老師一個個讀給大家聽,采納建議。在一個我們應該更多的有什麽的欄目下,竟有人寫了:我們要更多的好吃的,要提供我們免費午餐。這本來是我的風格啊,看來這個班裏真是臥虎藏龍不少喜歡吃的人。結果,老師看了這個條子,想了想,說周四帶大家去好好吃一頓,他們公司請客。班上一片歡呼雀躍,覺得民主就是好。
培訓還是學到了很多東西,班上有些同學知道很多偏門黑道的技術,讓人歎為觀止。學無止境,的確如此。
做test其實是門學問的,行行出狀元的。最重要還是要學深學精一些。市麵上還有很多關於測試的書,講得也很科學全麵。做軟件難得是理論和現實需要平衡。大家都知道完美的應該怎麽做,可實際解決,全都受各種限製,執行起來就不是那麽回事了。
階乘可以推廣的,程序就沒有那麽好寫了。
回複sorrowman的評論:
:) 你看樣子在幹很fundamental的東西,我是一點都不懂得。但是,如果你要做一個什麽graphical visualization的,我可以給你一些pointers。比如, OpenGL 當然可做 orthographic projection,更簡單一些。
關於階乘是不是可以有負數,你的對手如果是學數學出身的,也可能可以解釋。
嗬嗬,Mousa,我覺得寫程序大多都這樣的。
探長,你可以有以下選擇,1,寫個小程序,實時監控這個你要去的博客,用httpstream 傳回來contents,比較更新,送出個alert,可以發你郵件,然後你搶沙發。先進一些的,還可以自動post你的占沙發評論,甚至可以每天用不同評論占沙發。
2. 掐著孤草的脖子,讓她告訴你沙發出來了沒有。:)
阿貝,我新學了個dynamicProxy,貌似很有用。:)
punny,我們決心去clyde大吃一頓了。我這就預訂。回來向你匯報戰果。
墨淺,嗬嗬,是啊。不過不好一對多,那真成了天橋賣藝比武啦。:)
周四可以大吃一頓,好!回來匯報一下哦。
p.s. 我小時候最喜歡玩這個抽積木的遊戲了,還有遊戲棒 :)
我爸爸媽媽快要回去了,5555~~~
這樣的培訓真好玩兒,明亮好厲害,兩次讓你的partner認輸。我對你們課堂間交流的偏門黑道的技術有很強烈的好奇心。:)
做係統之前一定要先做構架,好的構架要有open,flexibility等等特性,大係統裏麵會有小係統,再往下分模塊。每個模塊也要有好的設計,容易讀,容易改動,穩定等等。做好一個係統,和建一個漂亮的大樓一樣,可以有自己的“藝術”風格的。:)
我很喜歡去參加培訓,學習新東西總是好的,不好的是要學以致用。
還有阿貝姑娘,上次見了沒好好說上話,你父母也要過來了陪你了啊?恭喜。還有別氣孤草了,她本來就林黛玉,回頭她悲秋嗑血咱們可是擔當不起啊。:)