無(wú)意中讀到這篇文章,正是我一段時(shí)間以來(lái)思考和困擾的問(wèn)題。雖然從這篇文章里并沒(méi)有看到太好的解決方案,不過(guò)也能讓人思考些東西!自己的路可能還是要自己來(lái)走!
轉(zhuǎn)載自:
http://blog.csdn.net/g9yuayon/archive/2006/09/18/1236675.aspx這周讀到三篇博客帖子。把它們串在一塊兒讀,對(duì)我們的職業(yè)發(fā)展非常有教育意義。
一篇是
Thoughtworks前員工Ravi Mohan寫(xiě)的,《
但是馬老大,商業(yè)編程就是無(wú)聊》。Martin Fowler在
一篇帖子里說(shuō),編寫(xiě)企業(yè)軟件不光是搗騰數(shù)據(jù)。并不是只有解決算法問(wèn)題,操縱硬件,和應(yīng)用大量數(shù)學(xué)才有意思。關(guān)心顧客(馬丁所謂的客戶親和力),全力讓自己的軟件為客戶帶來(lái)商業(yè)利益也是挑戰(zhàn)所在,趣味所存。Ravi在帖子里不以為然,認(rèn)為不管
Martin Fowler怎么辯白,商業(yè)編程無(wú)趣是不爭(zhēng)的事實(shí)。不信可以看看人心所向。從來(lái)只見(jiàn)有天賦的程序員屁顛屁顛地去開(kāi)發(fā)編譯器,操作系統(tǒng),TCP/IP stack, 大規(guī)模并行系統(tǒng),高性能服務(wù)器,游戲引擎等系統(tǒng)級(jí)軟件。哪怕優(yōu)秀的商業(yè)軟件程序員也無(wú)限渴望去開(kāi)發(fā)系統(tǒng)軟件。相反,從來(lái)沒(méi)見(jiàn)那個(gè)能靠系統(tǒng)開(kāi)發(fā)軟件掙錢(qián)的牛程無(wú)限向往開(kāi)發(fā)商業(yè)軟件。這好比柏林墻沒(méi)倒前,只見(jiàn)東德人拼死沖到西德去,沒(méi)見(jiàn)有什么西德人拼死要到東德去的(憤青們就不用和我爭(zhēng)論東德怎么好了哈。Ravi自己的例子而已。東德好不好關(guān)我P事)。Ravi還說(shuō),哪怕
Thoughtworks內(nèi)部員工也無(wú)限向往系統(tǒng)編程。每次Thoughtworks討論把生意擴(kuò)展到嵌入式編程和非其它非企業(yè)計(jì)算領(lǐng)域時(shí),Thoughtworks的員工們都士氣高漲。然后Ravi引了老憤青Paul Graham的話,
號(hào)稱(chēng)集中精力攻克困難但定義清晰的問(wèn)題完全是出于自我保護(hù)的需要,因?yàn)槌商旖鉀Q瑣碎問(wèn)題不能讓人學(xué)到任何東西,只能讓人變蠢。做系統(tǒng)編程給人的滿足感比做瑣碎的商業(yè)編程大多了。Ravi進(jìn)一步談到Martin Fowler其實(shí)也承認(rèn)商業(yè)軟件開(kāi)發(fā)遇到的問(wèn)題太過(guò)隨意,很多都是為了滿足客戶莫名其妙的要求,不會(huì)帶給程序員成長(zhǎng)的機(jī)會(huì)。他尤其贊同Martin說(shuō)的“
商業(yè)編程的真正挑戰(zhàn)在于找到軟件中能給客戶的生意帶來(lái)切實(shí)利益的東西。要做到這點(diǎn),我們需要扎實(shí)的行業(yè)知識(shí)和技術(shù)功底。”。可惜的是,大多數(shù)商業(yè)軟件程序員處于尷尬的境地:論行業(yè)知識(shí)不如行業(yè)專(zhuān)家。論編程技術(shù)不如真正的hacker(黑客這個(gè)詞已經(jīng)等同于cracker了,所以我還是用原文)。當(dāng)然,這種尷尬情況在其它編程領(lǐng)域也存在,但癥狀沒(méi)有那么嚴(yán)重。搞笑的是,Ravi說(shuō)其實(shí)Martin算是商業(yè)程序員里比較幸運(yùn)的,總有機(jī)會(huì)和牛人們合作,找出他的代碼到底有什么商業(yè)價(jià)值,而這和普通的“編碼人”有本質(zhì)區(qū)別。這也是為什么外包的工作如此無(wú)趣的原因:商業(yè)方面的分析已經(jīng)定了。編碼的框架已經(jīng)定了。承接外包項(xiàng)目的程序員發(fā)揮余地實(shí)在有限,更不用說(shuō)趣味二字了。作者的要點(diǎn)是,要想讓自己的工作變得有趣有意義,要么就下大力氣變成業(yè)務(wù)專(zhuān)家。要么就變成可以玩兒轉(zhuǎn)系統(tǒng)的編程高手。其實(shí)系統(tǒng)編程高手也是業(yè)務(wù)專(zhuān)家。只不過(guò)他們的業(yè)務(wù)領(lǐng)域恰好和技術(shù)領(lǐng)域重合。
?
第二篇帖子是
Reg Braithwaite的一篇帖子,
《商業(yè)編程沒(méi)有那么難?》。這篇帖子同時(shí)引了Reganwald另外一篇短文,
《怎么讓編程變得困難》。Reg在兩篇文章里都談到了同樣的一個(gè)觀點(diǎn):商業(yè)編程從表面上看來(lái)都是廣泛而膚淺的。程序員有大量問(wèn)題要解決,但沒(méi)有什么問(wèn)題特別深刻。哪怕你用最新的技術(shù)都不足以讓普通的商業(yè)編程變得更有意義。用Reg的話來(lái)說(shuō)就是用Ruby On Rails編程好比聆聽(tīng)Jaco Pastorius,什么人都能干。只有在復(fù)制Jaco的盛宴時(shí)才能真正獲取學(xué)習(xí)經(jīng)驗(yàn)。還是以RoR為例。用RoR遠(yuǎn)遠(yuǎn)不夠(其實(shí)不用也無(wú)所謂)。仔細(xì)研究RoR的代碼,學(xué)習(xí)怎么設(shè)計(jì)自己的DSL才是正道。在
《商業(yè)編程沒(méi)有那么難?》里面,Reg舉了三個(gè)例子。一個(gè)是從信用卡的使用情況實(shí)時(shí)判斷被使用的信用卡是否被盜。一個(gè)是實(shí)時(shí)卡車(chē)調(diào)度問(wèn)題,能針對(duì)路礦和遞送要求優(yōu)化卡車(chē)路線和發(fā)車(chē)時(shí)間表。還有一個(gè)是銷(xiāo)售輔助系統(tǒng),能學(xué)習(xí)潛在客戶的特質(zhì),幫助銷(xiāo)售決定是否跟進(jìn)。嗯,兩個(gè)模式識(shí)別和學(xué)習(xí)問(wèn)題,一個(gè)調(diào)度和網(wǎng)絡(luò)流優(yōu)化問(wèn)題。都是非常有挑戰(zhàn)性的問(wèn)題。都可以讓一個(gè)普通的商業(yè)項(xiàng)目變得趣味十足(當(dāng)然也能讓我們的壓力陡增)。當(dāng)然,如果你對(duì)每月一張固定的工資單感到滿意,知道自己的工作馬上就要外包給西貢的大學(xué)生也能安然入睡,就不用自找麻煩了。作者的要點(diǎn)就是:挑戰(zhàn)不是別人給的,而是在勃勃雄心驅(qū)使下,你自己找的。也許以后做每個(gè)項(xiàng)目時(shí),我們應(yīng)該給自己找點(diǎn)有挑戰(zhàn)性的問(wèn)題,激發(fā)自己的潛力。不然做的項(xiàng)目再多,也不過(guò)浪費(fèi)人生。
?
第三篇帖子是XML發(fā)明人
Tim Bray的一篇
短文。在Tim的
努力下,JRuby的兩個(gè)主程加入了Sun。新聞公布后Tim收到幾乎所有JVM語(yǔ)言作者的詢問(wèn),問(wèn)為啥子Sun獨(dú)選了JRuby那倆哥們,能不能給其它JVM語(yǔ)言也提供支持。于是Tim談了JRuby受到重視的原因。首先,沒(méi)人要求,沒(méi)人給錢(qián)的情況下,這倆老大投入大量精力,運(yùn)用各種技術(shù)把半死的JRuby項(xiàng)目盤(pán)活了。其次,JRuby背后有活躍的社區(qū)(大半因?yàn)镽ails的風(fēng)潮)。第三,他們善于交流,到處做報(bào)告,做讓人印象深刻的演示,展示項(xiàng)目進(jìn)展。第四,他們不斷發(fā)放高質(zhì)量的代碼。每個(gè)版本都較上個(gè)版本有長(zhǎng)足進(jìn)步。也就是說(shuō),他們證明了自己的能力,展示了自己的領(lǐng)導(dǎo)才能,更重要的是他們不斷交出優(yōu)秀的作品。職業(yè)培訓(xùn)里常說(shuō)要想事業(yè)順利,要做到兩點(diǎn),搞出事(make things happen),和搞定事(make things done)。JRuby是個(gè)很好的例子。
?
帖子的教育意義很明顯,俺就不用在羅嗦了吧?
posted on 2007-02-20 16:14
cresposhi 閱讀(884)
評(píng)論(4) 編輯 收藏