金旭亮:一個普通IT人的十年回顧(上)_職場勵志

  金旭亮:一個普通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……這些英文單詞遊刃有餘瞭。有段時間,我甚至能感覺得到我的知識在與日俱增!如果那時能有相對穩定的客觀條件:比如有一臺隨時可用的計算機,那我一定學得更快更好。不過話又說回來,條件好的時候,人又容易為安逸所累,進步反而慢。還是那句老話:業精於勤荒於嬉。現在的許多學生就是物質條件太好瞭,反而不懂得珍惜。
  
  後來我看瞭金庸先生的《射雕英雄傳》,郭靖成瞭我最喜歡的人物,不是因為他有黃蓉的愛,而是他那種堅忍不拔的毅力,以平凡之資終登絕頂!金庸先生真是妙筆!此小說我不知看瞭多少遍。
  
  最值得懷念的就是我學編程的歲月,我學C語言用的是譚浩強的《C程序設計》,當時譚老師在電視上同時講C程序設計,我每天必看,把書上的每道例題與習題全部做瞭一遍,並寫出瞭每次上機的安排。我每次都先在紙上把程序寫出來,然後上機時爭分奪秒地在計算機中調試運行,並根據運行結果思索為什麼會運行不正常,在哪兒出錯瞭,如何更正,上機完後還有總結。就是這樣,我把譚浩強的《C程序設計》一書中的所有例題和習題全部敲到計算機中運行瞭一遍,打下瞭C語言紮實的基礎。譚老師的書和課,的確影響瞭中國多少名程序員!
  
  我學瞭C語言之後,就開始想做點東西瞭。我用瞭一個月的時間,用C編寫瞭一個中文下拉菜單的程序,從UCDOS中的字庫中提取漢字點陣,然後在圖形模式下“畫”出漢字來,使程序能脫離漢字系統的支持直接顯示漢字。整個程序應該有一兩千行代碼吧,全部是自己尋找資料,一行行敲進去的。後來,我又編瞭讀取WPS文件的程序(當時DOS下打字排版是求伯君的WPS一統天下,Word當時在哪裡我不知道呢!《電腦報》介紹過的求伯君、鮑嶽橋等作為第一代中國傑出程序員代表,是我當時崇拜的偶像),我還編寫瞭一個繪制簡單圖形的小程序,從編程調試的過程中,我得到瞭程序員基本功的最初訓練。我當初沒人教,遇見各種困難隻能自己解決,為找出一個bug,晚上睡覺做夢都在編程,而現在的一些大學生,程序通不過,馬上問老師,甚至有學生把程序發到我的郵箱,叫我幫他調程序!有的計算機專業學生,學瞭四年,四年敲過的代碼總數恐怕不超過2千行!
  
  的確,我當時的水平很低,現在的本科生比我當時強太多瞭,但至少有一點他們中的許多人不如我,他們不如我勤奮,也不具備我的毅力,我覺得這是現在這批八十年代出生的大學生最缺的東西。
  
  我用一年半的時間基本自學完瞭計算機專業的主幹課程(除瞭《編譯原理》,我實在看不懂),1995年我參加瞭初級程序員考試,結果上下午成績加起來有90多分。但96、97我兩次參加程序員級考試,雖然我已有不少編程實踐,但仍然通不過,現在看起來,這反映出一個事實:我理論基礎實在太差,天資也並不高。直到現在,我仍然痛感我的計算機基礎理論不好,使我難以成為一名計算機科學傢,而隻能成為一名不錯的軟件工程師。
  
  從95年開始,我的生活開始加速下降,我所在的公司由於被一群我現在稱之為駐蟲與流氓的人給弄得不成樣子,每月連100多元的工資都無法保證,我隻得離開瞭公司,把檔案往人才交流中心一放,就開始瞭我四年的社會漂浮生活……
  
  在這四年中,我幹瞭不下四五種工作:當過推銷員,當過打字員,當過培訓老師,修過電腦,從事售後服務,甚至擺過地攤……,一切的一切,很簡單,就為瞭能有口飯吃。生活是嚴厲的,不講情面的,我唯一的愛好就是閑下來就拿起我的計算機書來看。當時我大哥說過:你學這些東西有什麼用?能靠它當飯吃?不要驚奇這種觀點,在我們那信息閉塞的地方,當時有誰能想到計算機技術會有如此大的改變社會的能力?我之所以不懈學習,純粹是為瞭解脫精神上的困惑,在技術的海洋中忘卻生活的煩惱。我後來有一句名言:何以解憂,唯有電腦。別人當作一句笑話,但卻是我當時的真實寫照。
  
  萬事都有兩面,事情壞到極處,就會向好轉化。又是一個很偶然的事,改變瞭我的人生軌跡。
  
  1996年,我的一個高中同學楊考上瞭湖南大學計算機系研究生,請客吃酸菜魚火鍋。在大傢喝酒時,楊提瞭一個問題:請大傢說出一個自己最想達到的目標。我的桂中同學大多數都是上的全國重點大學,此時畢業三年瞭,大傢都對社會對生活有瞭自己的認識,於是就有瞭各種不同的答案,我當時的回答是:“我希望能有一天開發出一個好的軟件,讓許許多多的人都能用上它。”,這個目標我到現在都沒達到。但當時大傢是給我熱烈地鼓勵。楊飯後跟我說,你既然那麼喜歡計算機,為什麼不考研呢?對啊,我為什麼不去試試呢?當天晚上我躺在床上,沒怎麼想就確定瞭要考研的想法。當時卻怎麼也沒想到,考研之路成瞭另一條折磨人的不歸路。對我一生的影響深遠……
  
  這就是我早期的學習生涯,深深地體現出中國的時代特色。這段時間我的生活是困苦的,心情是苦悶的,但學習熱情卻是無以倫比的。現在我一個人擁有兩臺奔四電腦,隨時可上互聯網獲取豐富的資源,反而在技術上難有寸進瞭。越來越覺得古語說得好:
  
  艱難困苦,玉汝於成!這是生活的真理!謙遜基於力量,高傲基於無能。編程魔方我們一起努力!

`;Q

Comments are closed.