當然,由於各個專業領域的差別,這裡舉作業系統、編譯器、tcp/ip協議只是作為例子,並不代表成為"大牛"一定需要掌握這些知識,以時下熱門的多核程式設計來說,如果你能比牛人們更深入地掌握其中的各種思想原理,能更加自如的運用,並有能力去實現乙個象開源專案tbb庫一樣的東西,也可以成為"大牛",又或者你能寫出乙個類似apache一樣的伺服器,或者寫出乙個資料庫,都可以成為"大牛"。
要成為"大牛"並不是一件簡單的事情,需要付出比牛人們多得多的努力,一般來說,至少要看過200~400本左右的專業書籍並好好掌握它,除此之外,還得經常關注網路和期刊雜誌上的各種最新資訊。
當"牛人"晉公升為"大牛",讓"牛人們"發現有比他們更牛的人時,對"牛人"們的心靈的震撼是可想而知的。由於牛人們的數量龐大,並且牛人對大蝦和菜鳥階層有言傳身教的影響,所以大牛們通常能獲得非常高的社會知名度,幾乎可以用"引無數菜鳥、大蝦、牛人競折腰"來形容,看看前面提過的linus torvalds等大牛,應該知道此言不虛。
雖然成為"大牛"的條件看起來似乎很高似的,但是這層樓並不是很難爬的一層,只要通過一定的努力,素質不是很差,還是有許多"牛人"可以爬到這一層的。由此可知,"大牛"這個樓層的人數其實並不像想像的那麼少,例如比爾·蓋茨之類的人好像也是屬於這一層的。
由於"大牛"這層的人數不少,所以也很難統計除到底是中國的"大牛"數量多還是西方的大牛數量多?我估計應該是個旗鼓相當的數量,或者中國的"大牛"們會更多一些。
看到這裡,可能會有很多人會以為我在這裡說瞎話,linus torvalds寫出了著名的linux作業系統,我國並沒有人寫出過類似的東西啊,我國的"大牛"怎麼能和西方的比呢? 不知大家注意到沒有,linus torvalds只是寫出了乙個"象模象樣"的作業系統雛形,linux後來真正發展成聞名全球的開源作業系統期間,完全是因為許多支援開源的商業公司如ibm等,派出了許多比linus torvalds更高樓層的幕後英雄在裡面把它開發出來的。
可能有些菜鳥認為linus torvalds是程式設計師中的上帝,不妨說個小故事:
linus,richard stallman和don knuth(高德納)一同參加乙個會議。
linus 說:"上帝說我創造了世界上最優秀的作業系統。"
richard stallman自然不甘示弱地說:"上帝說我創造了世界上最好用的編譯器。"
don knuth一臉疑惑的說:"等等,等等,我什麼時候說過這些話?"
由此可以看出,linus torvalds的技術水平並不像想像中那麼高,只是"牛人"和"大蝦"覺得"大牛"比他們更牛吧了。在我國,有一些當時還處於"大蝦"層的人物,也能寫出介紹如何寫作業系統的書,並且書寫得非常出色,而且寫出了乙個有那麼一點點象模象樣的作業系統來。我想中國的"大牛"們是不會比西方差的,之所以沒有人寫出類似的商業產品來,完全是社會環境的原因,並不是技術能力達不到的原因。
"大牛"們之所以成為大牛,主要的原因是因為把"牛人"給蓋了下去,並不是他們自己覺得如何牛。也許有很多菜鳥、大蝦甚至牛人覺得"大牛"這層已經到頂了,但大多數"大牛"估計應該是有自知之明的,他們知道自己現在還沒有爬到半山腰,也就勉強能算個半桶水的水平,其中有些爬到這層沒有累趴下,仍然能量充沛,並且又有志者,還是會繼續往更上一層樓爬的。
看到這裡,也許有些菜鳥、大蝦、牛人想不明白了,還有比"大牛"們更高的樓層,那會是什麼樣的樓層?下面就來看看第5層樓的奧妙。
當大牛們真正動手做乙個作業系統或者類似的其他軟體時,他們就會發現自己的基本功仍然有很多的不足。以記憶體管理為例,如果直接抄襲linux或者其他開源作業系統的記憶體管理演算法,會被人看不起的,如果自動動手實現乙個記憶體管理演算法,他會發現現在有關記憶體管理方法的演算法數量眾多,自己並沒有全部學過和實踐過,不知道到底該用那種記憶體管理演算法。
看到這裡,可能有些人已經明白第5層樓的奧妙了,那就是需要做基礎研究,當然在計算機裡,最重要的就是"計算"二字,程式設計師要做基礎研究,主要的內容就是研究非數值"計算"。
非數值計算可是乙個非常龐大的領域,不僅時下熱門的"多核計算"與"雲計算"屬於非數值計算範疇,就是軟體需求、設計、測試、除錯、評估、質量控制、軟體工程等本質上也屬於非數值計算的範疇,甚至晶元硬體設計也同樣牽涉到非數值計算。如果你還沒有真正領悟"計算"二字的含義,那麼你就沒有機會進到這層樓來。
可能有人仍然沒有明白為什麼比爾·蓋茨被劃在了大牛層,沒有進到這層來。雖然比爾·蓋茨大學未畢業,學歷不夠,但是家有藏書2萬餘冊,進入軟體這個行業比絕大部分人都早,撇開他的商業才能不談,即使只看他的技術水平,也可以算得上是學富五車,頂上幾個普通的計算機軟體博士之和是沒有問題的,比起linus torvalds之類的"大牛"們應該技高一籌才對,怎麼還進不了這層樓呢?
非常遺憾的是,從windows作業系統的實現來看,其對計算的理解是很膚淺的,如果把google對計算方面的理解比做大學生,比爾·蓋茨只能算做乙個初中生,所以比爾·蓋茨永遠只能做個大牛人,成不了"專家"。
當你象我上面說的那樣去做了以後,隨著時間的推移,總會有某天,你發現,在很多小的領域裡,你已經學不到什麼新東西了,所有最新出來的研究成果你幾乎都知道。此時你會發現你比在做"牛人"和"大牛"時的水平不知高出了多少,但是你一點也"牛"不起來,因為你學的知識和思想都是別人提出來的,你自己並沒有多少自己的知識和思想分享給別人,所以你還得繼續往樓上爬才行。
我不知道國內的"專家"到底有多少,不過有一點可以肯定的是,如果把那些專門蒙大家的"磚家"也算上的話,我們的磚家比西方的要多得多。
程式設計師的十層樓(4 5層)
當然,由於各個專業領域的差別,這裡舉作業系統 編譯器 tcp ip協議只是作為例子,並不代表成為 大牛 一定需要掌握這些知識,以時下熱門的多核程式設計來說,如果你能比牛人們更深入地掌握其中的各種思想原理,能更加自如的運用,並有能力去實現乙個象開源專案tbb庫一樣的東西,也可以成為 大牛 又或者你能寫...
程式設計師的十層樓(4 5層)
zhouweiming 周偉明 32 篇文章 日期 二月 4,2009 在 2 38 下午 第1 3層,請看這裡 第4層 大牛 當然,由於各個專業領域的差別,這裡舉作業系統 編譯器 tcp ip協議只是作為例子,並不代表成為 大牛 一定需要掌握這些知識,以時下熱門的多核程式設計來說,如果你能比牛人們...
程式設計師的十層樓(4 5層)
當然,由於各個專業領域的差別,這裡舉作業系統 編譯器 tcp ip協議只是作為例子,並不代表成為 大牛 一定需要掌握這些知識,以時下熱門的多核程式設計來說,如果你能比牛人們更深入地掌握其中的各種思想原理,能更加自如的運用,並有能力去實現乙個象開源專案tbb庫一樣的東西,也可以成為 大牛 又或者你能寫...