2010年11月27日 星期六

揭秘IT人才特點:中美印日四國程序員比較

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

      
首先是日本程序員。他們的特點是非常仔細。我認為很主要的一個原因是日本公司的需求非常細緻。細緻到在網頁上,連一個像素都不能偏差的地步。另外,日本人的執行力非常強,對老闆的承諾比命還重要。一個項目可以做到連續3個月天天加班,每天只睡4個小時。然而,高執行力背後的代價是低創造力。在日新月異的互聯網今天,很少聽說日本工程師發明了哪些重要的技術。與其說這些特點是日本程序員的,不如說是大部分日本人的。因為在日本文化中,追求品質和遵守等級制度是根深蒂固的。另外,技術領域中的很多專業詞彙是外來語,以英語(論壇)為主。這些專業詞彙往往會被翻譯成片假名。而片假名的發言有時候和英語大相徑庭,導致溝通的困難。比如病毒一詞在英語中是Virus,發音為歪儒斯,而日語的發音是味魯斯。再例如服務器(Server)一詞在日語中的發音是薩巴,和英文發言簡直風牛馬不相及。因此與日本程序員溝通是比較痛苦的,除非你懂日語。

     
其次來看看印度程序員。我所接觸的印度工程師都是在美國工作的。雖然他們和印度本地的工程師肯定有區別,不過相似的地方應該更多一些吧。我覺得他們的普遍優點就一個:流程做得好,文檔寫得好。但是他們寫代碼的能力,我個人的觀點是一般般。我想這裡面有兩層原因。一是有相當一部分在美國工作的印度程序員是半路出家。轉行做程序員是為了生存而已。二是印度程序員在算法,數據機構等基本功方面的水平明顯低於中國程序員的。這就導致他們寫的很多代碼邏輯性不強和性能不優(以我的標準來看)。不過這兩個問題在一定程度上被大量的文檔和高性能的硬件設備彌補和掩蓋了。在溝通方面,印度人的英語發音對西方人而言幾乎沒有問題,但很難被中國人聽懂,甚至往往被國人懷疑他們是不是在說英文。

      
從某種意義上講,日本程序員和印度程序員十分相似。他們都很敬業,都能讓領導比較滿意,但不要過多地期望他們能做得更好,因為他們的目標就是完成領導指派的任務。日本程序員讓領導滿意的方法是不折不扣的執行和狂熱的加班。而印度程序員讓領導滿意的方法是通過大量的文檔來告訴領導他們的工作意義重大,流程嚴謹,資料齊全,而且成本很低。誇張一點地講:日本程序員善於做領導想做的事,印度程序員善於說領導想听的話。

      
接下來說說美國程序員。美國程序員千奇百怪,好像很難只用幾個詞來定義他們。可能是因為美國是一個移民國家吧,本來就千奇百怪。但大部分程序員有一個共同的特點:喜歡技術,甚至崇尚技術。這點在矽谷尤為突出。這就導致每個技術領域中都有一些人會廢寢忘食地鑽研。其實這和打遊戲一樣,如果你著了迷,自然會忘了吃,忘了喝,拼命地玩。我所認識的美國程序員還有一個特點,才藝能力都不錯。以前在波士頓工作的一家公司中,幾十位工程師居然可以組成一個交響樂團。有小提琴,大提琴,小號,豎琴,打擊樂等各種各樣的西洋樂器手。而且這些哥們姐們還不是一般地玩玩,週末都有自己的固定樂隊,經常參加社區的表演。更有甚者,在矽谷工作時的一位同事,白天寫程序,晚上在自家的車庫裡練習乒乓球,竟然代表美國參加了悉尼和雅典的兩屆奧運會。說起寫文檔的能力,美國程序員絕對不亞於印度人。但是美國人寫文檔不是為了老闆,而是為了自己,為了分享。因此他們的文檔往往讀起來很有趣,很實用。當然,這會讓老闆有時候很頭疼,因為程序員不那麼“聽話”。他們不是給老闆交差,而是要實現自己的想法,自己的設計,自己的完美。說白了,就是美國程序員有時候想法多了點。

      
最後是我們中國的程序員。和其他國家的程序員相比,我覺得他們的特點還是比較明顯的。他們的算法能力普遍高於其它幾個國家的。這可能是我們的教育體制導致的,比較注重理論知識。反過來,實踐能力就相對差些。我們的程序員執行能力並不差,但在解決問題的能力上明顯不足。往往需要把任務分解得很細以後才能完成,獨立解決問題的能力不夠。另外在表達能力上也相對差些。相信大家一定見過技術水平很高,但表達能力很差的工程師。最好笑的是,我見過不少工程師拿著一支寫不出字的白板筆(我們的白板筆質量也確實不咋樣),有模有樣地在白板上寫字。彷彿聽眾可以看得到他/她寫得是什麼。因為他/她完全沉浸在自己的邏輯中,完全不去體會聽眾的感受。不過我認為這些缺點並不嚴重。

      
因為這些是屬於技能和經驗方面的東西,是可以通過實際工作或者培訓來提升的。我認為國內程序員最大的問題還是所處的環境不利,導致相當一部分人比較浮躁和急功近利。真正能夠沉下心來鑽研技術,熱愛技術的是鳳毛麟角。我在面試的時候,常常發現工程師知識面還挺廣,但深度幾乎沒有。這樣的人很難在技術領域有所作為。我希望找到的人是,敢於承認自己不會的地方,但是只要會的東西,哪怕就一樣,就要一定比別人理解得透,鑽研得深。我相信一個人如果在某一個問題上比別人做得好,在其它問題上也一定有能力超越別人。

      
雖然比較下來,看到中國程序員不少的問題。但作為群體,中國的程序員可能是全世界最聰明的工程師群體。因為環境的原因,使得他們不得不想法很多,顧慮很多,無法最大程度地將聰明才智發揮在技術上。改變這種狀況首先要從公司的管理層開始。只有技術負責人熱愛技術,追求卓越,才可能為技術人員創造環境,激勵他們鑽研和創新。技術負責人需要深入項目,和工程師們一起討論技術設計,從而通過具體問題來提升工程師的能力,同時也防止自己的技術能力滑坡。在技術管理上,很多國內的公司把工程師簡單地作為資源,過於強調流程管理和資源管理。我的觀點是:工程師不是高級藍領,不能以管理生產線的方式來進行管理。優良的環境只有靠大家一起來創造。中國工程師一定可以成為世界上最優秀的工程師群體。

25個創業者失敗案例的啟示:創業大敗局

Y-Combinator創始人、著名天使投資人Paul Graham投資了80多家創業公司、堪稱互聯網創業領域的教父級人物,經常被人問到“哪些錯誤會導致創業失敗”。 Paul Graham嘗試開出了一張“創業失敗的18個錯誤”的不完全清單,希望幫助創業者察覺到自己正在做不應該做的事情。最近,一篇文章《25則“驗屍報告”—創業失敗者啟示錄》(http://news.csdn.net/a/20101018 /280604.html)也受到關注,作者的出發點與Paul Graham類似,雖然成功不可以復制,失敗卻可以盡量避免。
有趣的是,文章中提到的創業者們並不同意這個看法。 YouCastr創始人說他讀過Paul Graham的幾乎每一篇文章,但不親身經歷一遍是很難體會其中的道理。他創業失敗後在的經驗總結中寫道,希望自己的特定經歷與個人體驗能成為Paul Graham創業文章的一個註腳、一個背景詮釋。 IonLab創始人則更是誇張,建議創業者們停止閱讀一切創業指導文章或圖書,因為每一個小時的閱讀,至少需要創業者此前有三個小時以上的實際經驗才能理解其中內容,又至少再需要三個小時的實踐運用才能吸收。即使這樣,也很難把這些經驗教訓“內化(internalize)”。 IonLab創始人說,他讀Paul Graham文章時一直想,這些不會發生在自己身上,輪到自己創業一定能做得更好。當他創業失敗,重讀Paul Graham時,卻發現說的就是自己,驚出一身冷汗。
從某種意義上說,導致創業失敗的本質錯誤只有一個——沒人需要你做的東西。如果你在做的東西是用戶需要的,那麼你至少能夠生存下去,其它的問題都可以逐一解決。但如果不符合用戶需求,那就死定了。
25則創業者失敗教訓總結,幾乎都有一個共同點:個人有創業衝動,正好想到了一個自以為絕妙的點子,或看到了一個自認為很大的機會,就不管不顧地投入進去,而沒有進行客戶需求的確認。
eHarmony for jobs創始人想到了一個自動匹配求職者與用人企業的點子,僅僅諮詢了身邊朋友,得到認可後就迫不及待地投入創業。在這個過程中才認識到,“他們(指自己的朋友)只代表了不需要付費的求職者,而最重要的需要付費的企業客戶卻沒有去調研”。甚至在深入HR行業一段時間後,才知道這是一個過去幾年被無數人想到、嘗試並驗證失敗的模式。
BricaBox創始人最終認識到自己要解決的只是一個“技術問題”,而不是“商業問題”。技術人員創業,“自撓其背而止癢”當然沒錯,但最好是有“一個更具通用性的可推而廣之的解決方案”。他總結道,解決技術問題,更應該是發起一個開源項目,而不是創辦一家公司。
Xmarks代表著典型的技術人員創業。 Mozilla基金會主席,自己卻用Safari並非Firefox,因為需要在5台不同電腦上工作,而當時Firefox沒有書籤同步功能,就開發了Xmarks。他們當時的想法是,用戶收藏網頁相當於一次投票,可以做出一個更好、更智能的搜索引擎。請了可用性專家和用戶測試,才發現“人們搜索是想找到特定問題的答案,而不是得到某個主題領域內的一組權威鏈接”,並“驚訝”地發現“做搜索測試時,人們在電腦前坐下來第一件事就是搜索自己的姓名”。
YouCastr創始人的總結更是沉痛,“我們並不愛自己做的事。我們做這個只是因為我們想創業,想到了這個點子覺得不錯。我們不是我們產品的核心用戶。雖然我們很努力工作,但我們無法理解什麼是最佳的產品決策。”“創業基本前提從一開始就錯了,我們既沒有調查視頻內容提供方,也不了解觀眾。”而認識到這點,創業團隊用了三年時間,其中整整兩年,5個創始人都沒有領工資。
最近流行的“Lean Startup(精益創業)”,其精髓是“Customer Validation(客戶需求確認)”,即用最低成本、儘早獲取客戶需求的確認。推薦的方法都很有意思,如做一個假的網頁,投放Adwords關鍵詞廣告,通過點擊數據分析來判斷用戶是否真的需要你準備投入創業的這個產品;又如可以先不做產品,製作一段演示視頻,扔到網上傳播看用戶如何反饋。
創業大敗局給我們的啟示,借用Paul Graham的話,那就是“理解你的用戶”。
作者簡介:高巍,安卓愛普公司創始人。原搜狐媒體產品中心經理。關注移動互聯網、互聯網產品管理。
(本文來自《程序員》雜誌10年11期)

2010年11月6日 星期六

相片大小, 2R, 3R, 4R? (Photo Printout Size, 2R, 3R, 4R?)

------想曬相, 想印相, 可以看看有甚麼選擇------

2R = 2.5″ X 3.75″(?) (63.5 × 95.25 mm)(?)
3R("9 × 13 cm") = 3.5″ X 5″ (89 × 127 mm)
4R("10 × 15 cm") = 4″ X 6″ (102 × 152 mm)
5R("13 × 18 cm") = 5″ X 7″ (127 × 178 mm)
6R = 6″ X 8″ (152 × 203 mm)
8R = 8 X 10″ (203 × 254 mm)
16R = 16″ X 20″


表示相片尺寸的「R」制度(2R, 3R, 8R等等)是怎樣計算的?
基本上,無論橫度定直度,長闊比例大概是3:2,這就是每張135菲的比例 (36mm x 24mm) (多謝讀者Vincent指正)。R前面的數字是較短一邊的尺寸(英吋做單位),所以4R就應該係4″ X 6″,5R就應該係 5″ X 6.6665″,但由於計起來長的一邊未必是整數,相紙製造商就round up/down尺寸,久而久之大家公認了這標準。
其實2R和3R短的一邊分別係2.5″同3.5″,但為了方便只稱為2R和3R,而不是2.5R和3.5R。
Photo print sizes - Wikipedia, the free encyclopedia
They are often denoted with a code of the format nR, where the number n represents the length of the shorter edge in inches. In the normal series, the long edge is the length of the short edge plus 2 inches (10" or less) or 3 inches (11" and above).
http://www.fotomaxonline.com/help_tc.htm
Product
Image Size
(Inch)
The Best Resolution
(Pixels)
Minimum Resolution
(Pixels)
  1.5"x2" ID Photo 8 pcs
1.5 x 2
450 x 600
270 x 360
  2R
2.5 x 3.5
750 x 1050
450 x 630
  3R
3.5 x 5
1050 x 1500
630 x 900
  4D (4.5"x6")
4.5 x 6
1350 x 1800
810 x 1080
  4R
4 x 6
1200 x 1800
720 x 1080
  5R
5 x 7
1500 x 2100
900 x 1260
  6R
6 x 8
1800 x 2400
1080 x 1440
  8R
8 x 10
2400 x 3000
1440 x 1800
  8F
8 x 12
2400 x 3600
1440 x 2160
  Photo Mouse Pad
6 x 8
1800 x 2400
1080 x 1440
  Photo Mug
3 x 5.25
900 x 1575
540 x 945
  4R 3D Photo with Frame
4 x 6
1200 x 1800
720 x 1080
  Aluminum Bottle 600ml
3 x 5.25
900 x 1575
540 x 945
  Aluminum Sport Bottle 400ml
3 x 5.25
900 x 1575
540 x 945
  Softy Cushion
8.25 x 11.68
2475 x 3504
1485 x 2103
  Multi-purposes Shoulder Bag
7.5 x 10.5
2250 x 3150
1350 x 1890
  Puzzle 120pcs w/ Frame
7.7 x 11.4
2310 x 3420
1386 x 2052
  Metal Compact Mirror
2.36 x 2.36
708 x 708
425 x 425
  Metal Card Holder
1.93 x 3.46
579 x 1038
348 x 623
  Laser Crystal Glass Key Ring
2.5 x 2.5
700 x 700
450 x 450
  A3 Poster
12 x 16.5
2400 x 3300
-

------想曬相, 想印相, 可以看看有甚麼選擇------