何必言精通——十年杂感
30虛歲了。這一、兩年,有事沒(méi)事之中口中經(jīng)常念著李商隱那首《錦瑟》:
錦瑟無(wú)端五十弦,一弦一柱思華年。莊生曉夢(mèng)迷蝴蝶;望帝春心托杜鵑。滄海月明珠有淚;藍(lán)田日暖玉生煙。此情可待成追憶,只是當(dāng)時(shí)已惘然。
此情可待成追憶,只是當(dāng)時(shí)已惘然。回首過(guò)去的十年,堪稱快意,十年里,領(lǐng)略了很多領(lǐng)域:新材料、寫作、技術(shù)管理、企業(yè)分析、軟件開(kāi)發(fā)等等,都留下了不深不淺的腳印:材料學(xué)是我本來(lái)的專業(yè),很順利的拿到碩士學(xué)位;其它成績(jī)也不平凡,小說(shuō)發(fā)表過(guò),書籍出版過(guò),項(xiàng)目主持過(guò),公司成立過(guò),可算豐碩。而今回想,卻只有一個(gè)詞:浮躁。
以開(kāi)發(fā)而言,起始于1997年mud程序開(kāi)發(fā),起步于網(wǎng)絡(luò)浪潮階段,asp呵呵。后來(lái)自然就過(guò)度到asp.net,C#。隨著項(xiàng)目需要,C++,java,Tcl,Python……用過(guò)的也不少。也曾經(jīng)癡迷過(guò)模式,那段時(shí)間買書都是從amazon上買,一個(gè)月幾千的書錢。而今回頭看,大浪淘沙,所余有價(jià)值東西不多,卻忽略了很多重要的東西,可見(jiàn)當(dāng)年的浮躁。
一、先談忽略的東西。
(1)英語(yǔ)。
十年前,那時(shí)SQL Server 還是 7.0,純英文的,找不到一個(gè)漢字。有一天,我要備份數(shù)據(jù)庫(kù),一看上面選項(xiàng):Backup……Restore……。當(dāng)時(shí)英語(yǔ)是三級(jí)左右,不認(rèn)識(shí)啊,我就猜:Store不是存儲(chǔ)嗎,Restore……再存儲(chǔ)不就是備份嗎?up不是起來(lái)嗎,Backup不就是把后面的東西拎上來(lái)嗎?于是,Restore被我理解成了備份,Backup被我理解成了恢復(fù)。結(jié)果:幾天的數(shù)據(jù)頓時(shí)灰飛煙滅。
英語(yǔ)的重要性怎么強(qiáng)調(diào)都不過(guò)分。第一點(diǎn),就開(kāi)發(fā)而言,大部分技術(shù)文檔都是英文的,讀英文能夠更加精確的掌握API,要盡可能的看英文文檔而不是翻譯過(guò)來(lái)的文檔。第二點(diǎn),就需求而言,一美元在老外眼中和一人民幣在我們心中的地位差不多,好幾倍的差距啊,英語(yǔ)好能夠更好的和他們溝通,賺這些票票。
哎,可憐我的啞巴英語(yǔ)。
(2)數(shù)學(xué)
只能以“當(dāng)時(shí)已惘然”來(lái)形容。
微積分、線性代數(shù)、概率論/隨機(jī)數(shù)學(xué)、數(shù)值分析這些大學(xué)數(shù)學(xué)的重頭戲,當(dāng)初年少輕狂,以為今后不會(huì)再用到就沒(méi)怎么認(rèn)真學(xué)。
隨機(jī)數(shù)學(xué)是后來(lái)最先用到的,做論文時(shí),我用基本的隨機(jī)數(shù)學(xué)工具結(jié)合一系列簡(jiǎn)單的表征巧妙的得到了材料的一些特性,于此體會(huì)到數(shù)學(xué)工具的威力。一年后,做離散事件仿真,也是隨機(jī)數(shù)學(xué)大放異彩。
最近在CSDN上看到了一個(gè)圖像識(shí)別項(xiàng)目,很快的我就做出原型出來(lái),到后來(lái),識(shí)別率卻上不去。要讓識(shí)別率上去,需要用到神經(jīng)網(wǎng)絡(luò)、Hough變換等數(shù)學(xué)工具。《模式分類》一書看了大半,就把在我大腦中昏睡十年的微積分、線性代數(shù)、數(shù)值分析都喚醒了。暈倒,什么神經(jīng)網(wǎng)絡(luò),搞過(guò)來(lái)搞過(guò)去還不就是求極值,當(dāng)初大學(xué)的《數(shù)值分析》換了個(gè)馬甲而已。
(3)執(zhí)著
擅長(zhǎng)十件事情不如只擅長(zhǎng)一件事情。回想十年,我的另一大失策便是擅長(zhǎng)的事情太多。別人只用把精力放在一件事情之上,我卻需要將它放在多件事情之上。當(dāng)初大家都處于差不多同一起跑線上,而今,大學(xué)同學(xué)差不多已步入職業(yè)生涯的上升期,堅(jiān)持創(chuàng)業(yè)的狐朋狗友也有小成,堅(jiān)持寫作的狐朋狗友也成了知名作家,而多條腿走路的我卻離起點(diǎn)并不太遠(yuǎn)。用軍事話語(yǔ)說(shuō),就是犯了分兵之大忌。
(4)規(guī)范
學(xué)習(xí)規(guī)范是最廉價(jià)的學(xué)習(xí)方式,關(guān)注于工具,忽略規(guī)范往往會(huì)付出很大的成本。以我自身的例子來(lái)說(shuō),我開(kāi)發(fā)了很長(zhǎng)時(shí)間的Spider,卻沒(méi)有閱讀過(guò)Html規(guī)范,最近將html 1.1規(guī)范打印出來(lái)再看,發(fā)現(xiàn)自己之前對(duì)html有很多的誤解,有很多bug源于這些誤解。
從北京回到我現(xiàn)在的城市,關(guān)于.net的電腦書,我只帶了一本,就是《.net程序設(shè)計(jì)規(guī)范》,而在這之前,規(guī)范卻是我一直忽略的。
二、再談體會(huì)。
(1)價(jià)值
無(wú)論做什么事情,腦中都要有這個(gè)詞——價(jià)值。沒(méi)有價(jià)值的東西,易變,不易把握,不易長(zhǎng)久。追逐技術(shù),需要考慮價(jià)值問(wèn)題。我們是為了實(shí)現(xiàn)價(jià)值去學(xué)習(xí)技術(shù),而不是單純的為了技術(shù)而技術(shù)。
技術(shù)的價(jià)值體現(xiàn)在:
·解決問(wèn)題。如,實(shí)現(xiàn)一個(gè)功能。
·提高生產(chǎn)力。如,實(shí)現(xiàn)同樣的功能,引入框架可以縮短開(kāi)發(fā)周期,提高質(zhì)量。
·提供良好的產(chǎn)品或體驗(yàn)。如,Ajax。
能夠有效的解決問(wèn)題的人是領(lǐng)域?qū)<摇D軌蛱峁┳銐虻纳a(chǎn)力的人是技術(shù)專家。能夠提供良好的產(chǎn)品或體驗(yàn)的人是產(chǎn)品專家。
可以經(jīng)常問(wèn)問(wèn)自己:
(a)有哪些待解決的問(wèn)題呢?
技術(shù)的發(fā)展是對(duì)生活的解構(gòu)與重構(gòu)。計(jì)算機(jī)技術(shù)的發(fā)展成功的解構(gòu)與重構(gòu)了印刷術(shù),避孕技術(shù)的發(fā)展成功實(shí)現(xiàn)了做愛(ài)與生殖的分離。
我們能否通過(guò)技術(shù)將美味與美味的載體分離呢?能否有可編程美味芯片呢?
這個(gè)問(wèn)題很有意思,不過(guò)太大了,在短期十年二十年可能都不會(huì)實(shí)現(xiàn)。
換個(gè)小點(diǎn)的。以股市為例。股民的預(yù)期對(duì)股市價(jià)格有很大影響,而股民的輿論可以在某些方面反映股民的預(yù)期,互聯(lián)網(wǎng)是一個(gè)很大的輿論平臺(tái)。如果能夠發(fā)現(xiàn)股市輿論和未來(lái)股價(jià)之間的關(guān)聯(lián),并且通過(guò)網(wǎng)絡(luò)輿論監(jiān)測(cè)和數(shù)據(jù)挖掘來(lái)測(cè)量股民的輿論,這樣的系統(tǒng)是有價(jià)值的。
(b)有哪些提高生產(chǎn)力的方法呢?
影響軟件生產(chǎn)力的有幾個(gè)因素,人力是一個(gè)因素,開(kāi)發(fā)過(guò)程是一個(gè)因素,技術(shù)的基礎(chǔ)設(shè)施是一個(gè)因素,需要綜合考慮來(lái)進(jìn)行技術(shù)決策,而并非盲目的學(xué)習(xí)新技術(shù),學(xué)習(xí)新方法。
(c)如何提高用戶體驗(yàn)?
有時(shí)候,我們拿到新工具了,卻往往忘了我們?yōu)槭裁匆迷摴ぞ摺R?/span>ajax為例,ajax通常能夠提高用戶體驗(yàn),但它也能夠破壞用戶體驗(yàn)。比如,我的gmail信箱經(jīng)常登陸不上去,必需清空歷史數(shù)據(jù),清空里面的js緩存才能夠正常登錄。再比如,前一段時(shí)間的china-pub搜索功能80%情況下用不了。這樣,就違背了它本欲實(shí)現(xiàn)的價(jià)值。
順便罵一下csdn,怎么看怎么像雜貨鋪。
技術(shù)這東東只能是媒介,可能變動(dòng)很快,但是價(jià)值卻很少發(fā)生變化,就如男男女女,花里胡哨的,無(wú)非就那點(diǎn)事情,換換馬甲而已。
(2)競(jìng)爭(zhēng)力
嘿嘿,有價(jià)值的東西未必有競(jìng)爭(zhēng)力,比如,水,生命中不可缺少,卻是超級(jí)的便宜。無(wú)它,易得而已。同質(zhì)的東西多了,競(jìng)爭(zhēng)力就下來(lái)了。
就做技術(shù)的人來(lái)說(shuō),競(jìng)爭(zhēng)力主要集中于:
·深入??? 一件事情做得比其他人都好,弄的透徹,自然就具有競(jìng)爭(zhēng)力。走這條路需要的是耐心。
·細(xì)分 把一件事情做出花樣出來(lái),在滿足客戶基本需求基礎(chǔ)之上,同時(shí)相比其它競(jìng)爭(zhēng)者,能夠更好的滿足客戶的其它需求。走這條路需要的是對(duì)需求的研究和掌握。
·前瞻 在未來(lái)的事情發(fā)生之前,便弄一些東東等在那里。放眼天下:舍我其誰(shuí)。這條路需要的是洞察力和毅力,還有很大的運(yùn)氣成分。
最近在網(wǎng)上接活,有個(gè)很有意思的發(fā)現(xiàn)。
感覺(jué)活分兩種:
一種活你干的時(shí)間越長(zhǎng),單位時(shí)間里得到的報(bào)酬越少,因?yàn)檫@些活不急又具備很強(qiáng)的競(jìng)爭(zhēng)性,發(fā)布者在心理上是按著市場(chǎng)價(jià)進(jìn)行定位的。
一種活你干的時(shí)間越短,你的總報(bào)酬就越多,因?yàn)檫@些活又急,能做的人又不多,或者能做的人雖多,但是能在短時(shí)間內(nèi)做出來(lái)的人極少。你做的越快,得的錢越多。發(fā)布者根據(jù)心理價(jià)進(jìn)行定位的。
你適合干哪種活呢?作為技術(shù)人員,我們需要經(jīng)常思考自己的競(jìng)爭(zhēng)力。
(3)靜下心來(lái)時(shí)看看毛選
三、對(duì)一些技術(shù)的評(píng)價(jià)(個(gè)人立場(chǎng))
(a).Net 3.5/VS 2008
感覺(jué)最爽的是屬性那一塊不用寫具體的get, set了,使代碼一下子清潔了很多。
擴(kuò)展方法是個(gè)好禮物:它可以使我們的關(guān)注點(diǎn)更好的集中在對(duì)象上。沒(méi)有它,之前要寫很多很多helper類,而到具體用時(shí),要去仔細(xì)去翻這些helper類,浪費(fèi)時(shí)間,浪費(fèi)腦細(xì)胞。尤其是和ActiveRecord結(jié)合在一起用真是順暢啊。
Linq:怎么看怎么像馬甲。目前還沒(méi)發(fā)現(xiàn)需要用到它的地方。
Lambda:C#下不能自動(dòng)推導(dǎo)類型,用處僅限于節(jié)省點(diǎn)語(yǔ)句,解決一個(gè)問(wèn)題(少寫語(yǔ)句)的同時(shí)又引入新問(wèn)題(多掌握一點(diǎn)語(yǔ)法),毛用沒(méi)有。
Silverlight:沒(méi)興趣。
SOA:沒(méi)興趣。
(b)OO
DP:忘記差不多了,心中只記得一條,就是策略模式。話說(shuō)編程時(shí)間長(zhǎng)了,這玩意就是水一樣的存在,寫代碼自然而然就那樣子了。反而是OO設(shè)計(jì)的那幾條準(zhǔn)則是時(shí)間越久,記憶越深刻,體會(huì)越多。
UML:不做大項(xiàng)目的話,毛用沒(méi)有。
四、我心目中的優(yōu)秀程序員:
(1)有1-2個(gè)自己擅長(zhǎng)的領(lǐng)域。比如Web前端開(kāi)發(fā),就得擅長(zhǎng)html,css,js那些東東。偏業(yè)務(wù)的,就得擅長(zhǎng)需求分析、建模、溝通。
(2)掌握一種適合自己又能被團(tuán)隊(duì)/公司/客戶接受的軟件開(kāi)發(fā)過(guò)程。
(3)熟悉相關(guān)的技術(shù)基礎(chǔ)設(shè)施(基本工具,基本框架)
總結(jié)
以上是生活随笔為你收集整理的何必言精通——十年杂感的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: vs2010本地调试打不开网页
- 下一篇: asp文件上传和下载
