最近,和UCWEB同事討論,怎么才能把我們的UCWEB做到極致。我說,“手機(jī)上的平臺(tái)非常多,如果想做好,需要足夠多、足夠優(yōu)秀的程序員。優(yōu)秀的程序員如何定義呢?首先必須熱愛寫程序,其次必須是一個(gè)完美主義者。只有這樣的人,才能把事情做得極致。”
說著說著,我懷念起我過去寫程序的日子,從1987年到1996年,那是一段陽光燦爛的日子。幾年前我無意中從網(wǎng)上找到了1996年在金山西點(diǎn)BBS上寫幾篇帖子,現(xiàn)在讀來感慨萬千。謝謝當(dāng)年的網(wǎng)管Tony Low,他收藏了我的文章,使當(dāng)年的文章能保留至今。
重貼此文,紀(jì)念我已經(jīng)遠(yuǎn)去的長達(dá)十年的程序員生涯!我并非天生喜歡寫程序,上高中時(shí)也沒有想過程序員的生活。我學(xué)電腦非常偶然,小時(shí)好友上大學(xué)時(shí)選擇了計(jì)算機(jī)系,為了和這個(gè)朋友有更多的共同語言,我也選擇了計(jì)算機(jī)系,開始步入程序人生的道路。當(dāng)我學(xué)會(huì)一些后,發(fā)現(xiàn)自己特別喜歡寫程序。我是八七年上的武漢大學(xué)計(jì)算機(jī)系,大一下學(xué)期才有專業(yè)課。當(dāng)我有資格上機(jī)的時(shí)候,發(fā)現(xiàn)電腦世界太美妙,就一頭扎進(jìn)去。當(dāng)時(shí)用的是 Motorola 68000 (相當(dāng) 于 Intel 8088), 540K 的內(nèi)存,運(yùn)行的 UNIX 操作系統(tǒng),八個(gè)人一起用。大二學(xué)PC,又過了一學(xué)期,開始出現(xiàn)在老師的實(shí)驗(yàn)室,幫忙干活,當(dāng)時(shí)就寫了現(xiàn)在很多人用的 RI (RAMinit, 清內(nèi)存的小工具, 看來我還是最早一批寫 Shareware 的人)。又過了一個(gè)學(xué)期,開始和校外的公司接觸。大二暑假,也就是1989年8月,和一個(gè)朋友組建了 Yellow Rose 軟件小組,寫了我第一個(gè)商品軟件 BITLOK 0.99。后來自己創(chuàng)業(yè)辦過公司,也寫過一些其他的軟件。大學(xué)畢業(yè)后,分到研究所,不太適應(yīng)那里的氣氛,就在1992年初加入金山軟件,開始了職業(yè)程序員的生涯。后來成了金山軟件研發(fā)部門的主管,但我一直都是一線的程序員。我剛接觸電腦就發(fā)現(xiàn)電腦的妙處,電腦遠(yuǎn)沒有人那么復(fù)雜。如果你的程序?qū)懙煤?,你就可以和電腦處好關(guān)系,就可以指揮電腦干你想干的事。這個(gè)時(shí)候你是十足的主宰。每每你坐在電腦面前,你就是在你的王國里巡行,這樣的日子簡直就是天堂般的日子。電腦里的世界很大,編程人是活在自己想象的王國里。你可以想象到電腦里細(xì)微到每一個(gè)字節(jié)、每一個(gè)比特的東西。 我愛編程這個(gè)工作,可以肯定我會(huì)干上一輩子不少人認(rèn)為程序員最多干到三十五歲就可以收山換環(huán)境了,腦子也差不多該歇歇了,體力也不支了。并認(rèn)為寫程序是年輕人的事情,到了一定歲數(shù),估計(jì)沒什么人再當(dāng)程序員了。當(dāng)我剛有一點(diǎn)本事的時(shí)候,我也和大家一樣覺得編程辛苦,也想三十歲后干別的。當(dāng)我年長一點(diǎn)后就發(fā)現(xiàn)了自己的無知。一個(gè)人大學(xué)畢業(yè)就二十一二歲,有點(diǎn)水平的時(shí)候可能二十五,接著就是過日子諸多事情。一切搞掂的時(shí)候,也許就是三十五歲。如果這樣的話,我們就不用選擇程序人生的道路。電腦進(jìn)入中國時(shí)間并不短,但真正大規(guī)模開始用,還是八五年 PC 開始的,因此國內(nèi)真正寫電腦程序的人最長也就寫了十幾年(不知道是否還有這樣的人)。由于電腦應(yīng)用在國內(nèi)時(shí)間比較短,國內(nèi)開發(fā)的主力是三十五歲以下的年輕人為主。但這不表示程序員如同紅粉佳人般的容易衰老。美國主力工程師以三十四十多歲的人為主。開始的時(shí)候,我們覺得我們沒有什么不能做的(現(xiàn)在還能聽到這樣的豪言壯語),而且更要命的是好象我們特別聰明,特別適合開發(fā)軟件,比老外強(qiáng)得多。當(dāng)我們真正接觸那些杰出的開發(fā)人員的時(shí)候,發(fā)現(xiàn)他們太厲害了,都有十多年的開發(fā)經(jīng)驗(yàn)。雖然也有很多年輕人做了很多好東西,但絕大多數(shù)的產(chǎn)品出自這些有豐富開發(fā)經(jīng)驗(yàn)的程序員的手。剛畢業(yè)的時(shí)候,編程不僅僅是愛好,而且也成了一輩子的工作。整天不知道寫些什么東西,覺得特別沒勁,找不到感覺,特別灰心。后來,才明白,只有全身心地投入,程序才會(huì)有感覺。寫程序的活特別費(fèi)腦子,也特別累,但我喜歡,可以肯定我會(huì)干上一輩子,雖然我沒有打算一生只干這一件事。用一生來編程序是一件既容易又困難的事。如果碌碌無為,為交差寫點(diǎn)程序,這樣的日子太好混了。但如果想全身心地寫程序,寫十年就不是一件容易的事。現(xiàn)在我不少朋友都洗手了,有時(shí)我也想“用什么電腦呀,Windows 外的世界不是也很大嗎?”。面對(duì)電腦的時(shí)候,立刻頓悟:寫程序還是自己最擅長的事,也是最喜歡的事。有的人學(xué)習(xí)編程技術(shù),是把高級(jí)程序員做為追求的目標(biāo),甚至是終身的奮斗目標(biāo)。后來參與了真正的商品化軟件開發(fā)后,反而困惑了,茫然了。 一個(gè)人只要有韌性和靈性,有機(jī)會(huì)接觸并學(xué)習(xí)電腦的編程技術(shù),就會(huì)成為一個(gè)不錯(cuò)的程序員。剛開始寫程序,這時(shí)候?qū)W得多的人寫的好,到了后來,大家都上了一個(gè)層次,誰寫的好只取決于這個(gè)人是否細(xì)心、有韌性、有靈性。掌握多一點(diǎn)或少一點(diǎn),很快就能補(bǔ)上。成為一個(gè)高級(jí)程序員并不是件困難的事。當(dāng)我上學(xué)的時(shí)候,高級(jí)程序員也曾是我的目標(biāo),我希望我的技術(shù)能得到別人的承認(rèn)。后來發(fā)現(xiàn)無論多么高級(jí)的程序員都沒用,關(guān)鍵是你是否能夠出想法出產(chǎn)品,你的勞動(dòng)是否能被社會(huì)承認(rèn),能為社會(huì)創(chuàng)造財(cái)富。成為高級(jí)程序員絕對(duì)不是追求的目標(biāo)。有人認(rèn)為編程是一種熟練工種,也有人把編程說成是藝術(shù)創(chuàng)作。這兩種意見爭論比較激烈。我們換個(gè)工種來看,石匠應(yīng)該是熟練工種,屬于工人,更和藝術(shù)似乎沾不上邊。但正是這些石匠,給我們留下多少文物古跡,如樂山大佛、莫高窟等等。應(yīng)該說這些石匠給我們留下了無窮的文化財(cái)產(chǎn)。現(xiàn)代軟件工業(yè)已具相當(dāng)規(guī)模,很多軟件的完成需要的是大兵團(tuán)作戰(zhàn)。一名普通程序員接受編寫某一模塊的任務(wù)后,往往只是寫代碼,發(fā)揮的余地很小。在大項(xiàng)目中,很多程序員只能了解到和自己所編模塊相關(guān)的很局部的細(xì)節(jié),另外還受到開發(fā)環(huán)境的限制,真的很難體會(huì)到自己在從事"藝術(shù)"創(chuàng)造,更多的時(shí)候是感到自己在從事重體力勞動(dòng)。有的時(shí)候還擔(dān)心自己苦苦參與的這個(gè)項(xiàng)目究竟有沒有意義,是不是在同類產(chǎn)品中有競爭力,會(huì)不會(huì)開發(fā)出來以后就因?yàn)橛布陌l(fā)展,操作系統(tǒng)的換代而過時(shí)……我認(rèn)為編程的工作和石匠比較相似,有技術(shù)活,更多的是體力活。不管怎么說,寫出一個(gè)好軟件不是一件容易的事。這兩種想法都有片面性,編程應(yīng)該說兩種屬性都有。編程不僅僅是技術(shù),也還是藝術(shù)。編程是技術(shù)活,才有可能大規(guī)模進(jìn)行,才會(huì)有軟件工程和軟件工廠。也正是編程是藝術(shù),才會(huì)有如此多的好產(chǎn)品,讓大家如癡如醉。《我十年的程序員生涯》系列之二:我寫B(tài)ITLOK的這七年1989年8月,大二暑假,我和王全國合作寫了我的第一個(gè)正式作品BITLOK 加密軟件,主要用來保護(hù)軟件的知識(shí)產(chǎn)權(quán),防止盜版的。當(dāng)時(shí),他畢業(yè)留校了,在校辦的一家電腦銷售公司工作,我們就是利用晚上和周末時(shí)間在他們公司的電腦上完成的產(chǎn)品研發(fā)。1991年我寫了BITLOK第二個(gè)版本,1996年我在休假的時(shí)候?qū)懥薆ITLOK 3.0。后來BITLOK市場萎縮了,我就沒有再開發(fā)了。在當(dāng)時(shí),BITLOK小有名氣,不少知名的軟件公司購買了我們的產(chǎn)品,比如用友、金山等。寫B(tài)ITLOK的時(shí)候,沒有想過掙多少錢,只是因?yàn)樽约合矚g。據(jù)王全國最近的回憶,寫完BITLOK 0.99后,他把公司給50元的加班費(fèi)給了我。算起來,這是我寫B(tài)ITLOK掙的第一筆錢。沒有想到的是,后來BITLOK賣得還不錯(cuò),我們居然賺了上百萬元。這是我人生賺的第一桶金。附上我在1996年5月在BBS上寫的關(guān)于BITLOK的開發(fā)過程,紀(jì)念我十年的程序員生涯。我寫 BITLOK 的這七年
1996年5月寫于金山西點(diǎn)BBSBITLOK 是我和朋友業(yè)余開發(fā)的加密軟件。我參與開發(fā)是從八九年開始的,已有七載,BITLOK 也從最初的 0.99 版升到了現(xiàn)在的 3.0 版。對(duì)于人生旅程,七年不算長,但作為一個(gè)小產(chǎn)品的開發(fā)來說,也不算短了。這七年里,我嘗遍一個(gè)產(chǎn)品開發(fā)過程中的酸甜苦辣,借此文敘敘其中滋味。八七年我上了武漢大學(xué)計(jì)算機(jī)系,從第一門計(jì)算機(jī)專業(yè)課開始我就迷上了電腦,熱度遠(yuǎn)超過以前著迷過的集郵、圍棋等。自從學(xué)電腦后,我也似乎沒有了別的愛好,電腦成了我當(dāng)時(shí)生活中的唯一。我不再擁有宿舍里漫無邊際的侃山和圖書館里東逛西看的閑暇,也不再擁有晚自習(xí)的寧靜和周末電影院的熱鬧,為了學(xué)電腦甚至不惜經(jīng)常逃課。我學(xué)電腦是從“泡機(jī)房”開始的。那個(gè)年代,計(jì)算機(jī)還沒有現(xiàn)在這么普及, 計(jì)算機(jī)系機(jī)房 PC 機(jī)全部不超過十五臺(tái),上機(jī)自然緊張。我的解決上機(jī)問題的訣竅就是“泡”,每天呆在機(jī)房里磨蹭。我最好的運(yùn)氣就是別人不來,有空的機(jī)器;如果有人不懂,我也可以借指導(dǎo)之機(jī)用一會(huì);實(shí)在不行,就坐一邊看看熱鬧。“泡機(jī)房”也是一件很痛苦的事,有時(shí)候遇到不好說話的機(jī)房管理員,死活就是不讓你進(jìn)去。一般想泡機(jī)房就必須提前一個(gè)小時(shí)去在門前排隊(duì),武漢的冬天是沒有暖氣的,非常冷,但機(jī)房里又必須穿拖鞋,我們機(jī)房旁邊就是一個(gè)風(fēng)口,在機(jī)房門前穿拖鞋等上一個(gè)多小時(shí)就已經(jīng)凍得直哆嗦,但我還是樂此不疲。后來我去得太頻繁,以至于后來機(jī)房管理員見著我,不問有沒有上機(jī)票就往外轟。學(xué)電腦的機(jī)會(huì)就是如此不容易,以至現(xiàn)在電腦隨便用的時(shí)候,玩游戲仍然覺得有點(diǎn)浪費(fèi)時(shí)間。大二的下學(xué)期,當(dāng)時(shí)想學(xué)的東西都學(xué)得差不多了,就有了一種特別強(qiáng)的表現(xiàn)欲望:可不可以寫點(diǎn)什么軟件,讓大家都來用。當(dāng)時(shí)我認(rèn)為,在國內(nèi)做軟件,一定要掌握中文處理和加密這兩項(xiàng)最關(guān)鍵的技術(shù)。中文是中國軟件開發(fā)的障礙,它使中國用戶不容易同步享受世界最新的軟件成果,同時(shí)也是中國軟件產(chǎn)業(yè)的天然壁壘,一個(gè)不是在漢文化環(huán)境中成長起來的程序員很難突破這個(gè)壁壘,所以中文會(huì)保護(hù)中國軟件產(chǎn)業(yè),也是中國軟件的市場和希望所在。加密技術(shù)是產(chǎn)品銷售的保證,國內(nèi)盜版嚴(yán)重,不加密的軟件當(dāng)時(shí)沒有經(jīng)銷商愿意賣。 為了以后寫軟件比較方便,我考慮寫一個(gè)加密工具。八九年上半年,我寫了一個(gè)雛形。后來這個(gè)雛形能夠成為產(chǎn)品,主要是我認(rèn)識(shí)了合作伙伴王全國。當(dāng)時(shí),天下居然有這樣的巧合,我在寫加密軟件內(nèi)核的時(shí)候,他正在寫加密軟件的界面,合作就成了很自然的事情。我們計(jì)劃花半個(gè)月的時(shí)候構(gòu)造一個(gè)實(shí)際可用的軟件。最后我們按時(shí)完成了計(jì)劃,我現(xiàn)在還清楚地記得完成的時(shí)間是1989年8月17日。在這段合作中,工作量非常大,工作非常辛苦,一般要從工作到深夜二三點(diǎn),就合衣睡在沙發(fā)上,第二天別人八點(diǎn)上班,我們必須起床。半個(gè)月下來,兩個(gè)人瘦了一大圈,臟衣服也累積了一大堆。有個(gè)禮拜天,我們從早上干到了傍晚,出門吃飯,見到了夕陽,當(dāng)時(shí)大家還開了個(gè)玩笑:當(dāng)我們見到太陽的時(shí)候,太陽已經(jīng)下山了。雖然我們這次開發(fā)只用了半個(gè)月的時(shí)候,當(dāng)時(shí)我們決定沒有想到以后會(huì)堅(jiān)持開發(fā)了七年。產(chǎn)品做完后,我們非常激動(dòng),心想該為我們這個(gè)開發(fā)組取個(gè)響亮上口的名字。以前看過一個(gè)電影,叫“神秘的黃玫瑰”,說的是一個(gè)除暴安良的神秘人物,我們做加密軟件就是為了扼制盜版,所以借助這個(gè)故事,取名黃玫瑰。我們把產(chǎn)品取名 BITLOK,版本號(hào)設(shè)定為 0.99,因?yàn)檫@個(gè)產(chǎn)品距真正好的版本還有距離。這個(gè)版本不算成功,但激起了我開發(fā)商品軟件的熱情和信心,接著開發(fā)了幾個(gè)小產(chǎn)品。當(dāng)時(shí),我躊躇滿志,硅谷英雄的故事時(shí)時(shí)燃燒著我的胸膛,經(jīng)常夢想著有一天能創(chuàng)建一個(gè)一流的軟件公司,滿世界都用我們的軟件,于是不太屑于開發(fā)這些小產(chǎn)品。我自嘲過 BITLOK,謂之“雕蟲小技”。在快樂沒有人分享的日子里,我獨(dú)自完成了 BITLOK 1.0北京是中國電腦業(yè)的圣地。畢業(yè)的時(shí)候,我對(duì)于去北京非常執(zhí)著,就象飛娥撲火一樣。我覺得,北京較之武漢,信息要靈通很多,市場也要大很多。當(dāng)其他同學(xué)選擇了深圳和廣州,講述那里的鈔票盛況的時(shí)候,我沒有絲毫的心動(dòng)。滿懷著干一番大事業(yè)的心情,分到了一個(gè)研究所,參與很大項(xiàng)目。雖然工作在郊區(qū),工資很微薄,我也不曾在意過,但一直找不到參與大項(xiàng)目的感覺。在那段時(shí)間,時(shí)間過得非常慢,慢得不知道如何打發(fā)。這個(gè)時(shí)候,我認(rèn)識(shí)了蘇啟強(qiáng),當(dāng)時(shí)他是用友公司的副總經(jīng)理,他建議我繼續(xù)開發(fā)加密軟件。就這樣,盡管我不愿意再開發(fā)小產(chǎn)品,但沒有別的選擇,就繼續(xù)開發(fā) BITLOK 新版。從開發(fā)第一個(gè)版本到我大學(xué)畢業(yè),已經(jīng)過了兩年, 水平有了提高,回頭看看過去的產(chǎn)品,決定推倒重寫。這個(gè)時(shí)候再寫軟件,比以前麻煩得多,白天要上班,雖然辦公室沒有多少事可干,但也不能干別的,周末還要到中關(guān)村會(huì)會(huì)朋友。這樣,我的時(shí)間只有周一到周五的晚上。那個(gè)時(shí)候,為了節(jié)約時(shí)間,我經(jīng)常用小時(shí)來安排晚上的日程表。有時(shí)如果完不成計(jì)劃就干通宵。干通宵雖然累,但也有某種精神上的安慰。每每凌晨的時(shí)候,萬籟俱寂,而我一個(gè)人還在電腦前干活的時(shí)候,當(dāng)時(shí)有一種極大的精神鼓舞著我:我在用別人睡覺的時(shí)候干活。這個(gè)時(shí)候,嘈雜的電腦風(fēng)扇和敲鍵盤的聲音就成了悅耳的音樂。干通宵最深刻的記憶是有次凌晨四點(diǎn),程序?qū)懲甑臅r(shí)候,存盤時(shí)死機(jī)了,把備份的文件寫成了零字節(jié),而我第二天必須給人演示這個(gè)程序。我已經(jīng)不可能把整晚上的工作全部重寫,當(dāng)時(shí)我都呆了,不知道說什么好。同宿舍的朋友醒了,幫我從硬盤里的第一個(gè)扇區(qū)找起,花了兩個(gè)小時(shí),全部找回來了。我那個(gè)朋友后來開玩笑說我當(dāng)時(shí)快哭出來了。那個(gè)時(shí)候的辛苦由想可知,由于剛開始工作,不好意思遲到,只能勉強(qiáng)自己少睡點(diǎn)。但我面臨的最大痛苦不是苦累,也不是報(bào)酬太低,而是快樂沒有人分享。每每我遇到一個(gè)難關(guān),不會(huì)有人幫忙解決;花費(fèi)很大的力氣解決的時(shí)候,高興得手舞足蹈,也沒有人分享。“獨(dú)樂樂不如與眾同樂”,在那段光陰,想“與眾同樂”都不可能,只有“獨(dú)樂樂”。這是多么悲哀!在快樂沒有人分享的日子里,我終于完成了 BITLOK 1.0。作為開發(fā)產(chǎn)品,如果沒有用戶和朋友的支持,這是非??杀氖?,但一個(gè)開發(fā)者只有勇于寂寞、甘于寂寞,也可能開發(fā)出好的產(chǎn)品。這個(gè)版本的軟件后來被不少軟件公司選用,如用友、超想、金山等等,BITLOK 加密后的軟件在超過一百萬臺(tái)的計(jì)算機(jī)上使用過。這是最令我非常歡心鼓舞的事。為了實(shí)現(xiàn)開發(fā)大軟件的夢想,我義務(wù)反顧地加盟了金山軟件,同時(shí)也邀請(qǐng)了過去的伙伴們一起加入。在開發(fā)大型軟件(這個(gè)軟件就是后來的“盤古組件”中的一部分)之余,BITLOK 的開發(fā)也只能是業(yè)余的。在金山友愛的環(huán)境里,不少的同事協(xié)助我完成了不少工作,更值得提起的是,完成一個(gè)版本,同事就來試探解密,發(fā)現(xiàn)問題再告訴我,我再完善,如此多次,最后才定型。BITLOK 1.2 就是依靠集體的力量開發(fā)完成的。這個(gè)時(shí)候 BITLOK 已經(jīng)是一套很完善的商品軟件,但從來沒有作為一套 真正的商品軟件在貨架上銷售過。BITLOK 從技術(shù)上講比較成熟了,但從市場上講,等于還是一個(gè)實(shí)驗(yàn)室的作品。九三年,有個(gè)朋友有興趣推銷,我堅(jiān)持認(rèn)為 BITLOK 是一個(gè)業(yè)余產(chǎn)品。后來在這個(gè)朋友再三的勸說下,BITLOK 才有機(jī)會(huì)擺在貨架上。這個(gè)朋友非常盡心,產(chǎn)品宣傳和技術(shù)服務(wù)都下了很大的功夫,BITLOK 很快就贏得了不少客戶。BITLOK 在我們的技術(shù)加上這位朋友的宣傳和服務(wù),成為了一個(gè)真正的商品。如果一個(gè)產(chǎn)品沒有市場宣傳、銷售和售后服務(wù)等多項(xiàng)保證,就不是一個(gè)真正的商品軟件。如果沒有那個(gè)朋友非常下功夫的推廣,BITLOK 永遠(yuǎn)也成不了真正的商品軟件。對(duì)于這位朋友,我總存有很多感激之情。產(chǎn)品不僅屬于開發(fā)者,更屬于用戶以后幾年的開發(fā)中,BITLOK 一直堅(jiān)持開發(fā),出了一系列的版本,已經(jīng)有不少的用戶在使用,他們提出了不少好的建議,我們也堅(jiān)持把他們的意見綜合到產(chǎn)品中去。這樣,BITLOK 也更受用戶歡迎。從這里我得到一個(gè)結(jié)論,產(chǎn) 品是開發(fā)者和用戶合作的產(chǎn)物,產(chǎn)品不僅屬于開發(fā)者,更屬于用戶。如果說 BITLOK 比同類軟件好的話,就是在采納用戶意見方面。BITLOK 已經(jīng)取得了一些成績,但我們冷靜地分析過加密軟件的市場,發(fā)現(xiàn)幾個(gè)方面的問題:一、加密軟件只有開發(fā)者才用,市場很小,整個(gè)市場每年不到一千套,作為業(yè)余興趣,還能接受,作為公司的開發(fā)項(xiàng)目的話,并不合適;二、隨著軟件市場的繁榮,國內(nèi)有些軟件開始試探不加密銷售的方法,這是軟件市場發(fā)展的趨勢。不少朋友認(rèn)為加密軟件不用做了。不少知道我開發(fā)加密軟件的朋友,經(jīng)常告訴我一些新的解密方法和解密工具,老用戶也在繼續(xù)打電話詢問新版本的開發(fā)情況和提出修改意見。這個(gè)時(shí)候,我感到了很大的壓力:產(chǎn)品也屬于用戶,不是我想停就可以停得了的。如果不能成為公司的開發(fā)項(xiàng)目,那就繼續(xù)作為興趣開發(fā)好了,只不過是我自己更辛苦點(diǎn)。不管什么說,BITLOK 還有很多用戶需要升級(jí)維護(hù)。至于未來市場的發(fā)展 來說,還有一個(gè)相當(dāng)長的過程。再說,就是在美國,還是有不少的專業(yè)加密軟件。過去我一直認(rèn)為 BITLOK 是一個(gè)小產(chǎn)品,是憑興趣開發(fā)。當(dāng) BITLOK 的背后有了這么多用戶的支持,我無法認(rèn)同自己以前的觀點(diǎn),這些用戶使我感到壓力,也多了很多責(zé)任感。不管有沒有經(jīng)濟(jì)效益,我決心寫一個(gè)全新的 3.0,徹底解決過去用戶提出的各種問題,讓過去的用戶有一次升級(jí)的機(jī)會(huì)。今年來,我一直希望有整塊時(shí)間來重寫自己的程序,但自己的日常工作非常繁重。好不容易,才抽出幾個(gè)月的時(shí)間,在不少朋友的幫助下,重寫了全部的代碼。在原有的基礎(chǔ)上修修補(bǔ)補(bǔ),已經(jīng)不是辦法,在多年的修改過程中,BITLOK 已經(jīng)超過了三萬行代碼。作為一個(gè)業(yè)余的程序,已經(jīng)不算短了,也很難修改。但全部重寫自己的程序,又要有很大的勇氣。在原有經(jīng)驗(yàn)的基礎(chǔ)上,使用了一些突破的技術(shù),我還是花了很大的心血寫完了 BITLOK 3.0。不管 BITLOK 3.0 寫得如何,我盡心了。我想,如果 BITLOK 還有人用,我就肯定會(huì)花時(shí)間來維護(hù);如果沒人用了, 也就到了“壽終正寢”的時(shí)候,我也該“洗手”了。慘痛的大學(xué)創(chuàng)業(yè)失敗的經(jīng)歷1987年我上了武漢大學(xué)計(jì)算機(jī)系。武大是國內(nèi)最早一批實(shí)施學(xué)分制的大學(xué),只要修完一定的學(xué)分就可以畢業(yè)。剛上大學(xué),我對(duì)自己要求比較嚴(yán),就開始選修了不少高年級(jí)的課程。僅用了兩年時(shí)間,我就修完了所有學(xué)分,甚至完成了大學(xué)的畢業(yè)設(shè)計(jì)。(關(guān)于如何兩年修完全部課程,不少大學(xué)生非常關(guān)心,我以后會(huì)詳細(xì)介紹。)
雖是速成,我的成績還是不錯(cuò)的。當(dāng)年《PASCAL程序設(shè)計(jì)》課程的作業(yè),老師覺得非常出色,選作了下一版教材的示范程序。據(jù)后來的師弟們說,我是系里二十年來拿過《匯編語言程序設(shè)計(jì)》滿分成績的僅有兩個(gè)學(xué)生之一。那時(shí),我酷愛寫程序,已經(jīng)在老師實(shí)驗(yàn)室“泡”了一年多,成了各個(gè)實(shí)驗(yàn)室的“老油條”。
讀完兩年大學(xué),我已經(jīng)不滿足于校園生活,準(zhǔn)備闖蕩江湖了。當(dāng)年的游俠,必備如下的裝備:一輛破自行車和一個(gè)破包,包里至少要裝兩盒磁盤及三本很厚的編程參考書。武大櫻園宿舍到電子一條街,距離并不遠(yuǎn),但走路需要四五十分鐘,自行車成了必須的裝備,新自行車招賊,所以最好是輛“破”自行車。當(dāng)年最好的電腦是286,內(nèi)存也只有1M。對(duì)于一個(gè)高手來說,所有常用軟件必須自備,至少需要20張軟盤。編譯工具里沒有編程接口資料,也沒有電子版的圖書,只好常備幾本很厚的編程資料。那時(shí)的書質(zhì)量不高,內(nèi)容也不全,還常常有很多錯(cuò)誤,至少需要三本對(duì)照著看。背著三本很厚很沉的書跑來跑去,肯定不是一件舒服的事情。就是那個(gè)時(shí)候,我下定了決心,要寫一本沒有錯(cuò)誤、內(nèi)容全面的編程資料書,讓所有程序員只帶一本書就可以了。這本書就是我和同事1992年合著的《深入DOS編程》。就這樣,我騎著破自行車,背著裝滿磁盤和參考書的大包,開始闖蕩武漢電子一條街。剛出道時(shí),我的想法比較簡單,只要能學(xué)東西,干什么都可以,賺不賺錢不重要。我對(duì)各種新生事物都抱著非常濃厚的興趣。接下來的兩年,涉獵之廣,令我自己今天也很驚訝。我寫過加密軟件、殺毒軟件、財(cái)務(wù)軟件、CAD軟件、中文系統(tǒng)以及各種實(shí)用小工具等,和王全國一起還做過電路板設(shè)計(jì)、焊過電路板,甚至還干過一段“黑客”,解密各種各樣的軟件。兩年混下來,各家電腦公司老板都成了熟人,他們有任何技術(shù)難題,都愿意找我?guī)兔?。這樣,我成了武漢電子一條街的“名人”。1989年5月,我在電子一條街上認(rèn)識(shí)了王全國,他在一家校辦的賣電腦的公司里負(fù)責(zé)技術(shù)支持。很快,這位比我高三級(jí)、年長四歲的留校老師成了我最好的朋友,我們的友誼一直延續(xù)到今天,現(xiàn)在他在金山,任副總裁兼CIO。
當(dāng)時(shí)他想做加密軟件,正在做一個(gè)加密軟件的界面,而我正好在寫加密軟件的內(nèi)核。我們倆約定暑假合作寫款加密軟件。八月份正是開始,我們兩個(gè)人大約用了兩周時(shí)間,沒日沒夜的辛苦,完成了所有編碼、測試、界面設(shè)計(jì)以及說明書等,這款加密軟件就完成了。
當(dāng)時(shí)正在放映電影《神秘的黃玫瑰》,王全國就建議以“黃玫瑰小組”(Yellow Rose)來署名我們的作品。就這樣,黃玫瑰小組誕生了。以后我們?cè)谧约旱淖髌防锩?,?jīng)常用 “饋人玫瑰之手,歷久猶有余香”這句話作為標(biāo)準(zhǔn)簽名檔。
BITLOK發(fā)布后,獲得了同行不少的贊譽(yù),“黃玫瑰小組”也開始有了點(diǎn)名氣。1989年底,計(jì)算機(jī)病毒剛剛在國內(nèi)出現(xiàn),就引起了我極大的興趣。為了解決學(xué)校機(jī)房染毒的問題,我和同學(xué)馮志宏合作開發(fā)出了《免疫90》,這是我寫的第二款商業(yè)軟件。
回憶起當(dāng)時(shí)的合作,馮志宏說:“當(dāng)時(shí)病毒流行來,就起了念頭要做一個(gè)殺毒軟件,兩個(gè)人都有這個(gè)想法,就有合作啦。當(dāng)時(shí)的條件并不好,我們?cè)谕饷娴囊粋€(gè)公司找了一臺(tái)機(jī)器上機(jī),兩個(gè)人分工合作開發(fā)程序,因?yàn)楹僮杂蓵r(shí)間比較充裕,就選擇了在寒假進(jìn)行開發(fā)。武漢的冬天特別冷,每天我們都從武大騎車到那個(gè)公司去上機(jī),風(fēng)雪無阻,腳也生了凍瘡,放假時(shí)食堂吃飯不方便,就經(jīng)常自己動(dòng)手煮波紋面,直到幾年后雷軍還在提‘馮志宏煮的波紋面很好吃’?!?br> 免疫90是用PASCAL寫的,最終的版本可以查、解當(dāng)時(shí)發(fā)現(xiàn)的所有病毒。我現(xiàn)在還對(duì)這個(gè)程序記憶猶新:這個(gè)殺毒軟件具備病毒免疫功能,如果染上病毒,該程序可以像抖落身上灰塵一樣把病毒清除;還做到了樣本庫升級(jí)和在英文環(huán)境下英文顯示,在中文環(huán)境下中文顯示;用戶甚至可以用文本方式手工增加病毒庫。這些功能今天看來沒有什么,但大家想想這是1989年底我們的作品。
免疫90售價(jià)260元一套,上市后在武漢就賣出了幾十套,我們每人賺了好幾千元。在老師推薦下,免疫90獲得了湖北省大學(xué)生科技成果一等獎(jiǎng)。我在《計(jì)算機(jī)世界》等刊物上發(fā)了很多篇關(guān)于病毒的文章,成了當(dāng)時(shí)小有名氣的“反病毒專家”;最讓我難忘的是,還在學(xué)術(shù)刊物《計(jì)算機(jī)研究與發(fā)展》上發(fā)表一篇學(xué)術(shù)論文,并入選第一屆青年計(jì)算機(jī)大會(huì)論文集。當(dāng)時(shí),湖北省公安廳還專門請(qǐng)我講課,講反病毒技術(shù)。
1990年,隨著防病毒市場逐步開始啟動(dòng),公安部介入了反病毒軟件的研發(fā)及產(chǎn)品管理。我沒有正式從大學(xué)畢業(yè),覺得寫殺毒軟件麻煩太多了,就暫停了免疫90的后續(xù)研發(fā)。我還與馮志宏合作開發(fā)過一個(gè)共享軟件RI(RAMinit,清內(nèi)存的小工具)。
當(dāng)時(shí)RI很流行。之所以能夠流行,是因?yàn)楫?dāng)時(shí)電腦的內(nèi)存很小,在運(yùn)行程序多了之后會(huì)導(dǎo)致系統(tǒng)速度變得很慢,而有些軟件則可能因?yàn)閮?nèi)存被其他資源占用而無法運(yùn)行,這時(shí)候就需要重啟電腦。RI執(zhí)行以后駐留內(nèi)存,然后隨時(shí)可以通過可自定義的熱鍵(默認(rèn)同時(shí)按下左Ctrl和右Ctrl)來清除當(dāng)前的環(huán)境或正在執(zhí)行中的程序,回到駐留RI時(shí)的DOS提示符狀態(tài)下。為了讓更多的用戶免收頻繁重啟的痛苦,我決定把這款工具軟件完全免費(fèi)。
這個(gè)產(chǎn)品對(duì)于程序員調(diào)試程序非常方便。開發(fā)軟件的過程中,總存在很多死機(jī)的 bug, 需要頻繁重啟電腦。使用RI可以提高程序員的效率。很快,RI在當(dāng)時(shí)程序員也幾乎是人手一份的必備工具。
1992年底,我花了整整三天時(shí)間重寫了RI,新版的RI 2.0功能更為強(qiáng)勁。為了讓更多的程序員來幫我修改完善,我公布了所有的源代碼。
看來RI也算國內(nèi)最早一批開放源代碼的免費(fèi)軟件了。1990年初,我在一個(gè)朋友那用了WPS漢卡,當(dāng)時(shí)就被震住了。界面易用美觀,更強(qiáng)的是打印結(jié)果可以先模擬顯示出來。署名是香港金山公司求伯君,覺得這個(gè)“香港”軟件寫得真好。由于當(dāng)時(shí)的電腦存貯和運(yùn)算能力不足,WPS軟件需要一塊價(jià)值不菲的漢卡支持。我特別想買套來用用,但買一套需要2000多元,這在當(dāng)時(shí)是一個(gè)天文數(shù)字。沒有辦法,我決定把WPS解密,并移植到普通電腦上直接使用。
這可不是件容易的事情,我?guī)缀跤袃芍軟]怎么睡覺,終于完成了。在使用過程中,我又在原來的基礎(chǔ)上做了一些增強(qiáng)和完善,不少朋友覺得很好用。于是,我解密的WPS版本成了國內(nèi)最流行的WPS版本了。因?yàn)檫@個(gè)淵源,我后來認(rèn)識(shí)了求伯君。
我成功破解過不少軟件后,成了當(dāng)時(shí)圈子里面幾大解密高手之一。有次一個(gè)朋友告訴我,《自然碼》加密做得很牛。我和王全國就著手解密《自然碼》,沒過多久就搞定了。但研究完后,覺得自然碼的代碼寫得非常好,越研究就越佩服自然碼的作者周志農(nóng)。后來我到北京,第一個(gè)想認(rèn)識(shí)的牛人就是周志農(nóng)。失敗的大學(xué)創(chuàng)業(yè)經(jīng)歷我在圖書館看了一本《硅谷之火》,深深被喬布斯的故事吸引。八十年代是喬布斯的年代,他是全世界的IT英雄,當(dāng)年的影響力絕不亞于今天。九十年代初,連蓋茨都說,他只不過是喬布斯第二而已。在電子一條街打拼一段時(shí)間后,自我感覺良好,就開始做夢:夢想寫一套軟件運(yùn)行在全世界每臺(tái)電腦上,夢想辦一家全世界最牛的軟件公司。于是,下面的故事就是這樣開始了。那是1990年七八月,大三暑假。王全國有個(gè)同事,和他的一個(gè)朋友想辦家公司,拉我和王全國入伙。他們倆人負(fù)責(zé)市場銷售,我和王全國負(fù)責(zé)技術(shù)和服務(wù),股份四個(gè)人平分。我和王全國對(duì)自己的技術(shù)相當(dāng)自信,他們倆也對(duì)自己的銷售能力非常自信,好象“天作之合”,我們幾乎沒有猶豫就答應(yīng)了。我當(dāng)時(shí)想,喬布斯、蓋茨、戴爾就是大學(xué)創(chuàng)業(yè)成功的,我為什么不可以?想到這些,頓時(shí)熱血沸騰,腦子暈暈的。今天回想起來覺得好奇怪,我們好象根本就沒有討論過,開公司誰投錢,開張后做什么,靠什么賺錢等等實(shí)際問題。真的是“人有多大膽,地有多大產(chǎn)”。
公司取名為三色Sunsir,我們希望紅黃藍(lán)三原色創(chuàng)造七彩的新世界,放飛我們創(chuàng)業(yè)的夢想。我們四個(gè)人都沒有什么錢,也沒有找人投資,最后還是我?guī)凸灸昧说谝粡垎巫淤嵙藥浊г?,才開始啟動(dòng)了。
剛開始,租用了珞瑜飯店103房間作為辦公室。我們什么賺錢就做什么,沒什么套路。每天忙得熱火朝天,白天跑市場銷售,晚上回來做開發(fā)。后來找了一個(gè)方向,做仿制漢卡。辦公室十幾平方米,放了桌子和電腦,就沒什么地方。我們晚上基本不回宿舍,睡覺的時(shí)候五六個(gè)人就直接躺在辦公室里。實(shí)在找不到地方躺的人,就只能坐在電腦前干活了。不久,李儒雄加入了我們的團(tuán)隊(duì)。他也是一個(gè)很能干的人,后來他參與創(chuàng)辦了連邦軟件,曾任連邦軟件總裁。
沒過多久,我們仿制漢卡的技術(shù)就被人盜用了,他們一次做的量比我們大,賣的價(jià)錢也比我們便宜,這個(gè)產(chǎn)品幾乎沒掙到什么錢。
看起來我們的團(tuán)隊(duì)也很強(qiáng)大,公司人最多的時(shí)候有十四個(gè)人,業(yè)務(wù)范疇也挺寬的,賣過電腦,做過仿制漢卡,甚至接過打字印刷的活。實(shí)際上,帳上基本沒什么錢,連吃飯都是個(gè)問題。有個(gè)兄弟吹牛說他麻將打得好,自告奮勇去和食堂師傅打麻將,真的贏了一大堆飯菜票。后來實(shí)在沒錢的時(shí)候,我們就派他去打麻將贏飯菜票。我們就是這樣過日子的。
還有件很煩心的事,就是四個(gè)股份相同的股東,誰做董事長,誰說了算。我當(dāng)年二十歲剛出頭,不想摻和這樣的事情,但他們好幾次把我從武大的教室里面叫出來開會(huì),一開就是一通宵。短短幾個(gè)月時(shí)間,董事長改選了兩次。和所有創(chuàng)業(yè)公司一樣,中間還發(fā)生過好多好多事。高漲的創(chuàng)業(yè)熱情被殘酷的現(xiàn)實(shí)一天一天消磨,我開始思考一個(gè)問題:作為一個(gè)大四的學(xué)生,我是否具備創(chuàng)業(yè)所需要的能力?琢磨了好幾個(gè)晚上,我提出了散伙。
那是冬天的一個(gè)星期天,大家同意了我和王全國退出,我們分了一臺(tái)286、一臺(tái)打印機(jī)和一堆芯片,就離開了。雖然我們一起創(chuàng)業(yè)只有半年多時(shí)間,回想起來過去的事情歷歷在目,覺得有一個(gè)世紀(jì)那么漫長。
經(jīng)過了創(chuàng)業(yè)的煎熬,回到學(xué)校,心里輕松極了,一個(gè)人走在武大的櫻花路上,覺得陽光燦爛。
我的大學(xué)創(chuàng)業(yè)過程就這樣慘淡收?qǐng)隽恕?br> 我覺得,人就是在挫折和失敗中成長的。正因?yàn)檫@次失敗,我對(duì)自己的能力有了清醒的認(rèn)識(shí),也為未來的發(fā)展做好了腳踏實(shí)地、一步一步干的心理準(zhǔn)備。我不顧一切來到了中國IT的中心北京,闖蕩京城的故事就這樣開始了。
猜您喜歡:

等你著陸!【GAN生成對(duì)抗網(wǎng)絡(luò)】知識(shí)星球!
超100篇!CVPR 2020最全GAN論文梳理匯總!
附下載 | 《Python進(jìn)階》中文版
附下載 | 經(jīng)典《Think Python》中文版
附下載 | 《Pytorch模型訓(xùn)練實(shí)用教程》
附下載 | 最新2020李沐《動(dòng)手學(xué)深度學(xué)習(xí)》
附下載 | 《可解釋的機(jī)器學(xué)習(xí)》中文版
附下載 |《TensorFlow 2.0 深度學(xué)習(xí)算法實(shí)戰(zhàn)》
附下載 | 超100篇!CVPR 2020最全GAN論文梳理匯總!
附下載 |《計(jì)算機(jī)視覺中的數(shù)學(xué)方法》分享