我眼中的中美印日四國程式設計師的特點
最近以裁判的身份參加了公司舉辦的程式設計大賽,發現高手雲集,對公司內部的程式設計師能力也有了更深入的瞭解。我覺得程式設計能力對程式設計師而言,雖然很重要, 但並不是全部。那麼作為一個程式設計師,到底應該具備什麼樣的能力呢?這個話題顯然太大。不過我覺得可以看看其它國家的程式設計師,也許可以得到一些借鑑。
我有幸 和中國、美國、印度和日本四國程式設計師有比較深入的合作過。雖然他們不一定有代表性,但我覺得他們的共性還是比較明顯的。以下的比較純屬個人見解,歡迎指 正。
日本程式設計師
他們的特點是非常仔細。我認為很主要的一個原因是日本公司的需求非常細緻。細緻到在網頁上,連一個畫素都不能偏差的地步。另外,日本人的執行力非常 強,對老闆的承諾比命還重要。一個專案可以做到連續3個月天天加班,每天只睡4個小時。然而,高執行力背後的代價是低創造力。在日新月異的網際網路今天,很 少聽說日本工程師發明了哪些重要的技術。與其說這些特點是日本程式設計師的,不如說是大部分日本人的。因為在日本文化中,追求品質和遵守等級制度是根深蒂固 的。
另外,技術領域中的很多專業詞彙是外來語,以英語(論壇)為主。這些專業詞彙往往會被翻譯成片假名。而片假名的發言有時候和英語大相徑庭, 導致溝通的困難。比如病毒一詞在英語中是Virus,發音為歪儒斯,而日語的發音是味魯斯。再例如伺服器(Server)一詞在日語中的發音是薩巴,和英 文發言簡直風牛馬不相及。因此與日本程式設計師溝通是比較痛苦的,除非你懂日語。
印度程式設計師
我所接觸的印度工程師都是在美國工作的。雖然他們和印度本地的工程師肯定有區別,不過相似的地方應該更多一些吧。我覺得他們的普遍優點就一個:流程 做得好,文件寫得好。但是他們寫程式碼的能力,我個人的觀點是一般般。我想這裡面有兩層原因。一是有相當一部分在美國工作的印度程式設計師是半 路出家。轉行做程式設計師是為了生存而已。二是印度程式設計師在演算法,資料機構等基本功方面的水平明顯低於中國程式設計師的。這就導致他們寫的很多程式碼邏輯性不強和性 能不優(以我的標準來看)。不過這兩個問題在一定程度上被大量的文件和高效能的硬體裝置彌補和掩蓋了。在溝通方面,印度人的英語發音對西方人而言幾乎沒有 問題,但很難被中國人聽懂,甚至往往被國人懷疑他們是不是在說英文。
從某種意義上講,日本程式設計師和印度程式設計師十分相似。他們都很敬業,都能讓領導比較滿意,但不要過多地期望他們能做得更好,因為他們的目標就是完成領 導指派 的任務。日本程式設計師讓領導滿意的方法是不折不扣的執行和狂熱的加班。而印度程式設計師讓領導滿意的方法是通過大量的文件來告訴領導他們的工作意義重大,流程嚴 謹,資料齊全,而且成本很低。誇張一點地講:日本程式設計師善於做領導想做的事,印度程式設計師善於說領導想聽的話。
美國程式設計師
美國程式設計師千奇百怪,好像很難只用幾個詞來定義他們。可能是因為美國是一個移民/國家吧,本來就千奇百怪。但大部分程式設計師有一個共同的特點:喜歡技 術,甚至崇尚技術。這點在矽谷尤為突出。這就導致每個技術領域中都有一些人會廢寢忘食地鑽研。其實這和打遊戲一樣,如果你著了迷,自然會忘了吃,忘了喝, 拼命地玩。我所認識的美國程式設計師還有一個特點,才藝能力都不錯。以前在波士頓工作的一家公司中,幾十位工程師居然可以組成一個交響樂團。有小提琴、大提 琴、小號、豎琴、打擊樂等各種各樣的西洋樂器手。而且這些哥們姐們還不是一般地玩玩,週末都有自己的固定樂隊,經常參加社群的表演。
更有甚者,在矽谷工作時的一位同事,白天寫程式,晚上在自家的車庫裡練習乒乓球,竟然代表美國參加了悉尼和雅典的兩屆奧運會。說起寫文件的能力,美 國程式設計師絕對 不亞於印度人。但是美國人寫文件不是為了老闆,而是為了自己,為了分享。因此他們的文件往往讀起來很有趣,很實用。當然,這會讓老闆有時候很頭疼,因為程 序員不那麼“聽話”。他們不是給老闆交差,而是要實現自己的想法,自己的設計,自己的完美。說白了,就是美國程式設計師有時候想法多了點。
中國程式設計師
和其他國家的程式設計師相比,我覺得他們的特點還是比較明顯的。他們的演算法能力普遍高於其它幾個國家的。這可能是我們的教育體制導致的,比較注重理論知 識。反過來,實踐能力就相對差些。我們的程式設計師執行能力並不差,但在解決問題的能力上明顯不足。往往需要把任務分解得很細以後才能完成,獨立解決問題的能 力不夠。另外在表達能力上也相對差些。相信大家一定見過技術水平很高,但表達能力很差的工程師。最好笑的是,我見過不少工程師拿著一支寫不出字的白板筆 (我們的白板筆質量也確實不咋樣),有模有樣地在白板上寫字。彷彿聽眾可以看得到他/她寫得是什麼。因為他/她完全沉浸在自己的邏輯中,完全不去體會聽眾 的感受。不過我認為這些缺點並不嚴重。
因為這些是屬於技能和經驗方面的東西,是可以通過實際工作或者培訓來提升的。我認為國內程式設計師最大的問題還是所處的環境不利,導致相當一部分人比較 浮躁和 急功近利。真正能夠沉下心來鑽研技術,熱愛技術的是鳳毛麟角。我在面試的時候,常常發現工程師知識面還挺廣,但深度幾乎沒有。這樣的人很難在技術領域有所 作為。我希望找到的人是,敢於承認自己不會的地方,但是隻要會的東西,哪怕就一樣,就要一定比別人理解得透,鑽研得深。我相信一個人如果在某一個問題上比 別人做得好,在其它問題上也一定有能力超越別人。
雖然比較下來,看到中國程式設計師不少的問題。但作為群體,中國的程式設計師可能是全世界最聰明的工程師群體。因為環境的原因,使得他們不得不想法很多,顧 慮很多,無法最大程度地將聰明才智發揮在技術上。改變這種狀況首先要從公司的管理層開始。只有技術負責人熱愛技術,追求卓越,才可能為技術人員創造環境, 激勵他們鑽研和創新。技術負責人需要深入專案,和工程師們一起討論技術設計,從而通過具體問題來提升工程師的能力,同時也防止自己的技術能力滑坡。在技術 管理 上,很多國內的公司把工程師簡單地作為資源,過於強調流程管理和資源管理。我的觀點是:工程師不是高階藍領,不能以管理生產線的方式來進行管理。優良的環 境只有靠大家一起來創造。中國工程師一定可以成為世界上最優秀的工程師群體。
相關文章
- 程式設計師羽化之路--我眼中的單例模式並不完美程式設計師單例模式
- 皇家國際註冊賬號18669187779你眼中的程式設計師VS真實的程式設計師程式設計師
- 一個程式設計師眼中的 UCAN 2019程式設計師
- 你眼中的程式設計師 vs 程式設計師眼中的自己,是時候打破刻板印象了丨KubeCon 主題活動程式設計師
- 我的程式設計師之路程式設計師
- 「程式設計師小漫畫」 之 程式設計師眼中的聖誕節和萬聖節程式設計師
- 一位荷蘭程式設計師眼中的DDD - hexmaster程式設計師AST
- 一個程式設計師眼中的醫院人生百態程式設計師
- 國內少兒眼中的程式設計:“Coding即是程式碼”?程式設計
- 好程式設計師Java教程分享Java的五大特點程式設計師Java
- 美女程式設計師觀點:程式設計師最重要的非程式設計技巧程式設計師
- 在HR眼中,一個合格的前端程式設計師是怎樣的?前端程式設計師
- 程式設計師眼中瀏覽器什麼樣?程式設計師瀏覽器
- 程式設計25年後,現實將我打回菜鳥程式設計師的起點程式設計師
- Devops區別於程式設計師和系統管理員的特點? - Redditdev程式設計師
- 中國程式設計師與美國程式設計師寫程式碼的區別分析程式設計師
- 我關注的那些程式設計師大佬程式設計師
- 我是6年的程式設計師了程式設計師
- 我的十年程式設計師之路程式設計師
- 我眼中的 Nginx(五):Nginx — 子請求設計之道Nginx
- 我發現很多程式設計師都不會打日誌。。程式設計師
- 程式設計師最重要的一點_面向金錢程式設計程式設計師
- 以前的程式設計師,現在的程式設計師程式設計師
- 你好,我是程式設計師程式設計師
- 【譯】我是一個平庸的程式設計師程式設計師
- 風變,我的程式設計啟蒙老師程式設計
- 程式設計師體驗——我在 RightCapital 的工作程式設計師API
- [推廣] 程式設計師的痛點:我竟然還不懂 Linux 效能優化程式設計師Linux優化
- 屬於每個程式設計師的節日,1024程式設計師節程式碼敲響世界程式設計師
- 為什麼國外的程式設計師薪資是國內程式設計師薪資的四五倍,國外程式設計師技術都比國內高嗎?程式設計師
- 我的2023年:程式設計師的自我迭代、技術覆盤與生活點滴程式設計師
- 程式設計師修煉之道~四程式設計師
- 520特輯丨碼神VS愛神:盤點程式設計師的四大男友力,你偏愛哪一種?程式設計師
- 我眼中的PHPPHP
- 程式設計師被懟!HR:對不起,我們不招“精通Excel”的程式設計師程式設計師Excel
- 做任何職業都不要做程式設計師,特別是Java程式設計師,血淋淋的教訓程式設計師Java
- 【雙十一特輯】愛心程式碼(程式設計師的浪漫)-李峋程式設計師
- 【投票】程式設計師是幾點睡覺的?程式設計師
- 我真的要做一輩子的程式設計師嗎?程式設計師