雷軍:我的程序人生路
本文發錶於雷軍微信公衆號文章《程序人生》
今天有朋友發給我一篇我在20年前在BBS上寫的帖子。那還是1996年,我們通過電話線撥號連接到西點BBS上飊帖子玩的年代。
那是一個互聯網混沌初開的年代,那是一個BBS和Email幾乎主宰瞭全部互聯網的年代,那是一個青春的理想和熱血沸騰的年代。
我是一個程序員,一個軟件工程師。到今天,我也依然是一個程序員,一個軟件工程師。
本文是20年前我對程序人生的一點看法。20年後的今天,重讀之後,這依然是我對程序人生的態度。
2016年3月24日 雷軍
"程序人生"的作文
From: Lei Jun
To: Dai Jun
時間: 1996-08-31 00:28
戴老師:
妳的命題作文我已經寫完,如有不妥之處,請指出。今天下午我已經寫完,但突然 ZRM 死機,我沒有存盤。晚上隻好接着寫,真是不幸。文中如有錯漏之處可能是我第二遍寫漏瞭。
本文參考過 WT 和 JH 的有關討論信,在此緻謝。
=== CUT ===
程序人生
[題記] 如果程序人生的話,這條路太漫長
"程序人生"這個詞是什麽意思,剛開始時我並不明白。這個詞源於業餘 BBS 站,站上 PROGRAMMER 欄目的中文名就是這個詞,英文飜譯過來就是"程序員",但程序人生又比程序員多瞭很多含義,似乎多瞭一種滄桑感。但不管這麽多,講講編程感受不算跑題。
首先我先講講自己的路,這樣也許大傢才能相信我的坦誠和我的這篇編程感受的真實性。這些感受是我個人感受,不全麵的地方,請大傢指正。
我的程序人生路
--------------
我並非天生喜歡電腦,上髙中時也沒有想過程序員的生活。我學電腦非常偶然,小時候的一個好朋友上大學時選擇瞭電腦專業,爲瞭和這個朋友有更多的共同語言,我也選擇瞭計算機係,開始步入程序人生的道路。
當我學瞭一點電腦知識後,就發現電腦將是我人生的至愛。讀書時,我不是特别會搞關係的人,同學關係說不上差,也好不到那裏去。我是八七年上的大學,我們大一下學期才有專業課。當我有資格上機的時候,發現電腦世界太美妙,就一頭紮進去。當時用的是 Motorola 68000 (相當於 Intel 8088), 540K 的内存,運行的 UNIX 操作係統,八個人一起用。
大二學 PC,又過瞭一學期,開始出現在老師的實驗室,幫忙幹活,當時寫瞭現在還有人用的 RI (一個清内存的小工具)。又過瞭一個學期,開始和校外的公司接觸。大二暑假,和一個朋友組建瞭 Yellow Rose 組,寫瞭我第一個商品軟件 BITLOK 0.99。後來開過公司也寫過一些軟件。
大學畢業後,分到研究所,不太適應研究所的氣氛。調槽到金山軟件公司,開始瞭職業程序員的生涯。後來成瞭北京金山軟件公司的經理,但我還是一名程序員。
編程的感受
----------
--- 程序員活在自己想象的王國裏 ---
我剛接觸電腦就發現電腦的妙處,電腦遠沒有人那麽複雜。如果妳的程序寫得好,妳就可以和電腦處好關係,就可以指揮電腦幹妳想幹的事。
這個時候妳是十足的主宰。每每妳坐在電腦麵前,妳就是在妳的王國裏巡行。這樣的日子簡直就是天堂般的日子。
電腦裏的世界很大,編程人是活在自己想象的王國裏。妳可以想象到電腦裏細微到每一個字節、每一個比特位的東西。
--- 我愛編程這個工作,可以肯定我會幹上一輩子 ---
不少人認爲程序員至多幹到三十五歲就可以收山換環境瞭,腦子也差不多該歇歇瞭,體力也不支瞭。並認爲寫程序是年輕人的事情,到瞭一定歲數,估計沒什麽人再當程序員瞭。
當我剛有一點水平的時候,我也認爲編程辛苦,也想三十歲後幹别的。當我年長一點後就發現瞭自己的無知。一個人大學畢業就二十一二歲,有點水平的時候可能二十五,接着就是老婆加上孩子和房子等等諸多事情。
一切搞掂的時候,也許就是三十五歲。如果這樣的話,我們就不用選擇程序人生的道路。
電腦進入我國時間不短,但真正大規模開始用,還是八五年 PC 開始的,因此國内真正寫電腦程序的人至長也就寫瞭十幾年(不知道是否還有這樣的人)。由於電腦應用在國内時間比較短,國内開發的主力是三十五歲以下的年輕人爲主。但這不錶示程序員如同紅粉佳人般的容易衰老。美國和臺灣開發以三十四十多歲的人爲主。開始的時候,我們覺得我們沒有什麽不能做的(現在還能聽到這樣的豪言壯語),而且更要命的是好象我們特别聰明,特别適闔開發軟件,比老外強得多。當我們真正接觸那些傑出的開發人員的時候,發現他們太厲害瞭,都有十多年的開發經驗。雖然也有很多年輕人做瞭很多好東西,但決大多數的産品出自這些有豐富開發經驗的程序員的手。
剛畢業的時候,編程不僅僅是愛好,而且也成瞭一輩子的工作。整天不知道寫些什麽東西,覺得特别沒勁,找不到感覺,特别灰心。後來,才明白,隻有全身心地投入,程序才會有意識。
寫程序簡直是在自斃,鉅費精力鉅費腦子鉅累。但我愛編程這個工作,可以肯定我會幹上一輩子,雖然我沒有打算一生隻幹這一件事。用一生來編程序是一件既容易又困難的事。如果碌碌無爲,爲交差寫點程序,這樣寫兩輩子的人都有。但如果想全身心地寫程序,寫十年就不是一件容易的事。現在我不少朋友都洗手瞭,有時我也想"用什麽電腦,Windows 外的世界不是也很大嗎?"。麵對電腦的時候,立刻頓悟:電腦還是自己至擅長幹的事,也是至順手的事。
--- 髙級程序員不是追求的目標 ---
有的人學習編程技術,是把髙級程序員做爲追求的目標,甚至是終身的奮鬥目標。後來參與瞭真正的商品化軟件開發後,反而困惑瞭,茫然瞭。
一個人隻要有韌性和靈性,有機會接觸並學習電腦的編程技術,就會成爲一個不錯的程序員。剛開始寫程序,這時候學得多的人寫的好,到瞭後來,大傢都上瞭一個層次,誰寫的好隻取決於這個人是否細心、有韌性、有靈性。掌握多一點或少一點,很快就能補上。成爲一個髙級程序員並不是件困難的事。
當我上學的時候,髙級程序員也曾是我的目標,我希望我的技術能得到别人的承認。後來發現無論多麽髙級的程序員都沒用,關鍵是妳是否能夠出想法出産品,妳的勞動是否能被社會承認,能爲社會創造財富。成爲髙級程序員絕對不是追求的目標。
--- 編程不僅僅是技術,還是藝術 ---
有人認爲編程是一種熟練工種,也有人把編程說成是藝術創作。這兩種意見爭論比較激烈。
我們換個工種來看,石匠應該是熟練工種,屬於工人,更藝術似乎沾不上邊。但正是這些石匠,給我們留下多少文物古迹,如樂山大佛、莫髙窟等等。應該說這些石匠給我們留下瞭無窮的文化財産。
現代軟件工業已具相當規模,很多軟件的完成需要的是大兵團作戰。
一名普通程序員接受編寫某一模塊的任務後,往往隻是寫代碼,發揮的餘地很小。在大項目中,很多程序員隻能瞭解到和自己所編模塊相關的很局部的細節,另外還受到開發環境的限製,真的很難體會到自己在從事"藝術"創造,更多的時候是感到自己在從事重體力勞動。有的時候還擔心自己苦苦參與的這個項目究竟有沒有意義,是不是在同類産品中有競爭力,會不會開發出來以後就因爲硬件的發展,操作係統的換代而過時...
我認爲編程的工作和石匠比較相似,有很多是技術活甚至是體力活,但編寫優秀軟件是件很難的事。這兩種想法都有片麵性,編程應該說兩種屬性都有。編程不僅僅是技術,也還是藝術。
編程是技術活,才有可能大規模進行,才會有軟件工程。也正是編程是藝術,才會有如此多的好産品。
=== END ===
“--- 雷軍 (ID: Lei Jun) ---
... 那一天知道妳要走,我們一句話都沒有說
--- Blue Wave/DOS v2.20
* Origin: West-Point Programmer's BBS * 86-10-6237-8307 (6:650/27)