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

  金旭亮:一個普通IT人的十年回顧(下)
  
  下篇:實踐人生
  
  一、希特勒地堡與CIH病毒
  
  1999年4月,我來到北京參加研究生復試。復試完瞭之後就不回去瞭,我拿著一張光盤,裡面刻著我用VB和Authorware3.5編的一個Cool3D的教學軟件,到處參加招聘會,開始瞭在北京的打工生涯。
  
  說句實話,我心中真是一點底也沒有。北京人才濟濟,我一個三流大學的畢業生,又不是計算機專業的,有人要我嗎?
  
  我在北京無依無靠,沒有任何一個親戚在北京,住成瞭大問題。北京這地方,錢太不經花,生活費用太高,我四處尋找便宜的地方住。後來,我在北京化工大學對面的招待所中租瞭個床位,每晚20元,地下室。這個招待所的地下室非常大,每天回去的時候,都要走過長長的曲曲折折的通道,加上那昏黃的燈泡,每次我都有走進瞭希特勒地堡的感覺。地下室裡潮濕陰暗,不見天日。地下室裡人員很雜,什麼人都有,永遠沒有一種安全的感覺,所幸的是我也是個窮光蛋,光腳的還怕穿鞋的?別人能呆我也能呆,唯一讓我擔心的是錢,沒錢,在北京連流落街頭都不夠格,立馬被收容去昌平篩沙。呵呵,我沒這種經歷,這是當時住一塊的一個外地要考北京中醫藥大學的博士生說的(我倆居然住到瞭一個屋裡,大傢都沒錢,隻能擠地下室,隻是他老兄晚上打呼,我可真受瞭不少罪)。
  
  日子一天天過去,袋裡的錢一天天少瞭,但工作還是沒著落,心中越來越慌,除去學費,來京時父母給我2000元,大哥資助我的1000元就是我當時的全部資金(3000元在北京能呆多久?!)。我當時訂瞭個計劃,留下500元保底,打死都不能動,要靠它作路費回傢的。我當時說,一定得找到一傢公司,再少的錢都幹,隻要有口飯吃,有張床讓我睡我就滿足瞭。
  
  我一共應聘瞭四五傢公司,最具傳奇色彩的是到西單附近一傢公司的應聘經歷。那時,我帶去瞭我的作品,公司項目經理要看,於是我給他們演示,很奇怪,程序一打開就死機,一連兩臺電腦都一樣,末瞭,兩臺電腦都啟動不起來瞭。用瑞星一查,CIH病毒——那天正是4月26日!於是,CIH破壞瞭電腦主板的同時,也無情地摧毀瞭我的就業機會。還算老板可憐我,沒要我賠。其實我當時快到山窮水盡的地步瞭,真要我出錢,我可能連傢都回不瞭啦。陳盈豪(CIH病毒的作者),你小子這麼的聰明做什麼不行,偏要去做病毒,害人害已,弄得我連個飯碗也找不到,晚上回“希特勒地堡”,把這小子罵瞭無數次!
  
  總算天無絕人之路,在我數著最後還剩餘600元錢的時候,終於有一傢公司要我瞭,做中小學教育軟件,月薪1600。幹瞭兩星期,又給我在公司的倉庫挪開貨物,搭瞭個床位,我就在那住下瞭,慶幸再也不用到“希特勒地堡”裡當沖鋒隊員瞭。每天下班後,我就睡在林立的大紙箱之中,如果來個地震,呵呵,我就埋在紙箱中瞭,休想爬得出來!
  
  我幹得非常努力,第一個月工資開出來,扣掉個人所得稅,我拿瞭1500多元。你們不知道我拿到第一筆工資的感覺!這錢在很多人眼裡簡直不算錢,但對於一個沒工作近兩年,工作也一個月收入不到200的窮小子而言,就象陳佩斯小品中所演的:“我王老五活瞭一輩子,還從沒見過這麼多錢啊!”。好笑嗎?我一點也不覺得好笑。我隻是心酸,我到瞭28歲才可以用自己的知識與技能養活自己,再不用依靠父母和兄長的資助,才真正完全用自己的力量在社會上站起來,一個沒有經濟自立能力的人,隻能是個不成熟的人,一個躺在父母身上的人,不是一個真正的男子漢!我當這樣的孬種當瞭28年!
  
  我找到工作後向傢裡寫過一封長信,信中講瞭我對父母平時不好意思說的很多心裡話,當時,我父親說,母親接到信都哭瞭。我剛拿到工資,馬上打瞭個電話回傢裡告訴母親,以緩解他們的焦慮,畢竟兒行千裡母擔心啊!父母有退休金,一再表示不需要我贍養,而我再這樣不要臉下去,我還是人嗎?我就是從那時候開始,下定決心,從今往後,再不向傢中要一分錢!今後三年讀書和生活的費用我一定要用自己的勞動來獲取。
  
  金錢帶給我的激動就是在那段時間,溫飽問題解決之後,金錢對我的誘惑就再沒有瞭,哪怕讓我一個月賺一萬,給套房子給我,也不可能再給我帶來幸福的感覺瞭,錢是重要的,但不能成為它的奴隸,傢中不需要我負擔,我一個人有吃有喝,幹著我喜歡的工作,足矣!
  
  我在那公司一直幹到九月學校開學為止。我走的那一天,公司居然還開瞭個歡送宴會,老板封瞭500元的封包給我。我真是感動。我大學畢業後在社會上掙紮求生,得到的大都是冷眼與蔑視,社會終於認可瞭我的價值,我不是一個隻知道吃飯的廢物!
  
  1999年9月9日上午9點,在這個最多9字的時刻,我到學校報道來瞭,放下行李,我坐在分配給我的床上,心中終於踏實下來。
  
  現在,我在北京終於有一張屬於我的床瞭,一張真正屬於我的床瞭,終於有個地方可以讓我安穩地睡覺瞭。沒有這段經歷,我怎麼體驗到“安居樂業”這一個詞的真實含義!個人如此,國傢要做到,中國要做到,更難!
  
  二、編程生涯
  
  讀研兩年半的時間,我四處打工,這兩年半我至少在七八傢公司做過,編瞭十幾萬行代碼,為自己賺瞭一臺電腦,兩部手機(丟瞭一部),還有讀研期間的所有費用,實現瞭我的目標:沒向傢裡要一分錢。
  
  我水平不高,但在打工過程中,發現許多中國軟件公司的水平更菜!
  
  2000年暑假,我參加一個商品軟件的開發,搬到瞭北大燕北園的一個宿舍,在那兒搞封閉式開發。在這個項目采用VB6開發,主力程序員除我之處,還有一個華北電力大學的研究生。大傢都沒開發商品軟件的經驗,沒經過正式的設計,就匆忙編碼瞭。我曾經想采用分層的系統架構,但遭到另一位程序員的反對,爭吵沒有結果,老板也不能做決定,結果各行其是。現在看起來,那時真是太菜瞭,任何一本軟件工程書都會指出這種做法是不對的。
  
  我們直接就熱火朝天的幹瞭起來,那位華北電力大學的老兄,真讓我佩服,他可以在一個sub過程中寫上2000行代碼!我覺得奇怪,為何他能寫這麼多的代碼?一看,頓時我暈倒,他居然將每個控件的left,top,width等屬性都用代碼來設定!想想這樣的程序,調試時光單步執行就需要按多少次F8鍵!
  
  我們在電腦旁邊搭瞭個行軍床,每天都是幹到早上6點才睡,12點吃中飯,然後又是一個通宵。當時整個工程隻有一個類模塊,被我用於封裝訪問數據庫的ADO數據引擎,這是整個工程中唯一一處用到瞭最簡單的面向對象技術的地方。然後,我寫瞭近十個bas公用模塊,每個模塊代碼規模都有一兩千行,還有十幾個窗體,每個窗體中都塞滿瞭事件驅動的VB代碼,整個軟件應該有10萬行代碼,我一個人在此期間至少就寫瞭3萬多行VB代碼。程序的主處理流程我甚至用ADO與DAO寫瞭兩套!
  
  現在想起來,我們當時根本就不知道面向對象為何物,更不理解許多對軟件開發至關重要的理論,就憑著一種熱情。在這段痛苦的開發經歷中,我不僅精熟瞭VB,而且從中學到瞭很多。現在再開發同樣功能的東西。我至少可以砍掉2/3的代碼。怎麼學都不如從失敗中學得多。
  
  後來我總結VB程序員的三個境界:
  
  (1)所有代碼都隻放在窗體文件中的,屬於菜鳥級,他們隻會從面板上拖控件,設置屬性,然後再給事件編碼。
  
  (2)工程中有bas模塊的,屬於中間級,他們已意識到有大量的代碼是重復出現的,應該將其抽取出來作為公用模塊。
  
  (3)工程中有cls模塊的,屬於高手,他們已掌握瞭面向對象的思想,並能應用這種思想來解決實際問題。
  
  正是這次開發經歷,促使我反思:到底如何開發軟件?我個人可以用VB完成各種各樣的功能,為什麼湊在一起就會那麼困難?更正一個bug為何那麼難?為什麼一個看似簡單的軟件,要拖半年的時間還看不到結束的日子?
  
  九月,研究生要開題,我自擬瞭個課題:軟件體系結構設計。我決心弄明白,好軟件到底是怎麼做出來的。
  
  我放下瞭VB,開始研究C++,原來學過VC,但沒學會,就直接從C++Builder入手。Borland公司的VCL類庫讓我大為嘆服,很快就迷上瞭它,為此連帶學瞭Delphi,並參與瞭一個Delphi項目。給我真正震撼的是《設計模式》這本書,看瞭才知道,原來好軟件是這麼設計出來的!在此,我強烈推薦所有有一定編程經驗的程序員一定要看這本書!
  
  一邊學習理論,一邊可沒忘記我沒經濟來源,於是又四處打工,接一些小項目與小模塊來賺些生活費,國內一傢橫跨傢電與軟件的著名公司是我打工期間去過的最大的公司。但無論什麼公司,都給我一種感覺——爛!公司中充滿瞭對員工的剝削與不尊重,對軟件開發這一事物的錯誤認識,管理混亂。
  
  我沒機會去外企,技術水平不到,別人不要我?,但我所見到的軟件公司,我敢說沒一傢能做出世界一流的軟件!
  
  我上的研究生課程也讓我失望,整個就是本科教育的再版。經過高考與考研兩次重大考試,我對考試已是深惡痛絕,但讀研期間仍要考試,而且是閉卷!我就不知道我去背那些條文對我的研究與學習有何幫助?2000年7月當我考完最後一門,終於大松一口氣,我終於擺脫瞭考試的壓迫,可以在剩餘的一年半中真正搜索我渴望已久的軟件技術瞭。這年,我29歲。
  
  悲哀嗎?一個中國的程序員要到29歲才可以真正自由地學習想學的東西!
  
  我開始研究面向對象理論,看瞭大量的書,每天都在實驗室學習到深夜12點,天天上網,CSDN成瞭我最常去的網站。
  
  隨著我對軟件技術的瞭解越多,就越深刻地感到國內與國外技術水平的差異是如此的巨大,巨大得甚至有讓人絕望的感覺。同時,在北京這個中國軟件人才最集中的地方,我也見到瞭許多牛人,一個清華的本科學生,做程序員可以拿到一個月12000元的工資,一個北大的計算機系研究生,一畢業就到外企,一個月一萬多收入,每年發16個月工資!幹瞭兩年就開瞭自己的公司。我看到瞭一個北方交大的本科生作品,在半年的業餘時間裡,用Delphi寫瞭十幾萬行代碼,他甚至在代碼中嵌入匯編,自行編寫數據存取引擎讀寫Foxpro,速度超快!軟件中有一個計算公式解析模塊,他用編譯原理理論居然做瞭一個小型的公式解析器,就象C++編譯器檢查C++程序一樣,不僅可以判斷是否公式正確,而且給出的出錯信息還相當準確!其基本功之紮實,水平之高讓我望塵莫及!中國優秀的人才真還是不少的!在精英集聚的北京,面對著博大精深的軟件科學,我深感自身的渺小。
  
  但我畢竟是靠自己奮鬥出來的,我並不自卑,這世界需要牛人,同樣需要大批合格的勞動者,我成為不瞭牛人,但我作一名程序員是合格的。
  
  時間過得飛快,一年半根本就不算時間,馬上就要畢業瞭,學習的成績如何,要到社會上去競爭瞭,讓社會考場來決定你是否及格。
  
  三、畢業求職
  
  98級的研究生是IT業最後輝煌的回光反照。當時,各大公司都發瞭瘋似的要人,象華為,當時是來者不拒。計算機專業的研究生是一搶而光,本科生也供不應求。2001年畢業的我的師兄師姐們,平均每個人手頭都至少有兩三個offer,談的工資沒有低於每月6000的,許多人去瞭外企,工資在8000~10000每月的也有。真是畢業生的黃金時間。
  
  但好景不常在,911事件我看來好象成瞭分水嶺,911之後,整個IT業急剎車,就業形勢急轉直下,各大公司都在消化去年吃得過飽的胃口,我形容是大傢都吃壞瞭胃,再也不可能有我師兄師姐們的風光瞭。雖然時間相隔僅大半年。
  
  從10月開始,11月和12月,我幾乎是在招聘會與公共汽車上渡過的,北京東南西北地去面試,上午在上地,下午可能就要跑到朝陽區,疲於奔命。
  
  在找工作過程中,我良好的心理素質與豐富的編程經驗起到瞭很大的作用,並沒有遇到很大的困難,就先後有幾傢公司表示要我。
  
  其中我想說的有兩傢公司。
  
  一傢是中國臺灣公司,應該說他們做得是不錯的,但我非常反感他們那種自認為高於大陸人的那種優越感,而且待遇也不高。面試之後,回來感覺很不好。
  
  我想:我們大陸確實是不如中國臺灣發達,難怪別人看不起我們,這世界勢利得很,社會如此,國傢亦然。但我中華960萬平方公裡的國土,13億人口,難道要依靠一個小小的島嶼來撐門面?難道除瞭中國臺灣公司,我就無處可去瞭?雖然改變不瞭什麼,但我決定絕不去臺資和日資的公司工作(日本人我更不喜歡,但我認為他們做事實在優秀,我們一定要向日本人學習)!在這種公司呆著,不爽!同時,我們的確也得爭氣些,這世界隻尊重強者。
  
  另一傢是個很不錯的民族軟件企業,想要我,其老總專門找我去面談瞭一次,希望我能到他的公司工作。這位老總白手起傢,能在五六年的時間內由幾個人發展到300多人,當時,是中國這個領域軟件市場占有率最高的公司,我非常佩服,他為人也很好,並表示可以給我每月比其他研究生多加1000元工資,而且希望鍛煉一兩年之後我能夠帶領一個團隊來開發產品,並負擔我畢業所需交納的各種費用。在就業不景氣的2002年,對我一個30歲的技術水平有限的老程序員如此看重,真叫我感動。雖然我最後還是沒去,但我仍然對這個公司充滿瞭好感。一個軟件企業最重要的是什麼?是對人的尊重,沒有這點,可以斷定,這個公司長不大。
  
  我為什麼沒去軟件公司?放棄有可能在幾年之後年薪突破10萬的收入?是因為我已有瞭更想做的事,我想當老師!
  
  我自己是從自學的路上走過來的,其中的艱辛歷歷在目,無人指點,我走瞭多少彎路?中國還有多少是象我這樣的年輕人無人指點的?我幸運能爬出來瞭,因為我至少還能有飯吃,比我條件更差的,比如農村的孩子,可能就被生活的壓力所淹沒瞭。我個人的力量很微弱,技術也有限,但我自認為至少是一名合格的程序員,如果能培養出一大批達到我的水平的學生,他們畢業後成為合格的程序員,中國軟件的根基就會更紮實,如果更能有一批遠遠超過我水平的學生出來,中國軟件就有希望瞭。軟件是什麼?軟件以人為本!
  
  人生追求什麼?金錢?我很缺錢,但不可能把金錢作為我的目標,我希望我能夠成為一個對社會有所貢獻的人,能夠獲得心靈的充實,於是,我選擇瞭留校。
  
  四、對教育的反思與教書生涯
  
  2002年下半年,我參加瞭北京高校青年教師崗前培訓。一位杜教授的兩堂課讓我印象深刻,其中兩句話讓我深深震動:
  
  第一句話:我是一個教書匠,教書匠好啊,好就好在“匠心獨運”!
  
  第二句話:做什麼工作都要達到變魔術的境界!
  
  是的,作為一名教師,就必須起到一個傳聲筒與放大器的作用,將人類最聰明的人探索世界所得到的知識予以拓寬發展,以便讓更多的人能夠掌握這些知識並進而應用於實踐,從而推動人類的不斷進步。
  
  作為一名計算機專業的教師,就要努力把先進的計算機技術以盡可能高的效率傳授給廣大的學生,引導他們直接面對真實的軟件世界,而不是向他們硬灌各種各樣的理論知識,強迫他們去死記硬背以應付考試。
  
  我是一個小人物,才低學淺,但我真的認為高校計算機教育存在嚴重的問題。我在打工期間的開發經歷,以及閱讀國外相關資料的時候,發現學校中教的和社會上用的差得太遠!都已經是什麼時代瞭,許多大學還設立Foxpro課程,難道就不能直接用現代主流的數據庫如Oracle,SQLServer,哪怕是Access也好,來講授數據庫知識?還有所謂的計算機等級考試,呵呵,過瞭三級學生的我見過不少,但他們真正對軟件,對計算機又理解多少?
  
  在中國甚至於升職稱也要考計算機,我看瞭一本職稱計算機考試教材,裡面幾乎原樣照搬計算機原理課程中的相關章節,弄得我給搞藝術的大嫂講瞭一個小時的二進制與八進制、十六進制的轉換方法,她還是弄不太清。我都泄氣瞭,對啊,他們搞藝術的,有必要去分清二進制的10與十進制的2有何分別嗎?他們八輩子也用不上。但是考試用得上,呵呵,又是中國特色。
  
  拿C++來說,我講過C++課,許多的國內教材對C++語法下瞭大功夫,卻對體現瞭C++精華的STL隻字不提,對代碼背後所體現的軟件開發思想與方法更是視而不見,我用C++也編過不少程序瞭,說句實話,我用到的特性不到C++的三分之一!於是就出現瞭這種怪現象,許多學生考試可以拿八九十分,給他一個簡單的實際問題他卻不知如何下手!
  
  還有UML,現在好象很火的樣子,我們讀研時就開瞭這門課,講句實話,當時這門課我就沒聽懂,可後來我嘗試著用C++用面向對象的方法來編程序,然後,由代碼倒推回UML類圖,一下子就明白瞭,原來UML隻不過是一種描述面向對象系統的符號罷瞭,如果學生沒進行過真正的OOP,那就是為瞭學UML而學UML,根本就本末倒置。
  
  還有軟件工程,我的感覺,一個人如果沒寫過一萬行以上的程序,他看軟件工程書就同看政治書差不多,每句都對,呵呵,就不知道為什麼對。我完成瞭那個幾萬行的VB程序之後,再回過頭看看理論,真是句句是真理!每個理論背後都是大量實踐經驗的總結。
  
  回想我做軟件的體會,我發現所有的知識都是一個完整的體系,根本就無法區分哪些知識是本科的,哪些知識是研究生課程。於是,一種想法產生瞭,我主講程序語言類的課程,那我就直接以真實的軟件開發過程為主線,實踐中需要什麼我就講什麼。講C++,我就拋開瞭指定的教材,C++我講瞭STL,我講瞭OOAD,兩者我都講瞭用Rose進行雙向工程,引導學生去學UML,一開始就用UML去描述自己開發的程序,何必浪費大量的時間去學結構化的編程方法?
  
  我現在簡直成瞭面向對象技術的佈道者,我下學期即將開設OOAD基礎選修課,從實際項目中抽取典型的案例,講UML,講Rose,講設計模式,講軟件體系結構,例子代碼橫跨C++和。NET下的開發語言(C#和VB。NET),這對於我一個技術水平有限公司的董事長而言,實在有點不自量力,我鼻子上才插上幾根蔥,就想裝大象?但我想,如果我能成功地激發出哪怕1%的學生的興趣,能引導他們走向我認為是正確的方向,能啟發他們思考,能直接面向真實的軟件開發活動而不是學校的考試,就是我的成績。我現在正在看引進的原版書籍——《設計模式解析》,時時擊節贊嘆!《設計模式》經典但難懂難用,而《解析》一書的兩位作者既有豐富的從業經驗,又對OOAD進行瞭深入的思索,真知灼見時時展露於書中,我現在剛看瞭這本書的80%,基本上可以用一個成語來描述這部書:深入淺出!
  
  要做到深入淺出談何容易!隻有同時具備技術專傢與文學作傢素質的人才能做到!
  
  反觀我們國內的大量教材,還有大量的垃圾論文(包括碩士、博士的,本科的就算瞭,我看絕大部分根本不能稱之為論文),全都是“淺入深出”,作者自己都未必明白,就東拼西湊,擺出個樣子嚇人。本來完全可以用大白話三言兩語講清楚讓人明白的道理,有人專門要繞一大圈,專挑用高深的數學公式來表達,唯恐別人容易理解,顯得他水平不高!呵呵,什麼東西一沾上“數學”,立馬身價百倍。我就聽過一個北師大的一個在讀博士說過:如果一篇博士論文中沒有一個數學公式,根本就不算是博士論文。這句話對不對,大傢可以多思索。我數學不好,沒資格討論數學,我的直覺:數學是工具,但如果為瞭發表論文等目的而故弄玄虛,為數學而數學,是不合道理的。中國的學術水平與現狀,大傢都心知肚明,不用我廢話瞭。
  
  現在每年都畢業大批的計算機專業學生,可其中真正具備紮實根基的可以很快勝任工作的我看隻有5%(95%的學生不要扁我,不同意就當我在說胡話,我很瘦的,一扁就沒瞭?)。多年以來,我國高校計算機教育是按照計算機科學研究者來培養的,可事實上,有多少學生能從事計算機方面研究的能力?我看應分流,80%的學生按工程師方向來培養,20%的學生按研究者方向來培養,而且應大幅減少必修課的數量,計算機領域太深太廣,樣樣都想教給學生,反而成瞭夾生飯,一個想從事硬件設計的學生和一個想從事軟件開發的學生,能給他們一樣的飯吃嗎?學校應提供各種條件和資源去引導學生,激發學生的創造性與主動探索性,讓他們去嘗試,去發現自己的長處,最終找到最適合自己的發展方向。不這樣做,中國軟件後繼乏人,沒希望。
  
  五、實踐第一
  
  2002年下半年,我和一個朋友去瞭北京郊區的一傢雜志社,看到的情形讓我震驚:在信息產業最發達的北京,這傢雜志社還用人工查對雜志訂單和款單,看著那按省來登記的幾大本厚厚的客戶登記本,工作人員需要手工來在其中查找相應的信息。這樣的工作效率,這樣的行業信息化水平!北京如此,全國又如何?
  
  從這件事上,我看到瞭中國軟件業的另一方面。一方面我們沒有核心技術,另一方面,已有的技術又根本沒推廣沒用好。追蹤世界先進水平,對於我等這種水平的人來說,確實勉為其難,但將已有的技術用於解決實際問題,卻是我們可以做的。如果中國各行各業都真正能通過進行信息化而提高生產效益,那中國不就從根本上強大起來瞭嗎(象印度,IT一枝獨秀,其他行業沒有起色,我稱之為跛足的國傢,絕不能成為世界強國)?在紮實的社會基礎之上,軟件業不就有瞭更大的市場與發展潛力?中國許多行業的信息化水平非常低,而且中國地域廣大,發展非常不平衡,有些地方信息化水平甚至為0!努力推動行業信息化,是我們這一代軟件開發者的責任!而追趕國外先進水平,恐怕就不是一代兩代程序員可以達到目標的,需要長期的努力。作為一名軟件開發者,隻能腳踏實地,哪怕你隻做一個小小的MIS產品,也要盡力把它做好來。
  
  於是,我開始瞭期刊發行系統的開發,這完全是自發的,沒有任何資金投入,隻有一種熱情在支撐。我開始選擇C++Builder開發,做瞭幾個月,完成瞭第一個版本,但我發現,我找不到足夠水平的C++程序員進行合作開發,而且整個一個exe文件,在體系結構設計上雖采用瞭分層分塊的設計方案,但卻是源代碼級別的,要拆分成COM組件難度太大,不是一個人能完成的,於是中途流產。
  
  2003年3月,我開始系統地學習。NET,我吃驚地發現,我原來想在C++中實現的許多功能,比如對象串行化為XML,在。NET中已有現成的類可用,。NET更把OO的功用發揮到瞭極致,它的混合語言開發,它的反射機制,它的新的自識別的軟件組件,以及強大好用的開發環境VisualStudio,都讓我驚嘆微軟對開發者遇到的困難的深入把握,相比用C++開發,至少可以提高1/3的開發效率。於是一個新的想法產生瞭,我要把以前的產品用。NET重寫,利用。NET強大的組件模型,將設計模式理論推廣應用到組件級別,通過XML和反射機制建立一套可動態裝配的軟件生產流水線,實現象Dell直銷PC那樣的軟件動態裝配直銷。隻要建立好靈活可不斷重構的系統架構,配以對業務領域的深入分析,逐步建立功能強大的業務組件倉庫,就可以實現軟件系統的動態裝配。說幹就幹,我用VB。NET重寫瞭原先用C++編寫的系統,將原先的一個exe變為十幾個dll,而且這些dll還會隨著發展而不斷地分裂,也有可能重新組合,利用refractoring(重構)不斷進化,最終形成一整套完備的行業軟件組件庫。做軟件關鍵因素是變化,隻有適應變化的系統才是有生命力的。
  
  我用兩個月的時間大體上弄清瞭。NET平臺下的主要類庫,然後又用兩個月的時間再次重新實現瞭期刊發行系統的C++版本的全部功能,到8月份我寫這篇文章之時,第一個產品裡程碑已經完成。同樣的,除瞭需求是由另一個合作者去搜集的之外,幾乎又是全部由我一個人包攬瞭所有的系統設計及編碼工作!
  
  毫無疑問,我自覺得新系統要比老系統可維護性強得多,真正實現瞭徹底的全組件化系統開發,計劃再有一個月的界面美化,改正bug,引用多線程提高運行效率,優化系統結構,就可以提供給用戶試用瞭。市場如何,難說難測。
  
  在開發過程中,我再次感到巨大的挑戰,不光是技術上的,更是管理上的。人才是我最頭痛的問題,沒有一流的人才,哪來一流的產品?我們找不到足夠水平的程序員一起合作(牛人哪屑於做這樣一個小兒科的產品?)我們要走的路還很長。也許我們開發的產品是失敗的,但我從來就沒指望能用這賺錢,我隻是盡一個軟件開發者的責任而己,成敗已不重要!人生不嘗試,怎能體現人活著的價值?
  
  剛好我編的程序告一段落。於是就crazy地敲鍵盤,一鼓作氣地把下篇寫完瞭。心中有好多話一次就說個痛快。
  
  看得越多,想得越多,我就越困惑,人啊,你活著到底是為瞭什麼?又整天忙忙碌碌地追求些什麼?我這十年,……我都不知道怎麼說瞭!
  
  大傢自己看吧!
  
  結束語:永無止境的軟件之路
  
  一、辛酸與苦辣
  
  做軟件開發很苦的,技術進步如此神速,每個軟件開發者都得不斷地學習以跟上發展的步伐。有時我常想,何苦呢?我現在在大學中混,怎麼樣不能混下去?為什麼要做這些吃力不討好的事?我投瞭十年的時間去學習電腦,卻最終發現自己不過中人之資,離頂峰遠之又遠。古語雲:三十而立。我今年32瞭,仍是孤身一人,看看周圍的同學,他們的小孩都差不多上小學瞭!許多都有瞭自己的房子和車子,而我到現在才開始申報中級職稱,還擠在集體宿舍中,望著北京高昂的房價而嘆息。現在社會越來越功利瞭,看著象我這樣的窮光蛋,看著由於長期面對電腦缺少鍛煉而瘦弱的身軀,又有哪個女孩願意嫁過來受苦?
  
  軟件人的生活很苦,壓力很大,我認為是拿青春賭明天。就是在這種惡劣的開發環境中,還有許多業外人士指手劃腳說程序員如何如何,還有太多的公司隻顧壓榨程序員的勞動,缺乏對程序員基本的尊重,怎不叫人寒心?
  
  “三十而衰”,這句本不應該流行的話居然成瞭中國軟件人員的流行語。中國程序員的悲哀!
  
  二、無止境的追求
  
  人類已進入信息時代,計算機技術幾乎每隔半年就有一次大的變化,我現在又面臨著這樣的抉擇:今後的路如何走?
  
  北大的教師聘任制度的改革一石激起千層浪,說明瞭中國高校的改革勢在必行。我是歡迎這種變化的,雖然到時我可能會下崗。但人生中總會遇到各種各樣的挑戰,隻要你不倒下爬不起來,就有希望。
  
  我想我必須再次讓自己有個提升,要從小事做起,但做小事則絕不能成為最終的目標,也許,不遠的將來,我會走出國門,到世界軟件技術最發達的地區去汲取豐富的養份。今後的路怎麼走,我還在摸索之中。
  
  三、人生無悔
  
  人生年華如水,時光無情。在過去的歲月中,我盡瞭自己的力,回顧往事,我可以說:過去的事隻有遺憾,卻沒有後悔。如果給我再一次選擇職業的機會,我還會再次選擇軟件!
  
  再過10年,到2013年的時候,我也許會再次寫一篇人生的十年回顧,到那時中國的軟件會如何?中國軟件的明天靠你我這些普通人去紮紮實實地去工作來支撐!少發些牢騷,多做些實事,中國軟件才會有光輝的明天。你我共勉!

Comments are closed.