最近以裁判的身份參加了公司舉辦的編程大賽,發(fā)現(xiàn)高手云集,對公司內(nèi)部的程序員能力也有了更深入的了解。我覺得編程能力對程序員而言,雖然很重要,但并不 是全部。那么作為一個程序員,到底應(yīng)該具備什么樣的能力呢?這個話題顯然太大。不過我覺得可以看看其它國家的程序員,也許可以得到一些借鑒。我有幸和中 國,美國,印度和日本四國程序員有比較深入的合作過。雖然他們不一定有代表性,但我覺得他們的共性還是比較明顯的。以下的比較純屬個人見解,歡迎指正。
日本程序員
他們的特點是非常仔細(xì)。我認(rèn)為很主要的一個原因是日本公司的需求非常細(xì)致。細(xì)致到在網(wǎng)頁上,連一個像素都不能偏差的地步。另外,日本人 的執(zhí)行力非常強(qiáng),對老板的承諾比命還重要。一個項目可以做到連續(xù)3個月天天加班,每天只睡4個小時。然而,高執(zhí)行力背后的代價是低創(chuàng)造力。在日新月異的互 聯(lián)網(wǎng)今天,很少聽說日本工程師發(fā)明了哪些重要的技術(shù)。與其說這些特點是日本程序員的,不如說是大部分日本人的。因為在日本文化中,追求品質(zhì)和遵守等級制度 是根深蒂固的。另外,技術(shù)領(lǐng)域中的很多專業(yè)詞匯是外來語,以英語(論壇)為主。這些專業(yè)詞匯往往會被翻譯成片假名。而片假名的發(fā)言有時候和英語大相徑庭, 導(dǎo)致溝通的困難。比如病毒一詞在英語中是Virus,發(fā)音為歪儒斯,而日語的發(fā)音是味魯斯。再例如服務(wù)器(Server)一詞在日語中的發(fā)音是薩巴,和英 文發(fā)言簡直風(fēng)牛馬不相及。因此與日本程序員溝通是比較痛苦的,除非你懂日語。
印度程序員
我所接觸的印度工程師都是在美國工作的。雖然他們和印度本地的工程師肯定有區(qū)別,不過相似的地方應(yīng)該更多一些吧。我覺得他們的普遍 優(yōu)點就一個:流程做得好,文檔寫得好。但是他們寫代碼的能力,我個人的觀點是一般般。我想這里面有兩層原因。一是有相當(dāng)一部分在美國工作的印度程序員是半 路出家。轉(zhuǎn)行做程序員是為了生存而已。二是印度程序員在算法,數(shù)據(jù)機(jī)構(gòu)等基本功方面的水平明顯低于中國程序員的。這就導(dǎo)致他們寫的很多代碼邏輯性不強(qiáng)和性 能不優(yōu)(以我的標(biāo)準(zhǔn)來看)。不過這兩個問題在一定程度上被大量的文檔和高性能的硬件設(shè)備彌補(bǔ)和掩蓋了。在溝通方面,印度人的英語發(fā)音對西方人而言幾乎沒有 問題,但很難被中國人聽懂,甚至往往被國人懷疑他們是不是在說英文。
從某種意義上講,日本程序員和印度程序員十分相似。他們都很敬業(yè),都能讓領(lǐng)導(dǎo)比較滿意,但不要過多地期望他們能做得更好,因為他們的目標(biāo)就是完成領(lǐng)導(dǎo)指派 的任務(wù)。日本程序員讓領(lǐng)導(dǎo)滿意的方法是不折不扣的執(zhí)行和狂熱的加班。而印度程序員讓領(lǐng)導(dǎo)滿意的方法是通過大量的文檔來告訴領(lǐng)導(dǎo)他們的工作意義重大,流程嚴(yán) 謹(jǐn),資料齊全,而且成本很低。夸張一點地講:日本程序員善于做領(lǐng)導(dǎo)想做的事,印度程序員善于說領(lǐng)導(dǎo)想聽的話。
美國程序員
美國程序員千奇百怪,好像很難只用幾個詞來定義他們。可能是因為美國是一個移民國家吧,本來就千奇百怪。但大部分程序員有一個共同 的特點:喜歡技術(shù),甚至崇尚技術(shù)。這點在硅谷尤為突出。這就導(dǎo)致每個技術(shù)領(lǐng)域中都有一些人會廢寢忘食地鉆研。其實這和打游戲一樣,如果你著了迷,自然會忘 了吃,忘了喝,拼命地玩。我所認(rèn)識的美國程序員還有一個特點,才藝能力都不錯。以前在波士頓工作的一家公司中,幾十位工程師居然可以組成一個交響樂團(tuán)。有 小提琴,大提琴,小號,豎琴,打擊樂等各種各樣的西洋樂器手。而且這些哥們姐們還不是一般地玩玩,周末都有自己的固定樂隊,經(jīng)常參加社區(qū)的表演。更有甚 者,在硅谷工作時的一位同事,白天寫程序,晚上在自家的車庫里練習(xí)乒乓球,竟然代表美國參加了悉尼和雅典的兩屆奧運(yùn)會。說起寫文檔的能力,美國程序員絕對 不亞于印度人。但是美國人寫文檔不是為了老板,而是為了自己,為了分享。因此他們的文檔往往讀起來很有趣,很實用。當(dāng)然,這會讓老板有時候很頭疼,因為程 序員不那么“聽話”。他們不是給老板交差,而是要實現(xiàn)自己的想法,自己的設(shè)計,自己的完美。說白了,就是美國程序員有時候想法多了點。
中國程序員
和其他國家的程序員相比,我覺得他們的特點還是比較明顯的。他們的算法能力普遍高于其它幾個國家的。這可能是我們的教育體制導(dǎo)致 的,比較注重理論知識。反過來,實踐能力就相對差些。我們的程序員執(zhí)行能力并不差,但在解決問題的能力上明顯不足。往往需要把任務(wù)分解得很細(xì)以后才能完 成,獨立解決問題的能力不夠。另外在表達(dá)能力上也相對差些。相信大家一定見過技術(shù)水平很高,但表達(dá)能力很差的工程師。最好笑的是,我見過不少工程師拿著一 支寫不出字的白板筆(我們的白板筆質(zhì)量也確實不咋樣),有模有樣地在白板上寫字。仿佛聽眾可以看得到他/她寫得是什么。因為他/她完全沉浸在自己的邏輯 中,完全不去體會聽眾的感受。不過我認(rèn)為這些缺點并不嚴(yán)重。
因為這些是屬于技能和經(jīng)驗方面的東西,是可以通過實際工作或者培訓(xùn)來提升的。我認(rèn)為國內(nèi)程序員最大的問題還是所處的環(huán)境不利,導(dǎo)致相當(dāng)一部分人比較浮躁和 急功近利。真正能夠沉下心來鉆研技術(shù),熱愛技術(shù)的是鳳毛麟角。我在面試的時候,常常發(fā)現(xiàn)工程師知識面還挺廣,但深度幾乎沒有。這就導(dǎo)致了很多程序員在這行領(lǐng)域里,始終停滯于基層,而很難往更高領(lǐng)域發(fā)展,愛尚實訓(xùn)為了避免出現(xiàn)前人的彎路,嚴(yán)把教學(xué)關(guān)口,加深知識的深層傳播,就是希望培育出來的學(xué)員,今后能在技術(shù)領(lǐng)域上有所作為,比別人理解得透,鉆研得深,有能力超越別人。
-
程序員
+關(guān)注
關(guān)注
4文章
950瀏覽量
29763
發(fā)布評論請先 登錄
相關(guān)推薦
評論