衣明志:從開發(fā)小游戲到微軟MVP
原創(chuàng)【51CTO獨家特稿】技術專家們的起步之路是不近相同的,今天我們要介紹的衣明志老師是從一個簡單的小游戲開始。盡管當時遇到了不少的困難,但是努力堅持自己解決問題讓衣明志老師在技術之路上有了自己的特點。
人物介紹
衣明志,蟬聯(lián)五屆微軟MVP,煙臺.NET俱樂部主席,現(xiàn)主要從事.NET平臺下的Web應用開發(fā)、解決方案、構架設計及技術培訓等工作。
照片居中者為衣明志老師(51CTO編輯注)
1. 您是什么時候開始接觸開發(fā)技術的?當時有什么技術理想?這么多年過來, 對這個技術理想有沒有過調整?
小時候主要從《科學畫報》之類的雜志以及電視電影上對計算機進行一些概念性的了解,覺得它是很神奇的東西。后來鄰居家的買了一臺小霸王游戲機,而我發(fā)現(xiàn)有能寫basic程序的卡帶,于是開始抽空去他家玩的時候總是會嘗試寫一點及其簡單的程序,能通過程序計算兩個數(shù)相加的結果就感覺很激動,但那時對真正的開發(fā)技術并不清楚,只是覺得有創(chuàng)造東西一種快感。上高中開始接觸286、386計算機,學校每周2節(jié)計算機課,一節(jié)理論一節(jié)實踐。大概是因為迷戀上了計算機,所以基礎課程學的很快,而且很快感覺老師講的都不夠學,于是經常跟班里幾個同學抽空一起討論計算機買一些略微深入點的計算機書籍,并初步了解計算機網絡、計算機病毒等的事情。大部分同學在計算機課上都會偷偷玩一些游戲,我們幾個也玩,比如超級瑪麗、俄羅斯方塊、波斯王子等。
但是我覺得如果能自己寫個游戲就好了,于是自己在那極為有限的條件下(每周只有45分鐘的上機時間),嘗試編寫了一個簡單的剪子包袱錘的小游戲,帶有音樂和簡單的圖形,因為用到了浮點basic等老師不了解的知識,所以遇到問題問老師的時候,老師的回答是“看不懂你的程序”,所以問題都是得自己解決,大概喜歡鉆研計算機問題的習慣也是那時候養(yǎng)成的。那個dos為主流操作系統(tǒng)的時代,我們幾個人把我們煙臺的計算機名人——王江民 奉為英雄,希望成為他那樣的技術牛人。對于自己的未來那時候已經明確了,就是從事IT行業(yè)并創(chuàng)辦自己的計算機技術公司。高考報志愿我的專業(yè)方向都在第一項上寫的是計算機,后來順利地在濟南大學(原為山東建材工業(yè)學院)讀上了計算機科學與技術專業(yè),畢業(yè)后也一直從事IT行業(yè)的工作,現(xiàn)在則已經走在了創(chuàng)業(yè)的道路上。
2. 剛接觸編程的日子,最難忘的是什么?現(xiàn)在來看對當時的自己有什么建議嗎?
剛接觸編程的時候,其實最難忘的還是自己動手開發(fā)那個小游戲的時候,幾次晚上做夢都在寫代碼,而代碼中還充斥了大量的goto語句,呵呵。如果有現(xiàn)在的計算機條件,我大概會希望當時的自己寫個更復雜的,更完整的應用,而且一定要堅持自己先努力思考多遍再嘗試詢問他人。
3. 什么時候在編程上有一種真正“開竅”的感覺?有沒有什么事件加速了這種脫胎換骨的巨變?
我對計算機編程的開竅過程也是蠻有意思的。那時還在大學二年級,當時flash非常流行,自己也喜歡做flash動畫,但是發(fā)現(xiàn)世面上并沒有一個我認為好的Flash播放器,因為adobe的flash player只是能播放和一點幾點的功能,沒有像豪杰的超級解霸那樣類似的功能,比如列表順序播放、截圖、快進、快退、全屏等。于是自己開始嘗試編寫一個屬于自己的播放器,而第一個支持的格式就是flash。但是這時候自己所掌握的編程技術還沒有一項直接屬于windows編程領域的,匯編、Tourb C、PASCLE 都不適合直接做這個軟件的開發(fā),那么怎么辦呢?于是經過比較,決定自己學習一下Visual Basic 6.0,然后使用VB6來開發(fā)自己的這個軟件。因為之前自己已經通過自學掌握了ASP,所以學VB6的時候也相對容易一點,但是可悲的是周圍的同學沒有會的,自己只能拿著一摞子軟盤去網吧把資料下載回來學習,當然也有買書,是講Windows API的。
因為整個學習的過程是有目的的,所以邊學邊開發(fā):為了讓Flash播放窗口能跟控制面板分離并帶有磁吸等效果,學習了鉤子 (HOCK)、多線程等技術內容;為了能夠讓播放器能夠知道FLASH視頻的真實大小,背景色、時長等信息,學習了Flash的文件結構,尤其FLASH文件的頭數(shù)據(jù);為了支持自動播放(不需要點視頻中的按鈕),深入學習了FLASH的Action Script ;為了支持在線流式播放深入學習了HTTP等協(xié)議;為了支持不同版本的windows操作系統(tǒng),又學習了不同版本windows對軟件開發(fā)的影響點,例如有點版本獲得的路徑包含最后的斜線有的沒有…… 后來發(fā)現(xiàn)當時的金山影霸等播放器工具對一些格式的視頻支持的并不理想,而且對一些老舊的機器不支持或支持不夠好,于是自己的播放器后來加入對常見音視頻格式、電影字幕以及視頻糾錯等功能的支持,當然也因為對內存的很小占有,贏得了學校里不少舊機器用戶的喜愛。雖然這個我起名為閃航的播放器,當時只在學校內部發(fā)布,并未對外公開,而且也并沒因此獲得任何的經濟利益,但是它對我在軟件開發(fā)方面的積極推動力卻是很大的,現(xiàn)在談起那段小歷史仍然覺得非常自豪。
4. 最近還在關注哪些技術?有沒有什么印象深刻的事兒?
最近主要關注ASP.NET MVC 3、Windows Phone 7以及NOSQL數(shù)據(jù)庫等技術,個人對Windows Phone 7的未來很看好,希望微軟加油努力在手持設備領域能夠重創(chuàng)佳績。ASP.NET MVC 3的Razor 非常不錯,建議大家關注和學習。NOSQL領域的東西越來越多,也許它能在WEB領域顛覆關系型數(shù)據(jù)庫的地位,我個人非??春谩?/p>
5. 心中是否存在一個技術偶像?這個偶像起到了什么樣的作用?
我想每個技術人心中都有一個技術偶像的,他可能是比爾蓋茨、喬布斯也可能是求伯君、王江民或者丁磊、張朝陽。我心中的偶像不是他們具體的某個人,而且是他們的精神集合體,我希望從這些人身上學習到適合我的東西,要知道成為他們中的任何一個人都需要一些特定的必要條件,有時候不是你努力就能成為比爾蓋茨的。所以個人認為努力做最好的自己才是正路,不要過分追求金錢利益,踏踏實實做一些更有意義的事情,我們會更優(yōu)秀。
【編輯推薦】