廬山回來后就沒寫過blog了,不過每天晚上跑步倒是一直在堅(jiān)持。寫blog的目的是對自己學(xué)習(xí)成長的記錄、反省和促進(jìn),貴在堅(jiān)持。上個(gè)星期用java寫了個(gè)評估項(xiàng)目CPM的小程序,實(shí)踐了hibernate、xDoclet,練習(xí)了反復(fù)Refactor+TDD的開發(fā)方式,感覺很爽。當(dāng)做到PERT計(jì)算功能時(shí)發(fā)現(xiàn)需要查正態(tài)分布表,google查了查沒找到第三方的java數(shù)學(xué)運(yùn)算包。直到在圖書管看書時(shí)才發(fā)現(xiàn)用編程進(jìn)行復(fù)雜的函數(shù)運(yùn)算的方法是屬于《計(jì)算方法》課的,奇怪我們專業(yè)為什么不開這門課。發(fā)現(xiàn)自己知識結(jié)構(gòu)上的一個(gè)空白。
前幾天做操作系統(tǒng)作業(yè),順便看了看《Concurrent Programming in Java: Design Principles and Patterns》,確信《程序員》第三期上關(guān)于Mutex的一段代碼完全是錯(cuò)誤的,又給《程序員》編輯發(fā)了mail(上次發(fā)了mail后了無音訊)。沒想很快到過了收到編輯和作者的回復(fù),確認(rèn)了錯(cuò)誤。倒不是說出了錯(cuò)就說明作者水平不高,java相關(guān)技術(shù)太多了,軟件開發(fā)相關(guān)技術(shù)就更多了。我想說的的是搞軟件開發(fā)雖然是個(gè)智力活動(dòng),但終究談不上需要極高的天賦才行(不像數(shù)學(xué)這樣的基礎(chǔ)理論學(xué)科)。作者也是人,當(dāng)然也會(huì)犯錯(cuò)誤。國外的那些軟件大牛也是人,他們也是一步一步成長起來的,其實(shí)并不是在神壇上高不可攀。那為什么國內(nèi)高手少呢?環(huán)境所致。記得好像是在白云上看過有個(gè)人說“Linus好牛,20歲就搞出了linux,我們20歲能干嗎”,下面有個(gè)人回帖說“那是他在Stanford,要是把你丟在那,你說不定也能做出個(gè)XXX來”。
HeadStorm是我很欽佩的一位程序員,工作了幾年后憑著不停的學(xué)習(xí)、實(shí)踐對j2ee應(yīng)用開發(fā)技術(shù)有了較高的造詣。在圈內(nèi)取得一定成績后又及時(shí)地認(rèn)清了自己的目標(biāo),做一個(gè)全面的技術(shù)高手,要“往下走”,而不是安于“j2ee架構(gòu)師”這個(gè)名頭。說到“往上走”和“往下走”之爭,想到兩個(gè)不好笑的小笑話。第一個(gè)是有天聽到幾個(gè)同學(xué)談?wù)撻_發(fā)軟件,一個(gè)同學(xué)說開發(fā)mis沒意思,另一個(gè)同學(xué)就說:“那你去寫匯編啊,寫底層驅(qū)動(dòng)啊,那個(gè)有技術(shù)含量。”第二個(gè)是有次聽武大計(jì)算機(jī)系某老師說:“java有什么了不起,我用c一樣可以實(shí)現(xiàn)多態(tài)、繼承。”第一個(gè)笑話不加評論。第二個(gè)笑話讓我想起以前一直流傳的一句話:“學(xué)程序,什么語言都一樣。”個(gè)人覺得這句話是帶有很大的誤導(dǎo)成分的。語法層面上,基本的順序、選擇、循環(huán)語句是差不多;但要你實(shí)際做開發(fā)應(yīng)用呢,你還能說用啥都一樣嗎。不同的語言,設(shè)計(jì)者在最初設(shè)計(jì)語言特性時(shí)就決定了該語言最有效的應(yīng)用領(lǐng)域。Ruby之類的動(dòng)態(tài)語言現(xiàn)在大放光彩也是有其理由的。在“向上走”的時(shí)候也要注意提醒自己“勿筑高臺于浮沙”。技術(shù)無盡的,時(shí)間是有限的,要學(xué)習(xí)什么,學(xué)到什么程度,得有清醒的頭腦。
說到學(xué)習(xí)技術(shù),決定開始研究Flex了,看了兩天,感覺還不錯(cuò)。這才是程序員需要的表現(xiàn)層方案,拖放好控件,再編寫用戶交互的script就完了,至于很cool的頁面表現(xiàn)效果的是如何做到的,那是Macromedia的事情。什么struts、webWork之流都是自娛自樂,并不能給用戶帶來多大的使用體驗(yàn)。JSF想法還不錯(cuò),可有多少人支持呢。你說你表現(xiàn)層框架技術(shù)再先進(jìn),可表現(xiàn)出來的交互界面像yts一樣,對用戶來說還不如回到c/s的懷抱。js的登頂之作也就是Bindows了,還不就那樣。一句話,非常看好Flex!Laszlo也還行,但終究沒有Flex感覺好,而且是開源的,技術(shù)支持也沒Flex強(qiáng)。Flex還有一個(gè)很好的可視化開發(fā)工具——FlexBuilder,大大加快了開發(fā)效率。