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