自西方文藝復興以來,中國在自然科學方面落后西方很多,軟件領域也不例外。當然現在中國的許多程序員們對此可能有許多不同的意見,有些人認為中國的程序員水平遠落后于西方,有些則認為中國的程序員個人能力并不比西方的程序員差,只是整個軟件產業落后而已。
那么,到底中國的程序員水平比西方程序員水平差,還是中國有許多優秀的程序員達到或超過了西方程序員同等水平呢?要解決這個問題,必須先知道程序員有多少種技術層級,每個層級需要什么樣的技術水平,然后再比較中國和西方在各個技術層級的人數,就可以知道到底有沒有差距,差距有多大。
當然,對于如何劃分程序員的技術層級,不同公司或不同人會有不同的劃分標準,下面的劃分僅代表個人的觀點,如有不當之處,還請砸板磚予以糾正。
第1層 菜鳥
第1層樓屬于地板層,邁進這層樓的門檻是很低的。基本上懂計算機的基本操作,了解計算機專業的一些基礎知識,掌握一門基本的編程語言如C/C++,或者Java,或者JavaScript,...,均可入門邁進這層。
在這層上,中國有著絕對的優勢,除了從計算機專業畢業的眾多人數外,還有大量的通信、自動化、數學等相關專業的人士進入這一行,此外還有眾多的其他專業轉行的人士,人數絕對比西方多出甚多。并且還有一個優勢就是我們這層人員的平均智商比西方肯定高。
沒有多少人愿意一輩子做菜鳥,因為做"菜鳥"的滋味實在是不咋的,整天被老大們吆喝著去裝裝機器,搭建一下測試環境,或者對照著別人寫好的測試用例做一些黑盒測試,好一點的可以被安排去寫一點測試代碼。當然如果運氣"好"的話,碰到了國內的一些作坊式的公司,也有機會去寫一些正式的代碼。
所以,菜鳥們總是在努力學習,希望爬更高的一層樓去。
第2層 大蝦
從第1層爬到第2層相對容易一些,以C/C++程序員為例,只要熟練掌握C/C++編程語言,掌握C標準庫和常用的各種數據結構算法,掌握STL的基本實現和使用方法,掌握多線程編程基礎知識,掌握一種開發環境,再對各種操作系統的API都去使用一下,搞網絡編程的當然對socket編程要好好掌握一下,然后再學習一些面向對象的設計知識和設計模式等,學習一些測試、軟件工程和質量控制的基本知識,大部分人經過2~3年的努力,都可以爬到第2層,晉升為"大蝦"。
中國的"大蝦"數量和"菜鳥"數量估計不會少多少,所以這層上仍然遠領先于西方。
大蝦們通常還是有些自知之明,知道自己只能實現一些簡單的功能,做不了大的東西,有時候還會遇到一些疑難問題給卡住,所以他們對那些大牛級的人物通常是非常崇拜的,國外的如Robert C. Martin、Linus Torvalds,國內的如求伯君、王志東等通常是他們崇拜的對象。其中的有些人希望有一天也能達到這些大牛級人物的水平,所以他們繼續往樓上爬去。
第3層 牛人
由于"大蝦"們經常被一些疑難問題給卡住,所以有了"大蝦"們只好繼續學習,他們需要將原來所學的知識進一步熟練掌握,比如以熟練掌握C++編程語言為例,除了學一些基礎性的C++書籍如《C++ Primer》,《Effective C++》,《Think in C++》,《Exception C++》等之外,更重要的是需要了解C++編譯器的原理和實現機制,了解操作系統中的內部機制如內存管理、進程和線程的管理機制,了解處理器的基礎知識和代碼優化的方法,此外還需要更深入地學習更多的數據結構與算法,掌握更深入的測試和調試知識以及質量管理和控制方法,對各種設計方法有更好的理解等。
學習上面說的這些知識不是一揮而就的,不看個三五十本書并掌握它是做不到的。以數據結構算法來說,至少要看個5~10本這方面的著作;以軟件設計來說,光懂結構化設計、面向對象設計和一些設計模式是不夠的,還要了解軟件架構設計、交互設計、面向方面的設計、面向使用的設計、面向數據結構算法的設計、情感化設計等,否則是很難進到這個樓層的。
當然除了上面說的知識外,大蝦們還需要去學習各種經驗和技巧。當然這點難不倒他們,現在出版的書籍眾多,網絡上的技術文章更是不勝數,然后再去各種專業論壇里泡一泡,把這些書籍和文章中的各種經驗、技能、技巧掌握下來,再去學習一些知名的開源項目如Apache或Linux操作系統的源代碼實現等。此時對付一般的疑難問題通常都不在話下,菜鳥和大蝦們會覺得你很"牛",你也就爬到了第3層,晉升為"牛人"了。
看了上面所講的要求,可能有些大蝦要暈過去了,成為牛人要學這么多東西??!要求是不是太高了?其實要求一點也不高,這么點東西都掌握不了的話,怎么能讓別人覺得你"牛"呢?
需要提一下的是,進入多核時代后,從第2層爬到第3層增加了一道多核編程的門檻。當然要邁過這道門檻并不難,已經有很多前輩高人邁進了這道門檻,只要循著他們的足跡前進就可以了。想邁進這道門檻者不妨去學習一下TBB開源項目的源代碼(鏈接:http://www.threadingbuildingblocks.org/),然后上Intel的博客(http://softwareblogs-zho.intel.com/)和多核論壇(http://forum.csdn.net/Intel/IntelMulti-core/)去看看相關文章,再買上幾本相關的書籍學習一下。
在國內, 一旦成為"牛人",通??梢缘皆S多知名的公司里去,運氣好者可以掛上一個架構師的頭銜,甚至掛上一個"首席架構師"或者"首席xx學家"的頭銜也不足為奇。有不少爬到這層的人就以為到了樓頂了,可以眼睛往天上看了,開始目空一切起來,以為自己什么都可以做了,什么都懂了,經常在網絡上亂砸板磚是這個群體的最好寫照。由此也看出,國內的牛人數量仍然眾多,遠多于西方的牛人數量,在這層上仍然是領先的。
也有不少謙虛的"牛人",知道自己現在還不到半桶水階段。他們深知爬樓的游戲就像猴子上樹一樣,往下看是笑臉,往上看是屁股。為了多看笑臉,少看屁股,他們并沒有在此停步不前,而是繼續尋找到更上一層的樓梯,以便繼續往上爬。
第4層 大牛
從第3層爬到第4層可不像上面說過的那幾層一樣容易,要成為大牛的話,你必須要能做牛人們做不了的事情,解決牛人們解決不了問題。比如牛人們通常都不懂寫操作系統,不會寫編譯器,不懂得TCP/IP協議的底層實現,如果你有能力將其中的任何一個實現得象模象樣的話,那么你就從牛人升級為"大牛"了。
當然,由于各個專業領域的差別,這里舉操作系統、編譯器、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層樓的奧妙。
新聞熱點
疑難解答