因?yàn)榍焚M(fèi)原因,廣州電信把我從Internet上斷開(kāi)了,而我只得到一個(gè)帳號(hào)密碼失效的提示。不能上網(wǎng)的時(shí)光,倍感無(wú)聊,凌晨4點(diǎn)了,還是睡不著,突然想寫(xiě)點(diǎn)我與計(jì)算機(jī)之間的事情。
相識(shí)
最早看到計(jì)算機(jī)是96年上高一的時(shí)候,老師教我們學(xué)DOS和UCDOS,還發(fā)了一本教材(上面有鍵盤(pán)布局圖),那個(gè)時(shí)候電腦386,而且每次去機(jī)房都要脫鞋,那個(gè)味道真是別提了,當(dāng)看到老師用鍵盤(pán)飛快的敲擊命令,就佩服的不得了。不過(guò)使用電腦的第一次是尷尬的經(jīng)歷,我連字母在那里都找不到,被迫晚上關(guān)燈了,還在被窩里在手電筒的幫助下默記鍵盤(pán)布局圖。當(dāng)時(shí)的感覺(jué)就是在懂與不懂之間,但是很好奇,也有點(diǎn)淡淡的喜歡,也算是相識(shí)了吧。不過(guò)到高二的時(shí)候,學(xué)校就不開(kāi)計(jì)算機(jī)課了,叫我們努力準(zhǔn)備高考。
心動(dòng)
99年,我也上大學(xué)了,北方的一所普通本科,讀的專業(yè)是機(jī)械設(shè)計(jì)制造及其自動(dòng)化。大一的時(shí)候有門(mén)課是QBASIC,好像非計(jì)算機(jī)專業(yè)都有這個(gè)課,老師先講DOS6.22,然后再講QBASIC程序設(shè)計(jì),有了以前相識(shí)的經(jīng)驗(yàn),我學(xué)的比較快,其它同學(xué)有問(wèn)題,也總來(lái)問(wèn)我,當(dāng)時(shí)覺(jué)得自己很牛啊,因?yàn)樽x書(shū)的時(shí)候,要讓別人佩服你其實(shí)不容易。當(dāng)我虛榮心得到滿足,就學(xué)的更帶勁了,老往機(jī)房跑,實(shí)驗(yàn)自己的各個(gè)想法。用QBASIC在486(99MHz)上用SCREEN 13模式下畫(huà)圓,畫(huà)五星,當(dāng)看到那些神奇的畫(huà)面的時(shí)候,我覺(jué)得自己對(duì)她心動(dòng)了,考試的時(shí)候,我用全年級(jí)的QBASIC第一高分(93)來(lái)向她表露我的心意,怎么當(dāng)時(shí)我就沒(méi)有畫(huà)一朵玫瑰呢,好像很難。
追求
大二的時(shí)候我開(kāi)始自學(xué)C語(yǔ)言了,用的編譯器是TC,特別要說(shuō)一說(shuō)TC在486上跑起來(lái)真是流暢啊,感覺(jué)非常好。一開(kāi)始C語(yǔ)言還真是難啊,特別是指針和結(jié)構(gòu)體,看不懂啊。唯一沒(méi)有變的是我在機(jī)房的時(shí)間在持續(xù)增加,經(jīng)常有些不重要的課不上了,跑去機(jī)房寫(xiě)程序。那個(gè)時(shí)候上機(jī)是5毛錢(qián)一個(gè)小時(shí),機(jī)房的老師都認(rèn)熟我了,他有事情出去了,還叫我?guī)退斟X(qián)。汗,難道就不怕我貪污。那個(gè)時(shí)候,真是刻苦啊,經(jīng)常是到晚上10點(diǎn)多回去,一出計(jì)算機(jī)學(xué)院的大樓,就看到漫天大雪,但一點(diǎn)都不覺(jué)得冷。
我有個(gè)同學(xué)是搞計(jì)算機(jī)等級(jí)考試報(bào)名的,我在他那里花了110大洋,報(bào)名參加3級(jí)B類考試。覺(jué)得考2級(jí)浪費(fèi)錢(qián),就直接考3級(jí)了。還好,考試的題比較簡(jiǎn)單,順利考過(guò)了。
大二的夏天,我就開(kāi)始學(xué)了VB6.0, VF6.0, 呵呵,機(jī)器都變成586了。看到圖形界面后,那感覺(jué)爽呆了。
相戀
上大三了,秋天的時(shí)候宿舍買(mǎi)了臺(tái)電腦,6個(gè)人合買(mǎi)的,花了4800大洋,不過(guò)才8M顯存,450M Hz, 64M RAM, 不要小看她哦,都裝過(guò)Win98,Win2000,WinMe,RedHat,我們就輪流陪她,一個(gè)星期,我才輪到一次。
又一個(gè)冬天來(lái)了,外面仍舊是白茫茫的一片,可我的心里是火熱的。有人跟我說(shuō)C++才是王道,我開(kāi)始自學(xué)C++, 當(dāng)又一個(gè)夏天到來(lái)了的時(shí)候,我買(mǎi)了本清華的<VC6.0從熟練到精通>都是一個(gè)一個(gè)的例子,看到書(shū)做。VC真是嚇?biāo)廊耍粋€(gè)問(wèn)題,可能就導(dǎo)致幾百個(gè)編譯錯(cuò)誤,把我嚇壞了,后來(lái)習(xí)慣了,才不會(huì)那么大驚小怪了。第一個(gè)實(shí)用的程序就是用VC開(kāi)發(fā)的,一個(gè)設(shè)計(jì)V型傳動(dòng)帶的程序,輸入?yún)?shù),計(jì)算并打印設(shè)計(jì)報(bào)告,程序大概3千多行的樣子,很多都是公式和數(shù)組,呵呵,這個(gè)程序唯一的作用就是給老師用,改作業(yè)的時(shí)候,心里有個(gè)底。
熱戀
大四開(kāi)始,開(kāi)始做課程設(shè)計(jì),我的課題是《多點(diǎn)測(cè)溫系統(tǒng)》,分兩部分,一個(gè)是單片機(jī)硬件,一個(gè)是上位機(jī)軟件。軟件功能就是通過(guò)串口與下位機(jī)通訊,采集各個(gè)傳感器的數(shù)據(jù),然后保存,顯示,分析,打印。為此我還去租了一臺(tái)好點(diǎn)的電腦來(lái)寫(xiě)程序,寫(xiě)了大概2個(gè)多月,每天都在寫(xiě)。這個(gè)工程都是用VC寫(xiě)得,就是從這個(gè)項(xiàng)目中,我才真正的明白了一點(diǎn)軟件開(kāi)發(fā)是怎么回事情,那個(gè)時(shí)候上的最多的網(wǎng)站是www.vckbase.com,看里面的文章,把例子一個(gè)一個(gè)的下載下來(lái)研究。當(dāng)時(shí)到了廢寢忘食的地步,那個(gè)感覺(jué)只有熱戀中的人才能體會(huì)。現(xiàn)在我都還保存了那個(gè)軟件的安裝文件。其中涉及到技術(shù)包括:通過(guò)ADO操作ACCESS,串口通訊(MSCOMM控件),還有VC的文檔視圖結(jié)構(gòu),現(xiàn)在看來(lái),那樣的軟件也只能算是一個(gè)作業(yè)。
分手
大四畢業(yè),我到了廣東順德到美的生活電器事業(yè)部做研發(fā),開(kāi)始做我的機(jī)電專業(yè),感覺(jué)我要跟計(jì)算機(jī)分手了。后來(lái)因?yàn)槠渌颍译x開(kāi)美的,開(kāi)始找新的工作。分手的日子是艱辛的。
重逢
做機(jī)械的工作我不想去,很多公司都我拒絕了。有家公司用ASP做網(wǎng)站的我也不想去,后來(lái)去了鴻聯(lián)95,但是去了幾天以后發(fā)現(xiàn)那里并不適合我。最后去了一家做系統(tǒng)集成軟件的公司。當(dāng)時(shí)的工資是試用期2000,轉(zhuǎn)正后2500,還好包吃住。
當(dāng)時(shí)非常開(kāi)心,又可以寫(xiě)程序了,其實(shí)工資都少那個(gè)時(shí)候還真不是很計(jì)較,不像現(xiàn)在。剛?cè)ヮI(lǐng)導(dǎo)也沒(méi)有安排什么工作,自己然后買(mǎi)了本書(shū)學(xué)COM編程,發(fā)現(xiàn)真是難懂,以后用的也少,就沒(méi)有管它了。
激情時(shí)光
我上班后的第一個(gè)任務(wù)是做一個(gè)短信項(xiàng)目,連接移動(dòng)和聯(lián)通的短信網(wǎng)關(guān),然后把數(shù)據(jù)里面要發(fā)送的短信發(fā)送出去,因?yàn)橛昧巳A為和傲天的API,所以還算簡(jiǎn)單,沒(méi)有多久就搞定了。
2004年元旦的時(shí)候開(kāi)發(fā)了一個(gè)使用GMS Modem發(fā)送短信插件,使用串口發(fā)送AT指令。
然后做了一個(gè)即時(shí)通訊的軟件,主要是在局域網(wǎng)內(nèi)使用,聊天,發(fā)送文件,發(fā)短信。這是我自己寫(xiě)得軟件,本該屬于業(yè)余時(shí)間,可是多數(shù)還是在工作時(shí)間完成的。所有做過(guò)的項(xiàng)目中這個(gè)項(xiàng)目對(duì)我的鍛煉最大的,寫(xiě)了很多的版本,自己都不是很滿意,等有空,我繼續(xù)寫(xiě)。最開(kāi)始的幾個(gè)版本就不說(shuō)了。我說(shuō)說(shuō)主要的版本:
l V0.5 時(shí)間:2004年2月 工具:VC6。網(wǎng)絡(luò)部分用WSAAsyncSelect異步Socket,報(bào)文用的是XML,也能用,就是不太穩(wěn)定,也不太好用,很多地方?jīng)]有考慮周到。現(xiàn)在完全放棄這個(gè)版本了,只能把它放到博物館了。
l V0.6 時(shí)間:2004年7月 工具:VC6。很多類都是用Rose設(shè)計(jì)的。網(wǎng)絡(luò)部分是自己封裝的一個(gè)TCP Server,內(nèi)部還是使用的是異步Socket,報(bào)文還是用的是XML, 比起前一個(gè)版本,有了很多改進(jìn)的地方。后來(lái)發(fā)現(xiàn)XML傳輸數(shù)據(jù)其實(shí)不是一個(gè)好主意,平添了很多的復(fù)雜性,并不是先進(jìn)的東西就是適合自己的東西。
l V0.7 時(shí)間:2005年7月 工具:VC2003。這個(gè)是個(gè)新的嘗試,去掉了異步Socket,改成了完成端口。同時(shí)服務(wù)器程序改成了基于控制臺(tái)的程序,協(xié)議也修改為類似QQ的TCP協(xié)議,不再使用XML,一下子世界變得簡(jiǎn)單了。為了適應(yīng)在Internet上使用,而我又沒(méi)有P2P上調(diào)式的環(huán)境,文件傳輸就通過(guò)服務(wù)器中轉(zhuǎn)。
l V0.8 時(shí)間:2005年12月 工具:VC2003。在V0.7的基礎(chǔ)上的網(wǎng)絡(luò)部分使用ACE的reactor代替,穩(wěn)定性隨之大幅提高,成熟的庫(kù)感覺(jué)就是比自己寫(xiě)得代碼要穩(wěn)定。為了支持離線文件傳輸,還寫(xiě)了一個(gè)基于ACE的FTP Server,然后結(jié)合到系統(tǒng)中來(lái)。最后不得不感慨FTP設(shè)計(jì)的簡(jiǎn)潔和合理。本打算把服務(wù)器搬到FreeBSD上的,看到數(shù)據(jù)庫(kù)操作的那些代碼,就打起了退堂鼓。
l V1.0 時(shí)間:2006年9月 工具:VS2005。我大膽的把它命名為1.0,因?yàn)檫@個(gè)時(shí)候,我學(xué)會(huì)了C#,當(dāng)然要用C#把我的心愛(ài)的IM軟件改造一番。增加了很多的新特性,是以Google Talk為目標(biāo)的。
生活
公司的項(xiàng)目也不是很多,幾個(gè)主要的項(xiàng)目有:
l 2004年10月 視頻控制服務(wù)器
跟硬盤(pán)錄像機(jī)通訊,為別的軟件使用它的功能提供標(biāo)準(zhǔn)的接口
l 2004年11月 綜合顯示系統(tǒng)。一開(kāi)始用VC6.0寫(xiě)得,到2006年9月實(shí)施的時(shí)候,發(fā)現(xiàn)公司一開(kāi)始的需求不準(zhǔn)確,我在現(xiàn)場(chǎng)的時(shí)候,用了幾天時(shí)間使用C#把那些程序重寫(xiě)了,都沒(méi)有怎么測(cè)試就部署使用了,到現(xiàn)在客戶竟然都還沒(méi)有提意見(jiàn),神奇。
l 2005年11月 做了一個(gè)OPC Server,幾千個(gè)數(shù)據(jù)點(diǎn),幾十個(gè)設(shè)備,很復(fù)雜的要求,花了我很多時(shí)間,對(duì)穩(wěn)定性的要求也高。一開(kāi)始用C++寫(xiě)得,但是運(yùn)行幾天程序就莫名的不工作了,總也找不到原因。無(wú)法為了自己的名聲著想,到2006年3月份時(shí)候,邊測(cè)試設(shè)備,邊開(kāi)始新版本的編寫(xiě),也就是那個(gè)時(shí)候C#用的多了起來(lái)。我把其中的一部分代碼用C++/CLI 封裝了,拿到C#中調(diào)用,后來(lái)程序都很好的工作了。特別的是因?yàn)槟切┰O(shè)備都是用串口通訊的,所以我那個(gè)時(shí)候,我試用了很多串口通訊的方法,汗,最后發(fā)現(xiàn)還是.NET 2.0自帶的串口控件最穩(wěn)定,其它的或多或少的有些問(wèn)題。因?yàn)槔锩娴脑O(shè)備類型非常多,所以把設(shè)備驅(qū)動(dòng)都做成了插件,為了能在數(shù)據(jù)庫(kù)中保存插件中未知類,自己還寫(xiě)了個(gè)ORM,那個(gè)時(shí)候真是壞了。
l 期間還開(kāi)發(fā)很多小插件,現(xiàn)在都不太記得了。
巨大的轉(zhuǎn)變
2006年12月我離開(kāi)了以前的公司,去了一家做嵌入式開(kāi)發(fā)的公司,在Linux上開(kāi)發(fā)樓宇控制器。想不到去了那里第一個(gè)任務(wù)就是在ARM Linux開(kāi)發(fā)一個(gè)Web應(yīng)用,那些網(wǎng)頁(yè)都得用AJAX技術(shù)寫(xiě),無(wú)刷新查看與之連接的設(shè)備的實(shí)時(shí)數(shù)據(jù)和系統(tǒng)狀態(tài)。想不到去做嵌入式開(kāi)發(fā),卻把JavaScript練得這么熟悉。
效果都是使用CGI+XML實(shí)現(xiàn)的,呵呵,有空我把這個(gè)經(jīng)驗(yàn)介紹給大家,很有趣,就是工作的方式?jīng)]有以前用CGI直接輸入HTML那么直觀,不過(guò)效果很好。
一開(kāi)始我對(duì)使用C語(yǔ)言比較抵觸,但后來(lái)發(fā)現(xiàn)除了C語(yǔ)言,我根本沒(méi)有其它的選擇。我現(xiàn)在每天都在FC6+eclipse+ctd下面工作,不過(guò)也習(xí)慣了,沒(méi)有以前那么別扭了,不過(guò)還是懷念Visual Studio工具的強(qiáng)大,好用,智能,而eclipse好半天一個(gè)智能提示都出不來(lái)。
困惑的將來(lái)
最近寫(xiě)程序總是提不起精神,上班回來(lái),就覺(jué)得很累,變得懶惰了,失去以前的激情和動(dòng)力,是不是年級(jí)大了,精力不行了。如果真是那樣,我將來(lái)到底該干什么呢?難道叫我離開(kāi)計(jì)算機(jī),上帝啊,不要啊。
總結(jié)一下:
l 學(xué)計(jì)算機(jī)盡量越早越好,培養(yǎng)興趣很重要。
l 要勤奮,盡量不要打游戲等娛樂(lè)活動(dòng),多看書(shū),多思考,多實(shí)踐。
l 方向很重要,時(shí)間很寶貴,把時(shí)間都用在正確的研究方向上。
l 培養(yǎng)嚴(yán)謹(jǐn)專業(yè)的工作作風(fēng),不然你寫(xiě)的軟件沒(méi)幾個(gè)愿意用的,除非你是天才。
l 多交流,跟同學(xué),同事,朋友,多上專業(yè)技術(shù)站點(diǎn)。
今天是7-1日,謹(jǐn)以此文紀(jì)念香港回歸十周年。
posted on 2007-07-02 08:59
天下無(wú)雙 閱讀(1619)
評(píng)論(12) 編輯 收藏 引用 所屬分類:
Life