白喬原創:程序員的路該怎麼走?

年輕的時候,常常以程序員自詡,涓涓代碼流於鍵盤之下,那是何等的滿足!如今已過而立,隨着小兒的出生,青澀自負的青春早已作古,現在的我在做什麼呢?該做些什麼呢?心裏的頭緒越來越多,終是忍不住上來與大家探討探討。
 
回想自己走過來的路程,10幾年前,我在揚州城的一所大學裏修學機械工程專業。直到大二,與計算機惟一相關的課程是一門《FORTRAN77 程序設計》,學工科的同仁們應該不會對ForTran感到陌生吧!這門苦澀的課程讓一個香氣襲人的女老師講得一塌糊塗,然而我似懂非懂的認真學習了一個學期並通過了後來的省二級考試:)後來,我開始迷上了QBASIC,它可以畫圖,這是我感興趣的原因。另一個不經意的時間,畫法幾何老師辦了一期AutoCAD與C語言輔導班,抱着對C語言的神往,我報名了,並從此不可收拾的喜歡上了C。興趣是最大的老師,我要是一頭騾子,前面掛着胡蘿蔔,就算揹負着再重的貨物,我也願意一往無前。
 
很難想起,最初接觸到C的時候我會幹些什麼。當時的系科協舉行的兩屆計算機設計大賽,我倒是參加了。第一次的參加大概是96年,準備的是一個DOS下的畫圖程序,通過該軟件可以操作鍵盤繪製一些簡單的圖形,並實現圖形的保存和讀取。搞機械專業都會接觸到AutoCAD,當時我對其中的十字光標很是着迷,因此在那次設計賽中弄了個十字光標,也就是通過這個軟件,我熟悉了INT中斷、異或模式、拖曳作圖、文本窗口模式、圖形模式、位圖保存等等的知識。也是大概那個時候,我迷上了《電腦愛好者》,並發表了《何爲中斷?》《使用C++完成圖形的存取》等文。
 
等第二次參賽的時候,很榮幸的,我已經是系科協主席了,當時找了系學習部長負責會議的主持。參賽的作品是一套窗口界面,後來楊漢瑋同學稱之爲FakeWindows,那已經是97年,Win3.1已經在使用,Win95還沒有普及。當時的想法很簡單,想利用C++語言構建一套DOS界面下的圖形組件庫,結果也差不多了,做了一堆組件,包括菜單、文本編輯框、命令按鈕、radiobox、checkbox、滾動條,以及定時器。當時學習Win3.1的痕跡很重,包括那個輸入框中的光標閃動的頻率都是前後比較下來的。通過這些,我熟悉了C++語言,熟悉了鼠標、圖形編程,並熟悉瞭如何在DOS中輸入輸出漢字。通過項目實踐學編程,這也是我多年以來總結出來的一條經驗。那些日子是開心的,或者熬夜,或者在夢中想着那些飛舞的代碼,讓我感覺青春無悔。
 
也是那個時候,我發表了《漢字處理技術》、《中斷處理技術》、《鼠標處理技術》等文。有所收穫,就與讀者們一起分享、一起研討,既可以享受編程的愉悅,又可以一起提高,何樂而不爲呢?
 
我的第一份AutoCAD上機作業是畫了一盆花,當時找了個相機拍了張照片,由於屏幕上的東西很不清晰,沖洗店居然認爲該膠捲作廢沒給沖洗!@#$%^不管怎麼說,後來洗出照片了,顏色很好看,我寄給了遠在安徽農村的老爸老媽,他們估計不明所以,但是很高興。至於FakeWindows,我也是及時的拍了張照片,如果老家裏的那本相冊還沒有來得及腐蝕的話,那些畫面應該還存在。敝帚自珍,當時這些代碼我也是用3寸軟盤拷貝了好多份,可憐的是,早已不知道那些盤放在哪了!有的時候覺得這是一些遺憾,但是那些項目實作的結果,是讓我熟悉了C++,熟悉了類設計,熟悉了繼承與多態,這些技能和思路早已深烙在心,何憾之有乎?
 
總而言之,我並非來自正規軍,而是一個雜牌子的C++程序員。 本科畢業之後,和一家DVD公司簽約之後,意外的發現自己無望的碩士居然考上了……報考的時候爲了取巧,還是選擇的是機械,之後就讀了三年的機械專業的研究生。還好,這個時候我開始使用Visual C++,因此研究生的3年基本上靠VC度過的。其間發表了《輕輕鬆鬆C to C++》。
 
VC的應用領域很廣,同學做的算法及其界面展示基本上是VC,我和本科畢業的老同學之間的項目合作也是用的VC,其中用的比較多的是socket編程。合作的基本模式是同學去談項目,我負責開發,他再去實施,之後大家分錢,如此多次。那個時候ASP很火,因此我自學了ASP,一直用Visual InterDev做ASP開發,並設計同學錄、個人網站,自得其樂。很多人喜歡把VC和web編程對立起來,但我不這麼認爲。在一些項目中,我覺得使用HTTP協議更自由一些,因此有些項目都是靠VC實現的客戶端與web站點一起搭配完成的。程序員該做什麼?我覺得,程序員應該學會給用戶一套完整的解決方案,而非固執的堅持是採用C++,還是java。近期的拙作《把脈VC++》中,我一直宣揚着這種觀點。
 
談到java,那已經是2001年之後的事情了。找到的工作在北京,這邊的開發語言是java,於是我又開始自學java,當然過程中同事的幫助非常重要。用過C++的人,再學習java很簡單。用過ASP的人,再學習JSP也是得心應手,因此我很快就入門了,並開始做了N多J2EE項目。(當然了,弊病也是有的,直到2年後,我才發現我一直在用使用C++的方式用着java。)java的空間很廣闊,第三方資源更是豐富,因此我在很多項目中使用java,當然,一些需要高性能計算、客戶端人機交互和COM調用的場合,我還是使用着VC。
 
總之,這段開發之路走得很開心,也很酸楚。當年在揚州那所大學的情形常常不能忘記,最清晰的一幕就是我曾經在一間沒坐滿的機房偷偷上機,被計算機系的老師發現,要驅逐出門,年少的我反問了一句:“後面這麼多機器都空着,這不是資源浪費嗎?”,這位靈魂工程師回答“對!這就是浪費!這就是最大限度的資源浪費!”,這句話刺傷了我。時過境遷,這位老師是否還在學校任教不得而知,但我希望各位同仁在生活中,待人友善一點,不要太刻薄,不要傷害他人。也就是那以後擔任系科協主席的日子裏,我竭力爲各會員聯繫系裏面的機房,讓他們利用週末時間可以多摸幾次電腦,多寫幾行代碼。
 
每個人一生中都有幾個最好的朋友,我大學階段的摯友是楊漢瑋先生。在我很多的作品(軟件、稿件、圖書)中,我都提到了他。他是一個比爾蓋茨式的人物,之所以這麼說,是因爲他酷愛電腦,並且中途輟學,一時傳爲佳話。不同的是結局,比爾發財了,他沒有。當時在班上,我是追求上進的優等生,他是常常缺課掛考的混混,但我們常常在一起討論理想,包括我不懂的無線電,包括他不懂的C語言,以及比爾和艾倫。大二的時候,來自蘇北農村的他花了1萬元錢買了臺486,這臺電腦先後陪伴了我的QBASIC、C和C++,當然也包括西木頭的《C & C》和大宇的《仙劍》。楊同學是個愛咬文嚼字的人,也是個多情的人。我們那時候很少想到如何去追女生,但是對《仙劍》的愛情演繹能夠評論得頭頭是道。98年畢業的時候,楊同學一次去南京,給我帶回來一本老外寫的3D遊戲設計,其中講解了一些3D原理以及編程要點,可惜我並沒有深入的看下去,當時我看的一本書,是一本貌似盜版的C++外版書,印刷很粗糙,但是內容很深入,並前衛的涉及到C++模板等高級的內容。就是那本書讓我知道了編程書還可以例舉出一小段一小段得示例代碼來寫,若干年後,在寫《標準C++開發入門與編程實踐》之前,我一直想找到那本偉大的書,但是杳無音信,無以臨摹,真是太遺憾了!爲什麼人這一輩子總會製造這些那些的遺憾呢?
 
嘆完了前面的路,那麼,三十好幾的我,以後的路該如何去走呢?
 
 未完待續……
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章