雷軍自述:我十年的程序員生涯

最近,和UCWEB同事討論,怎麼才能把我們的UCWEB做到極致。我說,“手機上的平臺非常多,如果想做好,需要足夠多、足夠優秀的程序員。 優秀的程序員如何定義呢?首先必須熱愛寫程序,其次必須是一個完美主義者。 只有這樣的人,才能把事情做得極致。”

說着說着,我懷念起我過去寫程序的日子,從1987年到1996年,那是一段陽光燦爛的日子。幾年前我無意中從網上找到了1996年在金山西點BBS上寫幾篇帖子,現在讀來感慨萬千。謝謝當年的網管Tony Low,他收藏了我的文章,使當年的文章能保留至今。

重貼此文,紀念我已經遠去的長達十年的程序員生涯!
在這裏插入圖片描述

我的程序人生路

1996年5月寫於金山西點BBS

【題記】 如果程序人生的話,這條路太漫長

我並非天生喜歡寫程序,上高中時也沒有想過程序員的生活。我學電腦非常偶然,小時好友上大學時選擇了計算機系,爲了和這個朋友有更多的共同語言,我也選擇了計算機系,開始步入程序人生的道路。

當我學會一些後,發現自己特別喜歡寫程序。我是八七年上的武漢大學計算機系,大一下學期纔有專業課。當我有資格上機的時候,發現電腦世界太美妙,就一頭扎進去。當時用的是 Motorola 68000 (相當 於 Intel 8088), 540K 的內存,運行的 UNIX 操作系統,八個人一起用。大二學PC,又過了一學期,開始出現在老師的實驗室,幫忙幹活,當時就寫了現在很多人用的 RI (RAMinit, 清內存的小工具, 看來我還是最早一批寫 Shareware 的人)。又過了一個學期,開始和校外的公司接觸。大二暑假,也就是1989年8月,和一個朋友組建了 Yellow Rose 軟件小組,寫了我第一個商品軟件 BITLOK 0.99。後來自己創業辦過公司,也寫過一些其他的軟件。

大學畢業後,分到研究所,不太適應那裏的氣氛,就在1992年初加入金山軟件,開始了職業程序員的生涯。後來成了金山軟件研發部門的主管,但我一直都是一線的程序員。

編程的感受

程序員活在自己想象的王國裏

我剛接觸電腦就發現電腦的妙處,電腦遠沒有人那麼複雜。如果你的程序寫得好,你就可以和電腦處好關係,就可以指揮電腦幹你想幹的事。這個時候你是十足的主宰。 每每你坐在電腦面前,你就是在你的王國裏巡行,這樣的日子簡直就是天堂般的日子。 電腦裏的世界很大,編程人是活在自己想象的王國裏。你可以想象到電腦裏細微到每一個字節、每一個比特的東西。

我愛編程這個工作,可以肯定我會幹上一輩子

不少人認爲程序員最多幹到三十五歲就可以收山換環境了,腦子也差不多該歇歇了,體力也不支了。並認爲寫程序是年輕人的事情,到了一定歲數,估計沒什麼人再當程序員了。

當我剛有一點本事的時候,我也和大家一樣覺得編程辛苦,也想三十歲後幹別的。當我年長一點後就發現了自己的無知。一個人大學畢業就二十一二歲,有點水平的時候可能二十五,接着就是過日子諸多事情。一切搞掂的時候,也許就是三十五歲。如果這樣的話,我們就不用選擇程序人生的道路。電腦進入中國時間並不短,但真正大規模開始用,還是八五年 PC 開始的,因此國內真正寫電腦程序的人最長也就寫了十幾年(不知道是否還有這樣的人)。由於電腦應用在國內時間比較短,國內開發的主力是三十五歲以下的年輕人爲主。但這不表示程序員如同紅粉佳人般的容易衰老。美國主力工程師以三十四十多歲的人爲主。

開始的時候,我們覺得我們沒有什麼不能做的(現在還能聽到這樣的豪言壯語),而且更要命的是好象我們特別聰明,特別適合開發軟件,比老外強得多。當我們真正接觸那些傑出的開發人員的時候,發現他們太厲害了,都有十多年的開發經驗。雖然也有很多年輕人做了很多好東西,但絕大多數的產品出自這些有豐富開發經驗的程序員的手。剛畢業的時候,編程不僅僅是愛好,而且也成了一輩子的工作。整天不知道寫些什麼東西,覺得特別沒勁,找不到感覺,特別灰心。後來,才明白,只有全身心地投入,程序纔會有感覺。

寫程序的活特別費腦子,也特別累,但我喜歡,可以肯定我會幹上一輩子,雖然我沒有打算一生只幹這一件事。用一生來編程序是一件既容易又困難的事。如果碌碌無爲,爲交差寫點程序,這樣的日子太好混了。但如果想全身心地寫程序,寫十年就不是一件容易的事。現在我不少朋友都洗手了,有時我也想“用什麼電腦呀,Windows 外的世界不是也很大嗎?”。面對電腦的時候,立刻頓悟:寫程序還是自己最擅長的事,也是最喜歡的事。

高級程序員不是追求的目標

有的人學習編程技術,是把高級程序員做爲追求的目標,甚至是終身的奮鬥目標。後來參與了真正的商品化軟件開發後,反而困惑了,茫然了。

一個人只要有韌性和靈性,有機會接觸並學習電腦的編程技術,就會成爲一個不錯的程序員。剛開始寫程序,這時候學得多的人寫的好,到了後來,大家都上了一個層次,誰寫的好只取決於這個人是否細心、有韌性、有靈性。掌握多一點或少一點,很快就能補上。成爲一個高級程序員並不是件困難的事。

當我上學的時候,高級程序員也曾是我的目標,我希望我的技術能得到別人的承認。後來發現無論多麼高級的程序員都沒用,關鍵是你是否能夠出想法出產品,你的勞動是否能被社會承認,能爲社會創造財富。成爲高級程序員絕對不是追求的目標。

編程不僅僅是技術,還是藝術

有人認爲編程是一種熟練工種,也有人把編程說成是藝術創作。這兩種意見爭論比較激烈。

我們換個工種來看,石匠應該是熟練工種,屬於工人,更和藝術似乎沾不上邊。但正是這些石匠,給我們留下多少文物古蹟,如樂山大佛、莫高窟等等。應該說這些石匠給我們留下了無窮的文化財產。現代軟件工業已具相當規模,很多軟件的完成需要的是大兵團作戰。一名普通程序員接受編寫某一模塊的任務後,往往只是寫代碼,發揮的餘地很小。在大項目中,很多程序員只能瞭解到和自己所編模塊相關的很局部的細節,另外還受到開發環境的限制,真的很難體會到自己在從事”藝術”創造,更多的時候是感到自己在從事重體力勞動。有的時候還擔心自己苦苦蔘與的這個項目究竟有沒有意義,是不是在同類產品中有競爭力,會不會開發出來以後就因爲硬件的發展,操作系統的換代而過時……

我認爲編程的工作和石匠比較相似,有技術活,更多的是體力活。不管怎麼說,寫出一個好軟件不是一件容易的事。

這兩種想法都有片面性,編程應該說兩種屬性都有。編程不僅僅是技術,也還是藝術。編程是技術活,纔有可能大規模進行,纔會有軟件工程和軟件工廠。也正是編程是藝術,纔會有如此多的好產品,讓大家如癡如醉。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章