最近這一年來由于公司的原因,連續(xù)不斷的在不同的項目(技術)之間切換,當然這里說的不是編程語言,而是語言之外的東西;比如,之前寫WINDOWS UI程序,然后需要寫WINDOWS網(wǎng)絡程序;或者之前是從事視頻編解碼器的工作,然后參加P2P項目的開發(fā),考慮網(wǎng)絡路由算法等。
由于有了一些年的開發(fā)經(jīng)驗,一般項目即使在剛開始接觸的時候也還是可以理解,也不覺得有太多復雜的東西,但隨著接觸的深入,其實不是這么回事,除了知識不說,經(jīng)驗就是需要靠多實踐和時間換來的。
軟件開發(fā)需要至少涉及到兩大部分知識:
首先是軟件開發(fā)本身的技術,包括編程語言,數(shù)據(jù)庫,網(wǎng)絡,操作系統(tǒng),以及各種API或第三方庫,當然還有其他一些幫助開發(fā)的框架和工具,這些東西沒有接觸過還是需要一定的時間去了解。另一大部分是關于軟件開發(fā)所涉及的領域知識;例如:如果你從事視頻編解碼器的編寫,那么領域知識就是視頻編解碼器的工作原理,如果你參見P2P項目,那么P2P網(wǎng)絡的算法就是領域知識;如果為企業(yè)客戶做MIS,那么他們的流程就是領域知識。領域知識肯定需要學習,因為你不會都接觸過。
因此下面這是我的一些總結:
1.一個月內能了解概念,可以工作,不會拖團隊的后腿。
2.3-6各月內才能談得上真正的理解。沒有這么長時間的深入思考,對其理解也是非常膚淺的,即使你說你已經(jīng)很了解了。
3.最好是自己能實現(xiàn)一些東西,并投入運行后觀察問題,才能得出自己的見解,并才會可能成為專家。
這里可以說說經(jīng)驗是什么了。按照我的理解,經(jīng)驗就是將一些知識應用到實際中的一些遭遇。知識偏重理論,應用起來才能成為產(chǎn)品;經(jīng)驗來自我們一行行代碼的編寫,一段段程序的調試;當然還有很多BUG的修改和系統(tǒng)CRASH。
因此看來不要在一開始太驕傲自己了解多少,也應該要尊重有實際經(jīng)驗的人;正如有人說:了解越多才知道自己知道的越少。