金旭亮:一個普通IT人的十年回顧(上)
作者簡介:金旭亮于1989年與超級解霸的開發者梁肇新同時邁入廣西大學的校門,卻走了一條與其不同的路。1994年起開始自學計算機專業本科課程,并開始編程,從未間斷,迄今已逾10年,仍對軟件癡心不改。2002年北京理工大學計算機運用技術專業研究生畢業,后留校任教,主講程序設計系列課程。2003年在CSDN論壇發表自傳——《一個一般IT人的十年回顧》,細訴自己的崎嶇學習經歷,言辭激動澎拜,沾染了無數學子之心。發表后一石激發千層浪,先后收到近千封海內外郵件,對作者經歷與觀點驚嘆不已。以下是全文。
今年(2003年)是我大學畢業滿10年的日子,也是我投身IT技術的第10年。一直想能對從前的經歷做些回想與反思,以更好地走向將來,但總沒有下筆。恰好CSDN舉行“講述程序員的故事”征文,這件事成了一個引子,我終于趁著暑期有時間,敲了一天鍵盤,便有了這篇人生自述。
10年對于一個人來說是比擬長的一個階段,10年之后,同期大學畢業的同學情況差別之大,讓人嘆氣運氣之變幻莫測。
我在此記載下了我的生活腳印,由于時間較長,有些事記得不太清了,但我是盡量真實的記載當時的情形,有興趣看我這篇長文的人請把我看成是一個在你我旁邊一塊生活,一起喜怒哀樂,一起努力的平常人,相信我們之間會有很多逾越時空的感情交流。
序
從1994到2003,人不知鬼不覺之間,我已在計算機技術的世界里沉迷了十年。有位愚人說過:如果一個人能用十年的時間聚精會神地研究一門學識,或學習一門手藝,或從事一個職業,他一定能成為這個范疇的專家。我天資平淡,但哲人的話是有情理的。我用十年的時間先成為了一名合格的程序員,再成為了一個重點大學計算機專業的大學先生。十年磨一劍,驀然回想,年華如水,青春如歌!
我父母都是城市中的布衣,家景僅能解決饑寒,我想我可能代表了中國社會的一大類青年,我的經歷與領會可能會對許多條件并不好的年輕程序員有所啟發:只有努力,天資差與環境不好都是可以戰勝的。因為我不是牛人,所以我不能教你如何成為牛人,我只是盡量真實地寫下我的經歷與感受,寫一個平凡人的努力過程。我為我是一個軟件開發者而自豪,為我從事的教書育人的事業而驕傲,并樂意為中國落伍的軟件業盡己微薄之力,為此,我人生無悔!
我想分為三局部講述我的人生經歷:上篇–學習人生:重要是我學習計算機技術的經歷與感想,時間跨度大約是從1994~1996年;中篇–艱苦人生:主要是我流跡社會,失業一年半,三次考研的苦楚閱歷;時間跨度大概是從1997~1999年;下篇–實踐人生:主要是我的技巧實踐經歷:在公司打工,開發軟件,畢業求職與教書生活,時間跨度是1999~2003。
上篇:學習人生
一、計算機是什么貨色?
我是七十年代初在中國誕生的那一代人,等我們長大開始讀書時,文革已經停止,相對我們的兄長,從我們這一代開始,當前出身的孩子都能受到較為正規的教導,這是我們榮幸的處所。
也就是我們上小學的時候,七十年代末,以美國為技術資源中央的計算機技術開始在寰球范疇內迅猛發展,這時恰是世界性的“軟件危機”極為重大的時候,計算機技術各方面都在醞釀著新的沖破,而此時比爾·蓋茨也正在籌備構建他的明日微軟帝國。
七十年代末與八十年代初,在我們的生活中,看不到一點計算機技術的影子,剛改造開放的中國,99%以上的人連“計算機”這個詞恐怕都沒據說過,中國游離于信息技術大門之外。
在“振興中華”成為時代主旋律的八十年代,全部中國真的是浮現出一種勃勃的活力,這是一個民族在經歷百年羞辱,十年之后的再起步,象一些老歌—《金梭與銀梭》、《在愿望的原野上》等,就是當時青年的一種踴躍向上的精神風貌的體現。這種環境下,對于正在成長中的我們這一批少年,在潛意識中有極為深刻的影響,我們認為愛國與振興中華是理所當然的事,并且成為了努力學習的主要動力(呵呵,現在的一些“憤青”——惱怒青年一定會說我們當時被“洗腦”了,興許真的是吧,這種確切會給人以極大的能源,我看不出有什么不好,至少我不會有現在這一批青年所經歷的異常迷茫的感覺)。
1986年我考上了桂林市重點高中——桂林中學,在那兒,我第一次見到了電腦。
1、中學的計算機興趣班
1987年我在桂林中學讀高二,桂中是重點高中,條件較好,當時學校課外部署了兩個班:無線電班和計算機班,我上的是計算機班,當時用的微機是AppleII,用BASIC編程。記切當時中國也開發了一種同品位的計算機,叫做中華學習機,要在中小學中鼎力推廣,但AppleII后來發展成了有名的Mac系列,并占有了自己的操作系統,而中國的中華學習機,還有后來的小霸王等電腦學習機,都無疾而終了。
學校支配上機,有同學不知從哪找來了一些有趣的BASIC程序,什么“比翼雙飛”,“飛機空戰”等等,都是一些非常簡單的小游戲,當時他抄了厚厚一本,一上機就敲一些到計算機中運行,而我是一點也不會,只有站在一邊看的份。
那時會計算機的人很少,老師講的我又不清楚,考試的時候也不曉得怎么過的。呵呵,后來我讀研打工時,在網上看到洛陽一個高中生用VB編的一個“電子書童”程序,水平之高,我當時真是沒法比。
1989年,廣西高考名額一下減了7000多,競爭劇烈,十幾人里才干取一個,由于壓力過大,我高考前夕失眠,第二天考語文,120分的試卷當時只考了68分,因此與重點高校無緣。本想復讀,但父母怕我來年考不上,一定要讓我讀廣西大學,我萬分不甘心地服從了父母的志愿,去了我不喜歡的學校,讀了我不喜歡的專業。男怕入錯行,我在大學畢業后從新開始學我喜歡的專業,足足用了五六年的時間才轉過來,真正成為一名及格的勞動者,走了一條長長的彎路,所以,父母的決定對缺少教訓與決斷力的孩子而言,真的是無比主要。
現在想起來,父母當時沒錯,我也沒錯,那都是在時期與社會環境下的天然抉擇。
2、失敗的四年本科與工作初期
四年里我是個老誠實實的好學生,但四年除了玩命過了六級,什么也沒學會。
記得大學第一節課就是BASIC語言,呵呵,也基本沒學會,但我看來注定了要與BASIC難解難分了,后面的實踐篇中我會講我用BASIC開發的事。
大學里我學的專業是電力系統主動化,學過微機原理與Fortran,上機時還用的是古老的主機加終端方式的計算機(叫做l/f機),我上機時真是烏煙瘴氣,因為這門課我從沒學進去,也從沒學懂過。有同學很厲害的,會用電腦打印出許多美麗的圖片(當然現在看起來很毛糙,針式打印機打的),我那時就稱這些人為牛人了。
呵呵,我如果沒記錯的話,做超級解霸的梁肇新也是廣西大學的,但不是我們系,記得我當時就已聽到有關多少個計算機牛人的事,估量其中就有他吧,如果我記錯了,梁肇新先生請斧正。在本科期間,我對電腦是神秘多于興趣。這也闡明我成為不了牛人與大師,天資有限。后來,我發現一個廣泛的法則,如果能成為計算機方面的牛人與巨匠,請去翻翻他們的傳記,絕大多數在本科期間就已展露出他們的才干。而我們現在的中國高校,這么多的本科生都在為考試、考研、考托、考G而奔走,這種填鴨式的應試教育體制,抹殺了太多學生的發明性。結果是一個學生在大學里讀得越認真,就受到的過錯影響越大,我是用好幾年的時間反思才得出這個論斷的。所以,中國高校十幾年數以幾十萬計的本科生中出不了可編寫linux內核的出色人才,一點也不奇異。
1993年我畢業了,用我總結的一段話來說,是:一張白紙進來,一腦漿糊出去。
畢業后我分到了一所號稱是“中港合資”的出產蓄電池的公司。呵呵,剛剛工作的日子讓我這個單純的大學生被生活好好的教訓了一下,許多無法以前設想的社會景象讓我目瞪口呆,年青氣盛導致穿了小鞋,還只能飲泣吞聲。吃了生活的一個悶棍,我才明確,我除了有張文憑,什么都不是!
當時,我覺得最愁悶的是我在公司里什么都不會做,一個電機燒壞了我楞不知如何下手修,公司老總辦公室里的燈不亮了,學電的大學生我花了半小時楞不知起因在哪!我學的東西沒一樣能用的。開始我還認為是因為我在學校里沒當真學,但后來問了許多同學,90%以上的都有同感,我現在終于認識到這不單是我個人的錯,我自以為在學校中是很努力的,從未偷勤過,但假如90%以上的學生所學不能服務社會,這種教育體系一定存在問題。
四年里,我的電腦常識與技巧=0!
現在看起來,我糟蹋了名貴的四年時間!但當時的環境與認識程度,也只能如此了,不當初的揮霍,怎有后來的珍愛?這是人生必經的一個階段。
二、漫長的理論學習時期
1、從電腦培訓班開端
我畢業后的第一個工作單位是一個非常差的企業,我在那兒見識了簡直所有中國差的企業的弊。喝烁∮谑,拉幫結派,含沙射影,損公肥私……?梢韵胍,在這樣的企業工作,人是如許的頹喪。我在無聊之中過了大半年的時間。1994年4月的一天我去桂林新華書店買書,看到桂林電子工業學院老師舉辦一個電腦培訓班,教打字、排版、常用DOS命令等電腦應用基礎,反正也沒事,不如上個班學點東西吧。未曾想就是這樣一個培訓班,卻根本影響了我的人生之路。
我清晰地記得當我第一次上機時,連電腦開關在哪都找不到,老師拿著一張五寸軟盤,插入軟驅,翻開電源,在一陣“吱吱”的聲音之后,屏幕上開始有英文字符呈現,然后,教師在鍵盤上敲入幾個鍵,電腦緘默一會,忽然在屏幕上跳出一個君子,涌現一行字:快快活樂學電腦,還傳出了音樂。我當時真是驚呆了,電腦怎么還會唱歌?現在想起來,那個軟件實在是中國臺灣松崗系列教養軟件,而我一個大學本科生,名人故事,在畢業之后居然對電腦無知到這個田地,我真不知道是該哭仍是該笑……!
俗語說:“一見傾心”。我是信任這種事的,因為就是這第一次上機,讓我發生了搜尋這一神秘世界的強烈興致,從此就再難與電腦離開了。
當時,有兩位電子學院的老師:尹老師跟陳老師。他們給咱們講DOS,講漢字輸入,講他們如何修正天匯漢字體系使它能在一張軟盤上運行,講打字排版……,一個月之后,我不滿意,又學了一個月。
在上培訓班的時間里,我向老師要來了桂林電子產業學院計算機利用專業本科四年的培育計劃,回到家中,列出了所有本科課程,再依據書上的先修課程先容,繪制了一張偉大的課程樹,從樹根開始,決議一本本地啃,從頭開始學計算機技術。計算機科學的學習有較強的系列性,想一步到位很可能會學不懂,但循序漸進又無奈跟上技術發展的速度,這是一個十分凸起的問題。我現在想起來,感到好的學習方法是:學理論打基礎,在實踐中逐漸懂得理論,多思多悟,就會發明層出不窮的新技術中有許多始終不變的東西存在。掌握這種東西,就能夠以不變應萬變。這種“不變”的東西是什么?就是軟件開發的根本原理與理論,基本思維與方式!在我對面向對象理論進行了較深刻的學習與掌握之后,我學。NET只用了三個月的時間就可以獨破設計一個完全的全面向對象軟件架構,并且用VB。NET與C#混雜語言把它給做出來了。對于J2EE,我同樣有這種,也用三個月的時間,必定可以開發與設計基于J2EE平臺的軟件,因為它們背地的計算機技術基礎是一致的,完整可以舉一反三。
尹老師和陳老師可能不知道,他們開的一個也許是為了經濟效益的培訓班,最后居然培養出了一個計算機碩士!所以,作為一名老師,其義務真的長短常重大的,可能會影響學生的一輩子,我感謝他們!
2、漫長而艱苦的學習之路
我當時每月只有一百多元的工資收入,把大半收入都用到買書上去了。電子工業學院門旁的那個科技書店,以及桂林科技書店,成為了我最常去“站讀”的地方。我買了數據構造、操作系統、微機原理、IBMPC匯編程序設計,C程序設計……這些教材,就依照預約的規劃開始學了。
我當時也說不明白為什么要學這些東西,決不象現在學生學什么東西都有很強的功利性:學英語為了出國,學電腦為了好找工作。當時根本就沒有想過今后如何如何,就是對計算機技術自身的興趣推進我去學習的。
當時計算機書還不象現在這樣撲天蓋地,我幾乎看完了我能弄到的每一本計算機書,看了一些書,就特殊想有地方上機,能練一練。但我一個月一百多元收入,一臺電腦怎么也得幾千元,要五六年不吃不喝才攢夠錢,父母都是普通庶民,家景僅能溫飽,擁有一臺電腦真成了我最大的美夢。
為了有機遇上機,我這個臉皮極薄的人也會什么都顧不上了,帶著一盒保留著各種軟件的軟盤,厚著臉皮到處找可能的地方上機。在這個時候,電子工業學院又一次幫了我,他們的機房治理得并不嚴,我就假冒是他們的學生去買機票上機。后來去得多了,那兒的老師都熟習我這張臉了,但搞笑的是,居然沒一人知道我是哪個班的!
當時電子學院用的局域網操作系統是Novell,我在那兒學會了使用許多最基礎的軟件,現在仍舊一五一十:CPAV,TurboPascal5.5,UCDOS,Tway(天慧漢字系統),Masm,TurboC2.0,還有鼎鼎大名的Norton公司的磁盤醫生NDD,PCTools,Borland公司的最牛的常駐內存的軟件Sidekick,……
在電子學院機房,我還玩了經典游戲:決戰中國海,冒險島,戰斧,三國……。
學校網絡里軟件良多,但其中所染的病毒也形形色色。我記憶深入的是第一次遇見DirII病毒時,那種感到決不是懼怕,而是驚喜,呵呵,我見到病毒什么樣的啦!因為DOS內核是開放的,所以那時開發一個病毒程序絕對輕易,大家又都喜歡用軟盤拷來拷去,結果毒源泛濫,病毒的猖狂使得殺毒軟件有了宏大的市場,現在赫赫有名的江民KV系列,就是在那時開始盤踞中國防毒市場,同時還有部的Kill等競爭對手,瑞星、金山等都是后來者。
那時,我白天在公司上班,就渴望著晚上的上機,每次上機我都有具體的打算,由于機時可貴,所以分內愛護。
為了上機時能多敲些程序,我一咬牙,向媽媽要了兩百元,買了一臺電腦學習機,回家苦練英文指法與五筆輸入,天天對著家里那臺14寸的電視機屏幕,敲擊至少鍵盤2小時以上。練到手腕酸疼,但終于達到了運指如飛盲打的水平。學五筆,背字根“目具上止卜虎皮,……”,足足花了一禮拜才背下來,并把每個字根與手指對應起來,后來看報紙都不自發地將漢字給拆得七零八落,再也看不到是一個完整的漢字啦,當時好象練到了每分鐘可打60多個字,后來我竟然靠著這彈指神功當了一陣打字員混飯吃!呵呵,練好了指法,一上機,確實效力倍增,兩小時能敲入并運行調試的程序比以前花三小時敲的還多。
94、95年是我前提最差,但學習勁頭最足的兩年時代,外在環境的惡劣,卻反而培養了我昂揚的學習興趣,那種癡迷,我想熱戀也不過如此了,可能因為我太喜歡計算機了,所以戀情與我無緣,這也是無可奈何的事。
我特別想說說我學習計算機技術書籍的感覺。如果你真的喜歡一門學科,那在啃一本本專業書籍時,就決不會覺得它厚,而只嫌它不夠厚。對照我在本科學《電磁學》、《自控原理》之類單調無味的課程的感覺,那種課程脫離實際,從紙上到紙上,學生根本無法真正控制。而學計算機課程《C程序設計》、《數據結構》、《操作系統》等課程的感覺真是天地之別,本來本科學的東西是越學越糊涂,而我在學習計算機科學的過程中自己就感到緩緩地將所有的知識串成了一條線,腦中有一棵知識樹在成長,這不是形容詞,是真的感觸。我學DOS命令,學了良久不明其道理,是在一天早上醒來時靈感一來,突然理解了文件與樹的概念,于是,就真正把握了DOS命令的內涵,開始對copy,format,move……這些英文單詞熟能生巧了。有段時間,我甚至能感覺得到我的知識在一勞永逸!如果那時能有相對穩固的客觀條件:比方有一臺隨時可用的計算機,那我一定學得更快更好。不過話又說回來,條件好的時候,人又容易為安適所累,提高反而慢。還是那句老話:業精于勤荒于嬉,F在的許多學生就是物資條件太好了,反而不理解珍惜。
后來我看了金庸先生的《射雕好漢傳》,郭靖成了我最喜歡的人物,不是因為他有黃蓉的愛,而是他那種堅忍不拔的毅力,以平常之資終登絕頂!金庸先生真是妙筆!此小說我不知看了多少遍。
最值得悼念的就是我學編程的歲月,我學C語言用的是譚浩強的《C程序設計》,當時譚老師在電視上同時講C程序設計,我每天必看,把書上的每道例題與習題全部做了一遍,并寫出了每次上機的支配。我每次都先在紙上把程序寫出來,然后上機時分秒必爭地在計算機中調試運行,并根據運行結果考慮為什么會運行不畸形,在哪兒犯錯了,如何更正,上機完后還有總結。就是這樣,我把譚浩強的《C程序設計》一書中的所有例題和習題全部敲到計算機中運行了一遍,打下了C語言扎實的基礎。譚老師的書和課,的確影響了中國多少名程序員!
我學了C語言之后,就開始想做點東西了。我用了一個月的時間,用C編寫了一個中文下拉菜單的程序,從UCDOS中的字庫中提取漢字點陣,而后在圖形模式下“畫”出漢字來,使程序能脫離漢字系統的支撐直接顯示漢字。整個程序應當有一兩千行代碼吧,全體是自己尋找材料,一行行敲進去的。后來,我又編了讀取WPS文件的程序(當時DOS下打字排版是求伯君的WPS一統天下,Word當時在哪里我不知道呢!《電腦報》介紹過的求伯君、鮑岳橋等作為第一代中國杰出程序員代表,是我當時崇敬的偶像),我還編寫了一個繪制簡單圖形的小程序,從編程調試的進程中,我得到了程序員基本功的最初練習。我當初沒人教,遇見各種艱苦只能自己解決,為找出一個bug,晚上睡覺做夢都在編程,而現在的一些大學生,程序通不過,立刻問老師,甚至有學生把程序發到我的郵箱,叫我幫他調程序!有的計算機專業學生,學了四年,四年敲過的代碼總數恐怕不超過2千行!
確實,我當時的水平很低,現在的本科生比我當時強太多了,但至少有一點他們中的許多人不如我,他們不如我勤懇,也不具備我的毅力,我認為這是現在這批八十年代出生的大學生最缺的東西。
我用一年半的時光基礎自學完了計算機專業的骨干課程(除了《編譯原理》,我真實 未審看不懂),1995年我參加了低級程序員測驗,成果高低午成就加起來有90多分。但96、97我兩次加入程序員級考試,固然我已有不少編程實際,但仍舊通不外,現在看起來,這反應出一個事實:我實踐基礎切實太差,天資也并不高。直到當初,我依然痛感我的盤算機基本理論不好,使我難以成為一名計算機迷信家,而只能成為一名不錯的軟件工程師。
從95年開始,我的生活開始加速降落,我所在的公司因為被一群我現在稱之為駐蟲與流氓的人給弄得不成樣子,每月連100多元的工資都無法保障,我只得分開了公司,把檔案往人才交換核心一放,就開始了我四年的社會沉沒生活……
在這四年中,我干了不下四五種工作:當過傾銷員,當過打字員,當過培訓老師,修過電腦,從事售后服務,甚至擺過地攤……,一切的所有,很簡略,就為了能有口飯吃。生活是嚴格的,不講情面的,我獨一的喜好就是閑下來就拿起我的計算機書來看。當時我大哥說過:你學這些東西有什么用?能靠它當飯吃?不要驚疑這種觀點,在我們那信息閉塞的地方,當時有誰能想到計算機技術會有如斯大的轉變社會的才能?我之所以不懈學習,純潔是為了擺脫精力上的迷惑,在技術的大陸中忘記生活的懊惱。我后來有一句名言:何以解憂,唯有電腦。別人當作一句笑話,但卻是我當時的實在寫照。
萬事都有兩面,事件壞到極處,就會向好轉化。又是一個很偶爾的事,改變了我的人生軌跡。
1996年,我的一個高中同窗楊考上了湖南大學計算機系研討生,宴客吃酸菜魚火鍋。在大家飲酒時,楊提了一個問題:請大家說出一個自己最想到達的目標。我的桂中同學大多數都是上的全國重點大學,此時畢業三年了,大家都對社會對生活有了本人的意識,于是就有了各種不同的謎底,我當時的答復是:“我盼望能有一天開發出一個好的軟件,讓許很多多的人都能用上它。”,這個目的我到現在都沒達到。但當時大家是給我熱鬧地。楊飯后跟我說,你既然那么愛好計算機,為什么不考研呢?對啊,我為什么不去嘗嘗呢?當天晚上我躺在床上,沒怎么想就斷定了要考研的主意。當時卻怎么也沒想到,考研之路成了另一條折磨人的不歸路。對我畢生的影響深遠……
這就是我早期的學習生涯,深深地體現出中國的時代特點。這段時間我的生活是困苦的,心境是苦悶的,但學習熱忱卻是無以倫比的,F在我一個人領有兩臺奔四電腦,隨時可上互聯網獲取豐盛的資源,反而在技術上難有寸進了。越來越覺得古語說得好:
艱巨困苦,玉汝于成!這是生涯的真諦!謙虛基于力氣,驕傲基于無能。編程魔方我們一起盡力!
本文來自:逍遙右腦記憶 /lizhi/128523.html
相關閱讀:西德尼溫伯格的故事
職場白領之間的人際藝術
職場生涯最重要的8小時
職場缺乏安全感怎么克服
如何與年輕上司和諧相處?