我的編程生涯開始于90年的暑假,我小學剛畢業,無聊的暑假讓我產生了學習電腦的的念頭,在一位親戚的朋友家里,我見到了平生第一臺電腦,一臺黑白顯示屏的筆記本電腦。而后憑著一本厚厚的DOS操作指導和一份原始的Basic編程書,我寫下了一生中第一行程序:“print 3+2”,當電腦正確的顯示5的時候,那種激動的心情真是難以名狀。電腦這種東西的確最能引起孩子的興趣。在我激動之余,埋下了從事軟件開發的念頭。 此后,我雖然有過一些斷斷續續的編程學習,但在中學的6六年里,由于學習的壓力,同時自己也沒有計算機,我的編程生涯基本是空白的。直到96年考入大學的計算機系之后,編程生涯才又重新開始。父母為支持我的學習,在家庭經濟極其困難的情況下給我買了一臺電腦。大學的編程是幼稚的,但卻充滿激情。什么小游戲,小工具,各種語言都試試,各種軟件都玩玩。我幾乎安裝過市面上所有的linux版本,試遍了當時所有常見的編程工具,我經常自嘲我們這一代編程人員都是盜版軟件培養出來的。在那個信息產業的泡沫年代,我在學校里雖然無緣加入那浩浩蕩蕩的軟件洪流,但我的心情卻無時無刻不被軟件領袖們的成功所激蕩,年青的心沉醉在硅谷的夢想中,幻想著有一天自己也能像那些軟件英雄那樣取得輝煌的成功。
2000年,我畢業了,畢業之前我就加入了湖南一家較大的軟件公司,第一份工作是挫折的。我在一個項目組做醫院信息系統的開發,混亂的代碼管理,基本沒有任何文檔,經常誰都不知道軟件里面的代碼到底是寫了些什么,誰也不知道代碼的含義,一點都不像一個正規的軟件企業,我感覺很糟糕。公司老板頭腦已經發昏了,各類產品全面鋪開,什么教育軟件,游戲軟件,管理軟件,統統都想做,沒有一個產品有規模,沒有一個高質量。最后還在全體員工的集會上大談公司發展如何順利,然后自豪的認為,自己以后的工作就只剩下打高爾夫球了,公司管理交給自己的助手就可以了。我想公司的總裁就是這種水平,這個公司也就該玩完了吧。沒多久我就離職了。
2001年初我加入了深圳一家通訊設備公司,從事智能網軟件的開發。這家公司的老板倒是從來不談高爾夫。我一進公司就成天聽他大談“冬天”,耳朵都能聽出老繭來。不過在冬天里干活可一點也不能含糊。大家伙都干得熱火朝天,累得死去活來。但我卻感覺我進步了,并不是我學到了什么先進的技術,而是我學到了一種工作的態度。我發現周圍的同事都很牛,都有良好的教育背景,高學歷的人很多,但這么多牛人仿佛都在傻傻地做一些簡單的事情,代碼一行行的看,文檔一點點的寫,測試一點點的做。項目組內鼓勵互相學習的氣氛很好,有時一點點的小技巧,哪怕是操作上的小技巧小改進,只要共享出來,都能獲得鼓勵和贊揚。如果遇到了大問題,很難的問題,大家就一起的測啊,想啊,直到搞定為止。這的確是一個驅除你浮躁心理的好地方,雖然很累,但是慢慢的,你就會被這種傻勁所感染,當產品逐漸穩定下來,你會領會到什么叫做萬丈高樓平地起,因為一磚一瓦都是大家辛勤的汗水。編程生涯的艱辛和快樂,恐怕只有經歷過的人才能有深刻的體會。
2002年我曾經被派往公司的南京研究所工作過半年,回深圳后,我被指定負責一組印度員工的技術指導工作,這算是我和印度軟件業的第一次接觸。我看到印度員工能夠熟練地查找各種技術支持網站,迅速找到相應的信息,測試用例和設計文檔也都寫得井井有條,給人的感覺比較職業化。尤其是英文不錯,給我留下了很深的印象。我一直是堅定的漢語主義者,但從那之后我對語言有了新的認識。這個世界有很多民族,很多語言,人類的文明需要交流才能前進,而這種交流需要一種通用的語言作為載體。再快捷的翻譯也無法代替直接的交流,而互聯網上關于軟件的技術信息也多為英文,我要繼續我的編程生涯,就絕不能輸在語言上。不然我如何領導外籍員工呢?經過一番痛苦的努力之后,尤其是傻傻地背了不少單詞,現在我無論是聽說讀寫都不會比從小受英文教育的印度人差了。
之后我又和眾多中國及印度工一起,陸續為一二十多個國家開發過軟件,去年年底,我被派到了公司的印度研究所繼續從事軟件開發,在班加羅爾開始了我常駐海外的編程生涯。在這里,我見到了很多印度同行。對印度的軟件業有了更深刻的認識,其實印度軟件工程師和中國一樣。有很多牛人,也有不少庸人,其編程人員的總體素質和中國差不多,管理得當能充分發揮其優勢,管理不好也一樣出亂子。說印度軟件工程師比中國人聰明我絕對不同意。但印度的軟件產業化做得比中國好。
在印度,大的軟件公司多且比較規范,軟件人員也有一個良好的職業晉升渠道,每隔半年就根據其表現進行一次評價,并決定是否提職和漲薪,大學剛畢業是助理軟件工程師,干一年左右可以升為軟件工程師,然后兩年左右可以升為高級軟件工程師,之后若干年可以升為系統分析員或技術領導,然后是系統工程師,再后來是系統架構師。各個公司晉升體系雖各有不同,但基本類似,軟件從業人員即使跳槽也可以保留原來的級別。開發人員可以走技術線搞開發一直干很多年,同時也有機會可以轉到管理線,擔任項目領導或者項目經理,但如果你愿意搞開發,干到很老都沒有問題,而且你的開發工作經驗會被認為是很有價值。而國內的普遍荒唐地認為軟件開發只能搞到30歲,印度這里30歲以上的研發人員比比皆是,國內10年以上的軟件從業人員則是鳳毛麟角。在這種錯誤的指導思想之下,中國當然會缺少有經驗的軟件從業人員,產生所謂之結構失衡。
其實編程也就是一種普通職業,沒有什么特殊的,和其他行業的白領工人沒有什么區別。班加羅爾到處都是軟件工程師,他們普遍薪水也不是很高,即使在大公司,一般軟件人員的工資折人民幣也就是三四千,小公司薪水更少。但我看他們都很知足的樣子,有自己的家庭和生活,很開心。相比之下,在國內大家普遍認為軟件業就是吃青春飯的。但愿國內IT業經歷冬天之后能夠回歸理性。不論是業內人士還是局外人士,都能以一種平和的心態看待軟件開發工作,則是中國軟件業的大進步了。
一轉眼我自己也從業好幾年了,也經歷了大大小小不少坎坷的故事。不久前,就發生了一次。巴西的客戶對我們的軟件提出了極高的性能要求。我們的軟件在瘋狂的高速之下,頻繁出錯,形勢很是緊張。我們持續調測數周,也始終沒能最后穩定下來,客戶很不滿意,領導下令無論如何都要搞定,否則就有可能失去這份訂單,那天夜里,我坐班加羅爾的辦公室里,和千里之外的深圳的同事一起緊張進行模擬調試,一些小的問題已經逐漸被排除了,但計算結果始終不對,一直測到天亮,仍然沒有任何進展,第二天下午,我已經感覺頭上在冒冷汗了。大家決定背水一戰,一定要把這個bug挖出來!于是我們分成三批,一批負責分析提供測試方法,一批負責編碼實現,另外一批在深圳總部進行測試。持續不停,輪番轟炸。終于,在那天傍晚,我們成功地定位了問題所在。辦公室內大家起立歡呼,掌聲一片。誰能想到這個問題竟然是某著名大公司的數據庫系統的一個常用函數在高速運行之下出錯了!我們迅速修改了代碼并傳給了巴西。第三天,巴西傳來捷報。大家才終于如釋重負。事后,產品線經理去了一趟南美,我才了解到由于最開始調測出很多問題,客戶非常惱火,聲稱給我們最后一次機會,在最后一次測試過程中,公司巴西代表處的市場以及用服人員都待在機房,每個人都極其緊張,小心翼翼地按照客戶的要求進行統計并核對數據的準確性。每核對完一次,正確。機房里所有的公司員工都歡呼一次。期間,公司一位巴西的客戶經理竟然跪在地上,雙手合十,非常虔誠的為項目的成功祈禱,大家已經不僅僅把這個軟件當成一個項目,而是當作自己親生兒子一般注入了感情!很幸運,我們終于順利通過了測試。真要感謝那些奮斗在遠方的一線人員,正是他們辛勤的努力,才讓我們開發的軟件順利的走出實驗室,沖向世界的五大洲。我對他們充滿了由衷的敬意!
工作就是這樣,痛并快樂著。我很慶幸我能在我短短的編程生涯中經歷這么多的事情,我堅信,更精彩的還在后頭等著我。
|