2009年2月27日 星期五

[轉載] 昨天上的囧課

其實該囧課是和准將一起上的,直接轉他的心得來

=========== 轉載開始 ===========

今天去上某個關於程式寫作標準制定的課程。
不過上的很囧….
(課程單位跟講師名稱我就不寫了。這是搜尋引擎的時代,小心點好)

撇開講師對時間控管很差還有花半個小時自我介紹不知道要幹麻,
還有叫我們自我介紹說可以了解我們的傾向但實際上卻完全沒用外,
他顯然觀念有很嚴重的誤差。跟實際程式設計上的。
(噢好,這樣好像不太客觀,就說跟我的觀念有很嚴重的誤差好了)

首先,他很顯然的把Coding Standard、Code Review、
規格書制定、時程制定全部混為一談。
是的,這些都是軟體管理方面的事務,可是並不是都一樣。
更何況這堂課叫Coding Standard。
幫我個忙,中華網龍那個案例怎麼看都是規格書制定層級的問題。
另外匈牙利命名法的確是個不錯的教材,
不過他也跟Coding Standard沒什麼關係。
它可以跟規格書有關,也可以跟Code Review有關,
不過就是跟Coding Standard沒直接關係。

不過這還不是這堂課最糟糕的地方。
更糟的是,下半堂他開始教我怎麼寫C++。
那個,我不需要你教我C++有靜態變數跟區域性資料,
我也從來沒有寫過/看過在行首放個$的C++程式碼。
還有我並不覺得盡量減少區塊變數是個好主意。
另外現在的C Compiler都有支援//了。
使用enum每個都自己給定數值更不是件好事。

其他他關於Pseudo Code還有Java的教學我就認了。
最讓我覺得囧的是他講義裡面提了個什麼軟體藍領。

什麼是軟體藍領呢?

根據裡面的定義(抱歉我也是第一次看到),
軟體藍領就是說,上面的人寫好規格書往下扔,
下面那堆Coding Monkey--不管他們到底有多會寫程式,
是寫了十年的老手還是剛學C++三個月的菜鳥,
都能啪啪啪的打成一個完全無錯的漂亮程式!有沒有很神!

來我用一般人都懂的方式翻譯一下這句話。
用寫小說來類比的話就是,只要你故事大綱寫的夠完整,
扔給一群不會寫小說只會打字的人,他就會幫你寫成一本神雕俠侶了!

你覺得很荒謬嗎?顯然的有人不覺得呢。

寫小說為什麼複雜?因為要兼顧到文字的美感、故事的流暢、
角色的感情、如何牽動讀者的心讓他們不能自拔。

寫程式為什麼複雜?因為它要同時滿足執行的機器的限制,
還有使用者的感官需求還有使用用途。
軟體很複雜,因為用他的人很複雜。

如果一個小說大綱好到誰都能打出來,那那份大綱就是小說本身了,
被交付大綱的人算不上寫作者,是打字員。
工作是省不掉的,大綱還是要小說作者本身來寫,而高水準的作者就那幾位。
那麼這種代工行為有意義嗎?
(既然這位講師提到了Joel on Software,我也來提一提吧。
這篇有講到些關於這點的事情,有興趣的人可以去逛逛。是中文的,放心)

==
好吧最後我要總結。其實我囧的不是因為這課上很爛。
不是因為我花了錢(錢是公司出的,好家在),也不是因為我浪費了一整天。

我頭痛的是有這樣的講師。頭痛的是課堂上有人對他的講解反應熱烈。

想想看,這種講師一定不只一個,然後每個可能教出幾十幾百個學生。
這課顯然是為主管開的(我們工程師聽的臉上三條線呢),
所以會產生出幾百幾千個相信這種東西的主管--

台灣的資訊產業,看來地雷叢生呢。

==
難怪人月神話Peopleware都出了二十年了,這行業還是這麼痛苦。


=========== 轉載結束 ===========

基本上我的感想一樣這樣 -_-
ㄊㄇㄉ要是遇到這種主管我就囧到炸了……

沒有留言:

CODE { display: block; /* fixes a strange ie margin bug */ font-family: Courier New; font-size: 8pt; overflow:auto; background: #f0f0f0 url(http://klcintw.images.googlepages.com/Code_BG.gif) left top repeat-y; border: 1px solid #ccc; padding: 10px 10px 10px 21px; max-height:200px; height:200px; // for IE6 line-height: 1.2em; } #quote { display: block; /* fixes a strange ie margin bug */ font-family: Verdana; font-size: 10pt; overflow:auto; background: #f7f7f7 url(http://lh5.ggpht.com/_z-VThISftkI/SXUlpyfw9ZI/AAAAAAAABYY/e3GUx9_Z4TE/s288/quote-l.gif) left top no-repeat; border: 4px dotted #ccc; padding: 15px 15px 15px 31px; /*up right bottom left*/ max-height:300px; line-height: 1.2em; }