小的時(shí)候有寫(xiě)日記的習慣,不是自己要寫(xiě)而是為了完成任務(wù),后來(lái)發(fā)現寫(xiě)日記確實(shí)也是可以培養語(yǔ)言表達能力的。上了高中之后除了作業(yè)就很少寫(xiě)東西了,趁著(zhù)這幾天休息想寫(xiě)一下我使用電腦、學(xué)習技術(shù)的歷程。一來(lái)當作分享,看看大家是否能有一些共鳴和啟示;二來(lái)當作回憶,隨著(zhù)年齡的增長(cháng)很多事情漸漸記不住了,想在紙面上留下點(diǎn)記憶。 (一)小學(xué)的時(shí)候 我是很早就接觸和喜歡計算機的,可能有近20年的歷史了,不過(guò)說(shuō)來(lái)也慚愧,我經(jīng)常和同事們說(shuō)雖然接觸電腦這么長(cháng)時(shí)間,但是技術(shù)水平并不比你們接觸電腦幾年的人多幾倍。記得最早的時(shí)候是我在上小學(xué)的時(shí)候,在我媽媽的學(xué)校接觸到了她們學(xué)校唯一的一臺蘋(píng)果電腦,玩了蘋(píng)果電腦里面黑白的,基于線(xiàn)條的開(kāi)飛機游戲后對電腦產(chǎn)生了極大的興趣,這個(gè)時(shí)候電腦不是一個(gè)尋常的東西,也不是普通家庭買(mǎi)得起的東西,由于對電腦興趣比較大就去少年班報名學(xué)習蘋(píng)果電腦。依稀記得當時(shí)一開(kāi)始學(xué)習的就是打字,然后學(xué)習的所謂編程也就是輸入紙上的一些BASIC或LOGO代碼,然后在蘋(píng)果機上運行成功得到結果算是任務(wù)完成,其實(shí)也就是打字,自己是無(wú)法理解其意義的。那個(gè)時(shí)候(92-93年的時(shí)候)電腦是非常金貴的,每次學(xué)習都是幾個(gè)人圍著(zhù)一個(gè)蘋(píng)果電腦,接觸的時(shí)間也很短,很想有一個(gè)自己的電腦,但是基本上是很少有見(jiàn)到個(gè)人買(mǎi)電腦的。處于對電腦的興趣就會(huì )經(jīng)常買(mǎi)很多電腦相關(guān)報紙看,然后把報紙上的各種電腦的圖片剪切下來(lái)粘在一本書(shū)上剪報。 (二)初中的時(shí)候 上了初中以后就有電腦課了,自然電腦課就是我最喜歡的課程,當時(shí)好像用的是386的機器,進(jìn)入機房的時(shí)候是必須穿鞋套的,每一個(gè)學(xué)生購買(mǎi)一張5.25英寸軟盤(pán)(1.2MB)作為自己作業(yè)和練習資料的保存,一家一檔都在里面了: 當時(shí)主要學(xué)習的是DOS以及DOS下的WPS和FOXBASE,也就是操作系統+文字編輯+數據庫。在學(xué)??峙乱粋€(gè)星期只有一次電腦課程,處于對電腦的喜歡,自己買(mǎi)了一本DOS 6.22命令大全之類(lèi)書(shū),好像封面是白色的,非常厚的一本書(shū),里面詳細介紹了DOS的每一條命令的使用。自己雖然沒(méi)有電腦,但是我研讀了里面的每一條命令,整本書(shū)都翻爛了,所以當時(shí)對DOS的命令非常熟悉,在學(xué)校機房上計算機課的時(shí)候即便是老師遇到什么問(wèn)題都會(huì )來(lái)問(wèn)我。。。。電腦雖然買(mǎi)不起但后來(lái)有一次逛商場(chǎng)的時(shí)候發(fā)現出了小霸王學(xué)習機,號稱(chēng)是小電腦,在我的強烈要求下家里給我買(mǎi)了一臺: 接上了電視機就像一臺電腦。我記得學(xué)習機里面有G-BASIC程序,買(mǎi)學(xué)習機的時(shí)候自帶的學(xué)習手冊里面還寫(xiě)了怎么使用BASIC來(lái)編程,我記得最后一個(gè)例子是編寫(xiě)一個(gè)簡(jiǎn)單的類(lèi)似于超級瑪麗的小游戲。我好像花了幾天的時(shí)間把所有代碼都輸入了進(jìn)去并且成功運行出來(lái)最后的例子,但是程序好像是不能保存的,機器斷電之后就會(huì )什么都沒(méi)有,所以學(xué)習機我就一直開(kāi)著(zhù)舍不得關(guān)閉,除了BASIC還有LOGO也是自帶的,小烏龜爬來(lái)爬去畫(huà)線(xiàn)。學(xué)習機的環(huán)境畢竟是模擬的,它的功能不多久就挖掘完了,還是很想有一臺真正的電腦,自己也會(huì )經(jīng)常買(mǎi)一些電腦相關(guān)的報紙來(lái)看并且剪報,雖然沒(méi)電腦吧,但是買(mǎi)報紙看也是一件非常幸福的事情,就這樣對電腦的期待一直持續了幾年。在95還是96年的時(shí)候,偶然有一次在報紙上看到有一個(gè)廣告,說(shuō)是上海百貨一店開(kāi)始預訂飛利浦486多媒體電腦,9999元。那個(gè)時(shí)候這樣的一個(gè)電腦是非??鋸埖呐渲茫ㄓ浀糜幸淮慰措娔X展的采訪(fǎng),有一個(gè)人買(mǎi)了一臺486電腦,記者采訪(fǎng)他說(shuō)為什么買(mǎi)486,他的回答是一步到位!現在想象真好像,不管是他還是我在當時(shí)都很難想到計算機的發(fā)展這么快),具有4X的CDROM可以讀光盤(pán),具有硬件解碼卡可以看VCD,4M內存,540M硬盤(pán),486DX2(還不是SX)的CPU,14寸顯示器,由于當時(shí)宣傳的很夸張也造成了搶手的氛圍,并且我又是這么喜歡電腦好幾年,家里拿出了這么一大筆錢(qián)幫我去預訂了這臺飛利浦的多媒體一體機(可以想象一下,在95年的時(shí)候1萬(wàn)元真的就是家里四分之一的財產(chǎn)了)。當時(shí)VCD的概念是剛出來(lái),買(mǎi)電腦的時(shí)候好像還送了一張VCD電影,在自己家里可以放電影這是多么令人吃驚的事情。 慚愧的是買(mǎi)電腦之前反而研究的是電腦知識和編程,真正有了自己的電腦之后反而是荒廢了。這臺電腦買(mǎi)了之后的一開(kāi)始一段時(shí)間我用它熟悉了DOS的每一個(gè)命令,特別是實(shí)踐了磁盤(pán)整理、格式化花費和分區之類(lèi)的“高級”命令(在機房沒(méi)辦法實(shí)踐)。學(xué)習機的時(shí)候我接觸過(guò)BASIC,有了自己的電腦之后我對BASIC就跟喜歡了,記得當時(shí)買(mǎi)了BASIC的書(shū)看,DOS下又正好有QBASIC,于是嘗試編寫(xiě)了一個(gè)記帳的DOS應用,會(huì )把數據保存在磁盤(pán)上,界面還會(huì )使用各種顏色來(lái)表示不同的賬面分類(lèi),當時(shí)作出這個(gè)想給我媽用的,后來(lái)我媽表示太麻煩了還不如用紙寫(xiě),我雖然強調了這個(gè)軟件可以自動(dòng)進(jìn)行求和等功能,但是在使用的時(shí)候由于BUG和局限性太多(比如只能新建條目不能再修改之前編輯過(guò)的條目)我媽還是放棄了。我記得很清楚當時(shí)的BASIC完全就是國產(chǎn)化的,頂多就是模塊化,程序寫(xiě)到后來(lái)自己都看不懂。電腦是一個(gè)硬件,沒(méi)有軟件又不能上網(wǎng)電腦可以干什么呢?DOS、WPS之類(lèi)的東西也玩膩了。這臺萬(wàn)元的多媒體電腦暫時(shí)可以發(fā)現的作用是看VCD,在家門(mén)口有一個(gè)剛開(kāi)不久的VCD店,可以幾元一次的價(jià)格借盤(pán)片看,于是就經(jīng)常光顧那里,慢慢認識了一個(gè)店老板,他自己家里也有電腦,并且喜歡打游戲,于是我就用1.44MB的那種軟盤(pán)幾張幾張地問(wèn)他復制游戲,記得玩的第一個(gè)游戲是《孔明傳》。后來(lái)盜版好像發(fā)展起來(lái)了,就到外面買(mǎi)那種盜版光盤(pán),好像是20元一張,里面有很多小游戲,而且很多都是外國試玩的游戲,最讓我震撼是當時(shí)玩了一個(gè)真人快打是3D的,第一次接觸到3D,雖然是試玩的只有一個(gè)默認的人物可以選擇但是還是覺(jué)得很爽。此后不久有一次電腦展覽會(huì ),展覽會(huì )上展出了傳說(shuō)中的《仙劍奇俠傳》,好像是幾十元的價(jià)格,在看演示的時(shí)候我被畫(huà)面震撼了,忍不住還是買(mǎi)了一個(gè)。買(mǎi)回來(lái)之后發(fā)現這個(gè)游戲在安裝之后居然不能玩?總是提示什么內存不夠!研究了一番發(fā)現,雖然電腦內存有4M,但是這個(gè)游戲只能用640KB的內存中的那部分,而且它需要540KB的內存。于是就狂研究DOS,當時(shí)又不能上網(wǎng)只能自己看書(shū)來(lái)研究,后來(lái)發(fā)現啟動(dòng)之后只有400KB左右的內存可以使用,那么也就是要想辦法關(guān)掉一點(diǎn)啟動(dòng)項讓他可以有540KB內存咯?后來(lái)發(fā)現調AUTOEXEC之類(lèi)的啟動(dòng)文件可以做一些設置,具體我記不得了,還有什么上位內存之類(lèi)的東西,整整搞了幾天終于把內存騰出到580KB左右,可以成功運行游戲!那個(gè)時(shí)候真是太激動(dòng)了,仙劍奇俠傳啟動(dòng)時(shí)候的那個(gè)美妙的歌聲我現在都記得。在那個(gè)時(shí)候游戲很少,打每一個(gè)游戲都是非常細膩地去打,沒(méi)有現在這么浮躁,一個(gè)暑假兩個(gè)月的時(shí)間玩透了仙劍奇俠傳一個(gè)游戲,第一次體會(huì )到了RPG身臨其境的那種感覺(jué)。在用過(guò)了一年之后盜版開(kāi)始更加猖獗,個(gè)人使用計算機也開(kāi)始多了起來(lái),計算機進(jìn)入了Windows時(shí)代。(其實(shí)電腦買(mǎi)來(lái)之后就附帶了正版的DOS6.22和正版的WINDOWS3.1英文版,前者是3張軟盤(pán),后者是6張軟盤(pán),一開(kāi)始我是不明白那6張盤(pán)的是什么的)后來(lái)就買(mǎi)了什么Windows 3.2中文版,那個(gè)時(shí)候覺(jué)得Windows真是很神奇的東西,屏幕上有這么多立體的按鈕,忍不住就想去按。但98年的時(shí)候還是非常少有人上網(wǎng),所以裝了Windows主要還是學(xué)習一些Foxpro之類(lèi)的東西。 (三)高中的時(shí)候 記得剛上高中的時(shí)候學(xué)校又有電腦課,這個(gè)時(shí)候學(xué)習的電腦相關(guān)的東西早已經(jīng)就不在話(huà)下了,于是自己去報名學(xué)習了“計算機中級”認證,在報名的時(shí)候老師說(shuō)這個(gè)考試過(guò)的概率不是很高的,好像之后一二十的概率。說(shuō)實(shí)話(huà)那種大班的學(xué)習讓我一點(diǎn)興趣都沒(méi)有,坐在右面幾乎什么都聽(tīng)不到,因此除了上機之外幾乎我都不去讀書(shū),在最后幾節課的時(shí)候老師見(jiàn)到了我這個(gè)生面孔,直接了當和我說(shuō)我這種不來(lái)上課的人是不可能過(guò)的。。。??荚囍拔以诩移疵毩暷嵌袴oxpro之類(lèi)的東西,這是我最弱的地方,最強的還是DOS命令,為了保險我報名了兩次考試,最后出成績(jì)的時(shí)候我傻了,居然兩次都過(guò)了!在去拿成績(jì)單的時(shí)候終于讓老師另眼相看。在玩了仙劍之后,我記得還有一個(gè)大作讓我印象很深刻,那就是《金庸群俠傳》,記得當時(shí)這個(gè)游戲有180MB的容量,足足可以占我半個(gè)硬盤(pán),而且由于我電腦只有4MB內存,啟動(dòng)的時(shí)間大概需要幾分鐘,每一次存盤(pán)也需要1-2分鐘的時(shí)間,走地圖還會(huì )一卡一卡,不管怎么樣這個(gè)開(kāi)放式的RPG還是讓我非常著(zhù)迷。后來(lái)就出了Windows95,跨時(shí)代的產(chǎn)品。4MB的內存運行Windows 95實(shí)在是有一點(diǎn)緊張,每一次啟動(dòng)大概都需要十分鐘,而且啟動(dòng)之后再運行什么東西都會(huì )很慢,因為內存都被OS占了,眼饞了很久內存,后來(lái)通過(guò)官方加了一根4MB的內存,居然需要1000元,8MB和4MB真是天翻地覆的差別啊。當時(shí)由于比較喜歡折騰電腦的一些配置,而且也喜歡裝垃圾軟件,所以電腦一直“中毒”啟動(dòng)不了,就要一直重新安裝系統,內存升級之后最明顯的區別是原先1個(gè)小時(shí)的安裝時(shí)間,只需要40分鐘了。在98年高中的時(shí)候已經(jīng)有不少人買(mǎi)電腦了,有的人甚至買(mǎi)了奔騰的MMX,我當時(shí)用的還是486,見(jiàn)到它們的電腦是16MB內存還可以玩極品飛車(chē)之類(lèi)的3D游戲羨慕得不行。 到了好像99-2000年的時(shí)候,那個(gè)時(shí)候電腦城已經(jīng)很發(fā)達了,家庭購買(mǎi)電腦裝機也是很普遍了,于是就到了電腦城讓JS幫忙配了一臺賽揚266,其它配置好像是64MB的內存,Trident 9880的顯卡,6.4GB的硬盤(pán),15寸顯示器這樣子。我印象最深刻的就是9880這個(gè)顯卡,話(huà)說(shuō)JS還是很能理解我們這些配電腦小朋友的心理,給配了一個(gè)獨立的顯卡,用這個(gè)顯卡居然可以流暢運行極品飛車(chē)3、古墓麗影之類(lèi)的3D游戲。在用486的時(shí)候還是編程的,在用第二臺電腦的時(shí)候好像就幾乎不編程了,由于電腦可以運行更多的游戲,電腦的很大一部分意義就是游戲了,那個(gè)時(shí)候單機游戲也是高速發(fā)展的時(shí)代,出了很多類(lèi)似于紅警之類(lèi)的經(jīng)典游戲。之前參加電腦展的時(shí)候買(mǎi)過(guò)正版的仙劍奇俠傳,后來(lái)一次參加電腦展看到《CSC電腦家庭教師》的軟件,好像記得是千元左右的天價(jià),我媽堅持要給我買(mǎi)這個(gè)軟件,希望我通過(guò)它好好學(xué)習,買(mǎi)回來(lái)語(yǔ)數外化學(xué)物理政治等足足幾十張光盤(pán),雖然說(shuō)里面的教材是全國版的和上海版的高中教材不是非常匹配,但是我當時(shí)還是真真切切用它學(xué)了很多,特別是英語(yǔ)和物理,它有升級和分數,像打游戲一樣,我媽總是會(huì )檢查我在CSC里面的分數。后來(lái)好像還給這電腦升級過(guò)一次內存到128MB,升級后的體會(huì )還是Windows98的安裝速度怎么可以這么快。。。 (四)大學(xué)的時(shí)候 上了大學(xué)之后寢室里面有網(wǎng)絡(luò ),開(kāi)始接觸到了網(wǎng)絡(luò ),也開(kāi)始狂熱地玩游戲。一開(kāi)始用的是貓在家里上網(wǎng),當時(shí)上網(wǎng)費是很貴的,按照分鐘計算的,于是就經(jīng)常上了新浪,打開(kāi)一些地址之后然后從網(wǎng)絡(luò )斷開(kāi)慢慢看,想想也是挺有意思的,后來(lái)發(fā)現上上海的一些本地網(wǎng)站居然可以用特殊的賬號免費上,比如上海熱線(xiàn)什么的, 興奮了很久。在學(xué)校由于可以放開(kāi)上網(wǎng),所以會(huì )去上一些聊天室什么的,還有么就是QQ之類(lèi)的。由于寢室有網(wǎng)絡(luò ),所以幾乎每一個(gè)寢室都會(huì )有一兩臺電腦,整個(gè)大樓就是一個(gè)局域網(wǎng),所以聯(lián)機CS、暗黑、英雄無(wú)敵之類(lèi)的是少不了的。每一次打開(kāi)CS都可以看到密密麻麻的房間,每一次阿姨進(jìn)來(lái)總是說(shuō)小聲一點(diǎn),整個(gè)樓到處彌漫了噠噠噠噠的機槍聲和手雷爆炸的聲音。在大一和大二的時(shí)候網(wǎng)絡(luò )游戲不是那么發(fā)達,那個(gè)時(shí)候只有文字類(lèi)的網(wǎng)絡(luò )游戲,大家幾乎都通過(guò)CS以及暗黑度日。每到下課總是沖到房間里面打開(kāi)暗黑一遍一遍刷墨菲斯托來(lái)刷裝備!后來(lái)魔獸3風(fēng)靡了起來(lái),于是又變成一遍一遍虐待電腦和對戰。漸漸我那個(gè)賽揚266有點(diǎn)擋不住了,運行Win98和CS都卡的不行,當時(shí)CS我調的是最低的效果,煙霧彈爆炸畫(huà)面幾乎都是糊的,此事幀數大概就是個(gè)位數,在這個(gè)時(shí)候用狙擊能殺死人運氣真的是不錯。那個(gè)時(shí)候家里條件并不好,記得第一臺電腦近萬(wàn)元,第二臺賽揚大概5000元,第三臺電腦好像也就只有3000元左右的預算。于是就配了一臺毒龍1.2GB的電腦,內存好像是1GB的,硬盤(pán)20GB,集成的顯卡。雖然說(shuō)是集成的顯卡但是性能比9880強勁不少,畢竟是2002年時(shí)候的電腦,另外顯示器也換成了鉆石瓏的15寸顯示器,這臺電腦至少玩CS、魔獸3一點(diǎn)問(wèn)題都沒(méi)有。不過(guò)后來(lái)發(fā)現毒龍的CPU發(fā)熱量很大而且我的機器總是死機,奇怪的是并不是非常熱的時(shí)候死機而是開(kāi)機就死機,如果開(kāi)機10分鐘之內不死機那么就不會(huì )死機了,冷啟動(dòng)總是死機。。。 到了2003年大三的時(shí)候,網(wǎng)絡(luò )游戲開(kāi)始風(fēng)靡了,什么網(wǎng)絡(luò )金庸群俠傳,RO,石器時(shí)代,傳奇,我在一開(kāi)始玩過(guò)一段時(shí)間的金庸,后來(lái)發(fā)現里面幾乎都是機器人和外掛,感覺(jué)沒(méi)什么意思就不玩了,我們寢室的人主要都在玩RO,那個(gè)時(shí)候說(shuō)實(shí)話(huà)我對網(wǎng)絡(luò )游戲沒(méi)什么興趣,反而對網(wǎng)絡(luò )非常有興趣,我好奇這么多網(wǎng)站是怎么做出來(lái)的,覺(jué)得能有自己的網(wǎng)站是一件非常有成就感的事情,于是想到了去學(xué)習做網(wǎng)站,從那個(gè)時(shí)候開(kāi)始接觸做網(wǎng)站,造就了我之后的技術(shù)發(fā)展。。。。
(四)大學(xué)的時(shí)候
接上文。在大學(xué)的時(shí)候有各種各樣的社團,出于對做網(wǎng)站的喜歡,當時(shí)加入了一個(gè)網(wǎng)絡(luò )社團,想學(xué)學(xué)做網(wǎng)站的東西,當時(shí)對社團里面會(huì )動(dòng)態(tài)語(yǔ)言做asp網(wǎng)站的人欽佩的不得了,于是回家買(mǎi)了一本asp的書(shū):
我真正的啟蒙書(shū),當時(shí)我室友也是會(huì )一點(diǎn)html和靜態(tài)網(wǎng)站的,他看了我學(xué)asp就說(shuō)你不要嘗試了,這個(gè)很難學(xué)的學(xué)不會(huì )的。后來(lái)我還是沒(méi)有放棄,堅持照著(zhù)書(shū)上的例子做,大概幾個(gè)月的時(shí)間我發(fā)現居然會(huì )用asp做一些小系統了,由于和網(wǎng)絡(luò )學(xué)會(huì )一個(gè)學(xué)長(cháng)關(guān)系比較好,于是他拉我和其他幾個(gè)學(xué)長(cháng)一起“創(chuàng )業(yè)”接一些外包的小網(wǎng)站來(lái)做,當時(shí)我們這個(gè)小團體有美工而我就是程序員,用asp或php技術(shù)來(lái)做一些網(wǎng)站,比如什么旅游網(wǎng)站啊,什么小的購物網(wǎng)站。后來(lái)我自己也做了一個(gè)自己的個(gè)人網(wǎng)站,叫《隨緣居》域名也是suiyuanju.com,現在早就不在了,然后寫(xiě)了一個(gè)系列文章叫《十天學(xué)會(huì )asp》。我覺(jué)得自己學(xué)習asp的經(jīng)歷是比較痛苦的(沒(méi)有人教),后來(lái)學(xué)會(huì )了之后發(fā)現asp其實(shí)也就是幾天就可以學(xué)會(huì )的東西,特別最開(kāi)始的開(kāi)發(fā)環(huán)境搭建自己摸索比較痛苦。雖然現在回頭看來(lái)比較小兒科,但是這個(gè)系列文章當時(shí)好像在網(wǎng)絡(luò )上火了一把,有人說(shuō)好,也有人罵,說(shuō)是如果所有人都像你這么搞的話(huà)其它程序員都要失業(yè)了,當然也有人說(shuō)浮躁,怎么只說(shuō)怎么做不說(shuō)原理,說(shuō)實(shí)話(huà)在這個(gè)時(shí)候原理我自己都不清楚。后來(lái)我又寫(xiě)了什么《十天學(xué)會(huì )php》《十天學(xué)會(huì )asp.net》(http://blog.csdn.net/byebye8742)(后來(lái)發(fā)現有網(wǎng)友把我的文章打包成了電子書(shū),表示感謝)的文章,現在看看是膚淺的一塌糊涂,當時(shí)我覺(jué)得這些都差不多,無(wú)非就是幾大重要對象,知道怎么訪(fǎng)問(wèn)數據庫,知道怎么從表單獲取值,知道怎么把內容輸出到頁(yè)面就掌握了動(dòng)態(tài)網(wǎng)站的開(kāi)發(fā),沒(méi)有任何oo概念的。
2003-2004年的時(shí)候sql注入好像比較火,當時(shí)在自己的網(wǎng)站寫(xiě)了這么多文章也發(fā)布了一個(gè)論壇(開(kāi)源的隨緣論壇)程序,后來(lái)自己的論壇被別人sql注入了,那哥們說(shuō)就你這個(gè)技術(shù)還開(kāi)源論壇。后來(lái)我研究了一下sql注入,發(fā)現我的論壇程序在get的地方考慮到了類(lèi)型轉換,但是post的地方忽略了,我意識到一個(gè)很大的系統只有有一個(gè)地方有注入漏洞,整個(gè)系統都可以攻破(如果一個(gè)數據源的話(huà))?;厝ブ笪液蛯嬍业哪砱eek討論了一下sql注入,沒(méi)想到幾天后這哥們居然告訴我我們大學(xué)的某個(gè)系統居然有sql注入,再經(jīng)過(guò)幾天的研究后我發(fā)現,除了這個(gè)系統,甚至還有教務(wù)處等系統等也有注入,犯的錯誤和我一樣,post的地方可以注入,特別是那種次要模塊的post地方(比如新聞模塊的搜索),導致整個(gè)數據庫都暴露了出來(lái),通過(guò)工具可以輕易了解整個(gè)表結構以及輸出整個(gè)表的數據,甚至可以下載到表。經(jīng)過(guò)研究之后,學(xué)校的大部分系統都可以順利注入,得到需要的數據,當然還好當時(shí)沒(méi)有用這些數據去做一些錯事,也沒(méi)有去改數據(要改分數甚至都很容易),否則可能就被開(kāi)除了。被發(fā)現之后將功補過(guò),幫學(xué)校做一些系統(比如學(xué)校的官網(wǎng)),在快畢業(yè)的時(shí)候代表大學(xué)參加了上海市第一屆大學(xué)生網(wǎng)站設計大賽。3個(gè)小時(shí)的時(shí)間按照給出的命題做一個(gè)網(wǎng)站,去了之后才知道自己太誠實(shí)了,別人都是帶u盤(pán)進(jìn)去直接整合論壇新聞系統的,3個(gè)小時(shí)做出來(lái)的網(wǎng)站有論壇有新聞?dòng)辛奶焓??我和我那geek哥們做出來(lái)的網(wǎng)站只有一個(gè)新聞系統,在答辯的時(shí)候明顯處于弱勢。還好這個(gè)比賽評分有公開(kāi)投票和評委投票兩個(gè)部分,于是我就想了要么sql注入再來(lái)一次?公開(kāi)投票是一個(gè)ip只能投一次的,我發(fā)現組委會(huì )的這個(gè)php系統也是有注入口的,于是通過(guò)注入上傳了一個(gè)木馬,可以改服務(wù)器上的任意文件,自己做了一個(gè)php上去刷票,刷票后我們的作品當然排名第一,沒(méi)過(guò)幾天發(fā)現另外一個(gè)學(xué)校的作品居然遙遙領(lǐng)先了!后來(lái)到后臺一看原來(lái)那學(xué)校也注入了,我們兩個(gè)“黑客”在后臺碰面了,最后的結果就是組委會(huì )發(fā)現網(wǎng)站被黑取消了網(wǎng)絡(luò )投票的程序。。。我們通過(guò)評委投票只拿到了第三的名次,不過(guò)獎品還算不錯,一臺聯(lián)想P4的電腦。
在學(xué)校的后兩年讀書(shū)倒不多,外面做了不少網(wǎng)站,賺了一點(diǎn)學(xué)費,黑了學(xué)校不少系統,最后也拿了一個(gè)小獎。
(五)第一個(gè)階段
雖然之前有這些經(jīng)歷,畢業(yè)后找工作要想找到大公司的工作也不是特別容易,別人重記住,而我這些都是應用層的小打小鬧。第一家公司用的是asp.net的技術(shù),特別感謝師傅領(lǐng)進(jìn)門(mén),讓我接觸到了很多架構上的東西,剛畢業(yè)的時(shí)候總是學(xué)習最快的時(shí)候,那個(gè)時(shí)候開(kāi)始喜歡上csdn論壇(http://www.cnblogs.com/lovecherry/gallery/21836.html),想的是如果自己能在csdn做一個(gè)版主是多么有面子的事情啊。第一年的時(shí)候雖然自己知道的也不是很多,在csdn努力回答問(wèn)題,慢慢從三角(褲衩?)混到了星星(猩猩),通過(guò)csdn回答問(wèn)題自己學(xué)習了很多,提高了很多,工作第二年的時(shí)候也就是2006的時(shí)候嘗試申請微軟MVP居然成功了,成為了一名ASP.NET的MVP,說(shuō)來(lái)也慚愧現在看起來(lái)那個(gè)時(shí)候的技術(shù)還很差呢。在csdn混了一段時(shí)間之后有了4星,也申請成了asp.net區的版主(當時(shí)csdn叫lovecherry)。當時(shí)在csdn記得有幾個(gè)像神一樣的人物,一個(gè)是思歸,一個(gè)是孟子e章,那些高手搶分都特別厲害,基本一個(gè)回答一個(gè)準,當時(shí)也就以他們?yōu)槟繕?。在csdn一段時(shí)間之后,發(fā)現csdn的問(wèn)題偏向于入門(mén),于是去的時(shí)間慢慢變少了,在博客園注冊了lovecherry的賬號,http://www.cnblogs.com/lovecherry,一開(kāi)始大概寫(xiě)的文章都比較實(shí)用吧,看的人挺多的,所以覺(jué)得分享是一件快樂(lè )的事情,可以和大家一起討論,也可以幫助大家,慢慢喜歡上了寫(xiě)博客??傊?,不管是泡論壇還是寫(xiě)博客,在解決了別人的問(wèn)題別人表示感謝之后會(huì )覺(jué)得很滿(mǎn)足,這也是一個(gè)非常巨大的動(dòng)力。我技術(shù)發(fā)展的第一個(gè)階段就是靠csdn以及寫(xiě)一些博客開(kāi)始的,一開(kāi)始論壇上可能20%的問(wèn)題是自己可以解決的,后來(lái)發(fā)現80%的問(wèn)題自己都可以解決或能找到解決方法之后,感到自己對搜索引擎使用的能力有了巨大的提高,寫(xiě)博客可以提升自己的基礎,因為自己不掌握90%以上是很難寫(xiě)出博客的。通過(guò)csdn我獲得了微軟MVP,讓我對社區貢獻有了更大的責任感。
(六)第二個(gè)階段
到了第二家公司的時(shí)候,由于是MVP的關(guān)系吧,出版社聯(lián)系到我想讓我寫(xiě)一本有關(guān)ASP.NET入門(mén)方面的書(shū)籍,在經(jīng)過(guò)了一些思想斗爭和策劃之后決定花半年時(shí)間來(lái)寫(xiě),于是后來(lái)就寫(xiě)了這么一本《ASP.NET第一步》。由于是兼職寫(xiě)的,所以感覺(jué)寫(xiě)書(shū)的時(shí)候太累了,那半年基本除了上班都在寫(xiě)書(shū)。而且寫(xiě)書(shū)要求自己懂100%,那是比博客更高的要求,而且要有連續性條理性,還不能出現重大的錯誤??梢哉f(shuō)寫(xiě)書(shū)是對自己技術(shù)的第二個(gè)階段的重大提高。在這里想說(shuō)兩點(diǎn),一當時(shí)為什么想寫(xiě)一本書(shū)是因為覺(jué)得自己的自學(xué)比較苦,技術(shù)上有很多東西是一點(diǎn)就透的東西,我希望讓更多人通過(guò)我的書(shū)可以快步入門(mén),很多東西自己琢磨可能需要幾個(gè)月,但是如果看一本思路清晰的書(shū)有人手把手的話(huà)話(huà)可能只需要幾周就可以入門(mén),第二,由于時(shí)間關(guān)心和精力關(guān)系當然也由于水平的關(guān)系這本書(shū)并不是很滿(mǎn)意的,寫(xiě)好之后編輯也說(shuō)錯別字實(shí)在是太多,有很多地方還虎頭蛇尾,這里要和讀者說(shuō)對不起了。在此時(shí)此刻現在看來(lái),當時(shí)寫(xiě)的書(shū)還是比較膚淺的,可惜現在沒(méi)時(shí)間了,否則真的想再寫(xiě)一本書(shū),我覺(jué)得現在可以分享的東西比幾年前多的多。在寫(xiě)書(shū)之后,還和出版社合作參與過(guò)幾本書(shū)的翻譯工作,如果說(shuō)寫(xiě)書(shū)是練技術(shù)的話(huà),翻譯書(shū)練的就是英語(yǔ)的閱讀能力,我記得在剛翻譯第一本書(shū)的時(shí)候是需要查字典的,一頁(yè)紙的翻譯大概在2-3小時(shí)左右,也就每走一步都很困難。到了第一本書(shū)翻譯完成之后發(fā)現自己的翻譯速度提高了好幾倍,而且不用查字典了,當然后來(lái)再翻譯了幾本書(shū)之后計算機英語(yǔ)書(shū)籍的閱讀速度就和中文的閱讀速度差不多了,對英語(yǔ)資料的閱讀從反感到了喜歡。國內中文的資料往往會(huì )慢國外英文的資料1-2年,這是因為書(shū)籍的翻譯和發(fā)行需要這么一個(gè)過(guò)程,而且國內社區對技術(shù)的討論沒(méi)有老外這么多,所以我個(gè)人是很喜歡用英語(yǔ)關(guān)鍵字來(lái)搜索相關(guān)資料,也喜歡看英語(yǔ)的一些文檔博客和書(shū)籍,我會(huì )推薦同事安裝英語(yǔ)操作系統和各種框架,因為這樣在遇到問(wèn)題的時(shí)候系統給出英語(yǔ)的提示我們才可以直接搜到國外的資料,否則有的時(shí)候甚至需要把中文的異常信息再翻譯成英語(yǔ)去搜索。在這個(gè)階段的時(shí)候感覺(jué)自己的技術(shù)怎么說(shuō)呢,在.NET這個(gè)領(lǐng)域基本可以解決大部分問(wèn)題,但是設計上有欠缺,在一開(kāi)始幾年比較難理解oo的一些東西,從.NET社區來(lái)看也不像JAVA這塊這么“先進(jìn)”,有一點(diǎn)井底之蛙的感覺(jué)。在學(xué)習了設計模式之后,可以發(fā)現自己一下子可以理解抽象層和實(shí)現層這種繼承實(shí)現的設計上分層的意義了,思想可以從純過(guò)程化到使用OO語(yǔ)言到真正采用OO開(kāi)發(fā)的轉變了,有很多同事一直在說(shuō)可以看懂OO的代碼,但是很難自己寫(xiě)出這樣的代碼,我覺(jué)得這必定是需要一個(gè)過(guò)程的,通過(guò)設計模式的學(xué)習和閱讀別人寫(xiě)的代碼可以加速這個(gè)過(guò)程,但肯定需要一個(gè)過(guò)程。只有在重構中抽象,通過(guò)無(wú)數代碼的改良過(guò)程才能體會(huì )出其意義。

(七)第三個(gè)階段
在第三家公司的時(shí)候,我還是專(zhuān)注于.NET,但是這個(gè)時(shí)候開(kāi)始看許多設計方面的書(shū)籍,也對各種經(jīng)典設計模式比較熟悉,在OO上進(jìn)行一定的實(shí)踐。同時(shí)還在繼續翻譯一些書(shū)籍,對微軟技術(shù)進(jìn)行進(jìn)一步拓展,緊跟.NET的新技術(shù)。并且,開(kāi)始去了解和實(shí)踐一些IOC、AOP、ORM,以及繼續自己多年在SOA方面的實(shí)踐。當然,在這家公司雖然在技術(shù)的廣度上沒(méi)有發(fā)展,但是另一個(gè)好處就是英語(yǔ)得到了進(jìn)一步的提高,如果說(shuō)以前是解決了只是閱讀這一關(guān)的話(huà),在一個(gè)純英語(yǔ)環(huán)境下工作可以解決寫(xiě)和聽(tīng)說(shuō)的關(guān),英語(yǔ)的學(xué)習對于外國人來(lái)說(shuō)從簡(jiǎn)單到難個(gè)人認為是讀寫(xiě)聽(tīng)說(shuō),最難的也是實(shí)踐最少的就是說(shuō)。碰巧的是工作中合作的產(chǎn)品經(jīng)理是老外,所以聽(tīng)說(shuō)上有點(diǎn)長(cháng)進(jìn),至少英語(yǔ)敢說(shuō),不怕丟臉就成功了一半了。
(八)第四個(gè)階段
在第四家公司接觸到了.NET之外的世界,覺(jué)得自己從井底爬了上來(lái),沒(méi)想到開(kāi)源的世界有這么多東西,以前真是井底之蛙了,也注冊了一個(gè)新的賬號就是現在這個(gè) http://www.cnblogs.com/lovecindywang。在接觸了.NET之后,又接觸了Java、Linux、Python、Ruby,然后又接觸到了比較火熱的移動(dòng)開(kāi)發(fā)iOS和Android。發(fā)現很多東西其實(shí)是非常相通的,比如如果說(shuō)ASP.NET MVC很熟的話(huà)再去接觸Zend、Struts2、Rails沒(méi)有任何難度,ObjectiveC中也有C#類(lèi)似接口、委托、查詢(xún)表達式等等一些概念。。。我覺(jué)得人其實(shí)是有一個(gè)舒適區的,比如一直在.NET這塊就是一個(gè)舒適區,如果可以突破就會(huì )發(fā)現其實(shí)其他東西學(xué)習起來(lái)沒(méi)什么困難的,因為技術(shù)上是觸類(lèi)旁通的,特別是理解了一些諸如編譯、內存、虛擬機、線(xiàn)程等基礎的東西之后,這些東西到哪個(gè)語(yǔ)言都是差不多的,唯一要學(xué)習的只是每一個(gè)語(yǔ)言語(yǔ)法層次的東西和API層次的東西。因為,我現在在學(xué)習一門(mén)新語(yǔ)言的時(shí)候,往往只會(huì )先花1-2天時(shí)間看語(yǔ)言特性,然后花1-2天的時(shí)間過(guò)一遍API,然后就是重點(diǎn)要看語(yǔ)言背后VM或說(shuō)平臺層次之類(lèi)的東西,因為這才是這個(gè)技術(shù)最重要的部分,比如對于web語(yǔ)言來(lái)說(shuō),其內存模型,線(xiàn)程模型以及編譯方式就很重要,這些基本的東西不理解很難把握住語(yǔ)言。在這個(gè)階段的時(shí)候由于從一個(gè)框架的使用者到了一個(gè)框架的設計者和開(kāi)發(fā)者,閱讀了很多開(kāi)源的代碼,也會(huì )考慮參與一些開(kāi)源的東西,此事我發(fā)現,如果說(shuō)寫(xiě)博客是和國內開(kāi)發(fā)人員一起討論技術(shù)的話(huà),參與開(kāi)源項目那么就和國際接軌了,因為全世界的人都可以看到你的代碼,當然要參與開(kāi)源項目英語(yǔ)也是一個(gè)必要的鋪墊。
總結一下吧,我是通過(guò)下面的方法提高自己的技術(shù)的,在社區回答技術(shù)問(wèn)題、在博客發(fā)表技術(shù)文章、寫(xiě)書(shū)翻譯書(shū)、閱讀開(kāi)源代碼參與開(kāi)源項目,我一直覺(jué)得分享是一種很好的提高技術(shù)的機會(huì )。不要怕分享出去了別人會(huì )搶你的技術(shù),永遠不會(huì ),這個(gè)世界上山外有山,高人多的是,你分享出去的東西可以讓人受益,同樣也會(huì )有很多高人來(lái)給你的東西提意見(jiàn),絕對不會(huì )因為分享自己丟了什么,往往是通過(guò)分享可以學(xué)到更多的東西。另外,從我的經(jīng)歷來(lái)看突破自己舒適區是一個(gè)很重要的事情,我以前面試過(guò)不少人工作了幾年連最基本的一些原理都不知道,他們知道怎么基于別人搭好的SSH架構來(lái)做東西,但是甚至不明白什么是IOC以及IOC對于解耦上的意義。遇到過(guò)很多人總是抱怨工作環(huán)境學(xué)不到東西,我覺(jué)得是這樣的,學(xué)東西要靠自己,工作環(huán)境只能說(shuō)是有一個(gè)加成,比如說(shuō)是有一個(gè)更好的平臺來(lái)學(xué)習,而不能期望別人來(lái)教你什么。有的時(shí)候是先有雞還是先有蛋的問(wèn)題,自己的水平還不夠好,往往就進(jìn)不了大公司,自己水平夠好了進(jìn)了大公司往往公司又不能讓自己學(xué)到什么,其實(shí)想想也對,別人給你工資是要你創(chuàng )造價(jià)值的而不是說(shuō)要來(lái)教你什么,所以在一個(gè)環(huán)境學(xué)東西是靠自己的。
最近兩天在家整理了一下書(shū)櫥,發(fā)現有很多書(shū)找不到了,也發(fā)現居然有一些書(shū)買(mǎi)重了(書(shū)重了,說(shuō)明其確實(shí)是一本好書(shū),在自己不同的階段都會(huì )意識到需要再讀,其中重復很多本的是自己翻譯的,出版社送的樣書(shū),一般來(lái)說(shuō)園子里的朋友寫(xiě)的書(shū)我都會(huì )買(mǎi)來(lái)看一下,一個(gè)是支持第二是知道書(shū)不會(huì )太差)。
第一層都是一些.NET書(shū),.NET的書(shū)買(mǎi)的真不少啊,第二層左邊是其他的一些.NET書(shū),中間是數據庫相關(guān)的書(shū),右邊是C/C++相關(guān)書(shū)。
第三層是基礎類(lèi)的、設計類(lèi)的以及重構和方法學(xué)類(lèi)的書(shū)籍,第四層是Java、Linux等開(kāi)源技術(shù)的書(shū)籍,第五層左邊是管理類(lèi)的書(shū)籍,中間是前端開(kāi)發(fā)的一些書(shū)籍,右邊是移動(dòng)開(kāi)發(fā)的書(shū)籍。
隨著(zhù)自己對技術(shù)的理解很多書(shū)從看不懂到了看得懂,也越來(lái)越發(fā)現基礎的重要。對模式、重構需要有時(shí)間的積累,對任何一門(mén)語(yǔ)言來(lái)說(shuō)先學(xué)好其特性再學(xué)其運行時(shí)的一些東西很重要,不能說(shuō)會(huì )了ifelse和while就認為是會(huì )了一門(mén)語(yǔ)言。而且年紀大了之后,發(fā)現技術(shù)其實(shí)是成功的其中一個(gè)因素,也不是百分之一百重要的,正因為如此對待技術(shù)沒(méi)有什么可以張揚的,人會(huì )越來(lái)越低調。我一直認為,我比你多懂一點(diǎn)只是自己多走了幾步,沒(méi)有什么可以炫耀的,不管到哪里教別人分享都是一件很快樂(lè )的事情,山外有山低調總是沒(méi)錯的。而且,對技術(shù)的心態(tài)也從玩技術(shù)到了用技術(shù),技術(shù)要能用好才能發(fā)揮其價(jià)值,如果一味使用高端的不成熟的技術(shù),雖然說(shuō)很先進(jìn)但是很可能造成項目的失敗,把最合適的技術(shù)用在最合適的地方才是成功。
此文送給我之前的同事,希望你們各自在自己的崗位上做出好成績(jì),和公司共同成長(cháng),也送給我自己,希望我之后的發(fā)展可以順利。
聯(lián)系客服