中美印日四國程序員比較

最近以裁判的身份參加了公司舉辦的編程大賽,發現高手雲集,對公司內部的程序員能力也有了更深刻的瞭解。我以爲編程能力對程序員而言,雖然很重要,但並非所有。那麼做爲一個程序員,到底應該具有什麼樣的能力呢?這個話題顯然太大。不過我以爲能夠看看其它國家的程序員,也許能夠獲得一些借鑑。我有幸和中國,美國,印度和日本四國程序員有比較深刻的合做過。雖然他們不必定有表明性,但我以爲他們的共性仍是比較明顯的。如下的比較純屬我的看法,歡迎指正。 程序員

 

 
      首先是日本程序員。他們的特色是很是仔細。我認爲很主要的一個緣由是日本公司的需求很是細緻。細緻到在網頁上,連一個像素都不能誤差的地步。另外,日本人的執行力很是強,對老闆的承諾比命還重要。一個項目能夠作到連續3個月每天加班,天天只睡4個小時。然而,高執行力背後的代價是低創造力。在突飛猛進的互聯網今天,不多據說日本工程師發明了哪些重要的技術。與其說這些特色是日本程序員的,不如說是大部分日本人的。由於在日本文化中,追求品質和遵照等級制度是根深蒂固的。另外,技術領域中的不少專業詞彙是外來語,以英語(論壇)爲主。這些專業詞彙每每會被翻譯成片假名。而片假名的發言有時候和英語截然不同,致使溝通的困難。好比病毒一詞在英語中是Virus,發音爲歪儒斯,而日語的發音是味魯斯。再例如服務器(Server)一詞在日語中的發音是薩巴,和英文發言簡直風牛馬不相及。所以與日本程序員溝通是比較痛苦的,除非你懂日語。
 
     其次來看看印度程序員。我所接觸的印度工程師都是在美國工做的。雖然他們和印度本地的工程師確定有區別,不過類似的地方應該更多一些吧。我以爲他們的廣泛優勢就一個:流程作得好,文檔寫得好。可是他們寫代碼的能力,我我的的觀點是通常般。我想這裏面有兩層緣由。一是有至關一部分在美國工做的印度程序員是半路出家。轉行作程序員是爲了生存而已。二是印度程序員在算法,數據機構等基本功方面的水平明顯低於中國程序員的。這就致使他們寫的不少代碼邏輯性不強和性能不優(以個人標準來看)。不過這兩個問題在必定程度上被大量的文檔和高性能的硬件設備彌補和掩蓋了。在溝通方面,印度人的英語發音對西方人而言幾乎沒有問題,但很難被中國人聽懂,甚至每每被國人懷疑他們是否是在說英文。
 
      從某種意義上講,日本程序員和印度程序員十分類似。他們都很敬業,都能讓領導比較滿意,但不要過多地指望他們能作得更好,由於他們的目標就是完成領導指派的任務。日本程序員讓領導滿意的方法是徹徹底底的執行和狂熱的加班。而印度程序員讓領導滿意的方法是經過大量的文檔來告訴領導他們的工做意義重大,流程嚴謹,資料齊全,並且成本很低。誇張一點地講:日本程序員善於作領導想作的事,印度程序員善於說領導想聽的話。
 
      接下來講說美國程序員。美國程序員千奇百怪,好像很難只用幾個詞來定義他們。多是由於美國是一個移民國家吧,原本就千奇百怪。但大部分程序員有一個共同的特色:喜歡技術,甚至崇尚技術。這點在硅谷尤其突出。這就致使每一個技術領域中都有一些人會廢寢忘食地鑽研。其實這和打遊戲同樣,若是你着了迷,天然會忘了吃,忘了喝,拼命地玩。我所認識的美國程序員還有一個特色,才藝能力都不錯。之前在波士頓工做的一家公司中,幾十位工程師竟然能夠組成一個交響樂團。有小提琴,大提琴,小號,豎琴,打擊樂等各類各樣的西洋樂器手。並且這些哥們姐們還不是通常地玩玩,週末都有本身的固定樂隊,常常參加社區的表演。更有甚者,在硅谷工做時的一位同事,白天寫程序,晚上在自家的車庫裏練習乒乓球,居然表明美國參加了悉尼和雅典的兩屆奧運會。提及寫文檔的能力,美國程序員絕對不亞於印度人。可是美國人寫文檔不是爲了老闆,而是爲了本身,爲了分享。所以他們的文檔每每讀起來頗有趣,很實用。固然,這會讓老闆有時候很頭疼,由於程序員不那麼「聽話」。他們不是給老闆交差,而是要實現本身的想法,本身的設計,本身的完美。說白了,就是美國程序員有時候想法多了點。
 
      最後是咱們中國的程序員。和其餘國家的程序員相比,我以爲他們的特色仍是比較明顯的。他們的算法能力廣泛高於其它幾個國家的。這多是咱們的教育體制致使的,比較注重理論知識。反過來,實踐能力就相對差些。咱們的程序員執行能力並不差,但在解決問題的能力上明顯不足。每每須要把任務分解得很細之後才能完成,獨立解決問題的能力不夠。另外在表達能力上也相對差些。相信你們必定見過技術水平很高,但表達能力不好的工程師。最可笑的是,我見過很多工程師拿着一支寫不出字的白板筆(咱們的白板筆質量也確實不咋樣),有模有樣地在白板上寫字。彷彿聽衆能夠看獲得他/她寫得是什麼。由於他/她徹底沉浸在本身的邏輯中,徹底不去體會聽衆的感覺。不過我認爲這些缺點並不嚴重。
 
      由於這些是屬於技能和經驗方面的東西,是能夠經過實際工做或者培訓來提高的。我認爲國內程序員最大的問題仍是所處的環境不利,致使至關一部分人比較浮躁和急功近利。真正可以沉下心來鑽研技術,熱愛技術的是百裏挑一。我在面試的時候,經常發現工程師知識面還挺廣,但深度幾乎沒有。這樣的人很難在技術領域有所做爲。我但願找到的人是,勇於認可本身不會的地方,可是隻要會的東西,哪怕就同樣,就要必定比別人理解得透,鑽研得深。我相信一我的若是在某一個問題上比別人作得好,在其它問題上也必定有能力超越別人。
 
      雖然比較下來,看到中國程序員很多的問題。但做爲羣體,中國的程序員多是全世界最聰明的工程師羣體。由於環境的緣由,使得他們不得不想法不少,顧慮不少,沒法最大程度地將聰明才智發揮在技術上。改變這種情況首先要從公司的管理層開始。只有技術負責人熱愛技術,追求卓越,纔可能爲技術人員創造環境,激勵他們鑽研和創新。技術負責人須要深刻項目,和工程師們一塊兒討論技術設計,從而經過具體問題來提高工程師的能力,同時也防止本身的技術能力滑坡。在技術管理上,不少國內的公司把工程師簡單地做爲資源,過於強調流程管理和資源管理。個人觀點是:工程師不是高級藍領,不能以管理生產線的方式來進行管理。優良的環境只有靠你們一塊兒來創造。中國工程師必定能夠成爲世界上最優秀的工程師羣體。
相關文章
相關標籤/搜索