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






















