大學(xué)時代影響我的人生的10件大事
關(guān)于排名第一的那件事情,現(xiàn)在的想法還不系統(tǒng),而思考也隨著學(xué)習(xí)和生活還在繼續(xù),無法完全展開了.以后再細(xì)說吧.
1.對人生和逆境的思索
2.放棄計算所,報考中國科大
3.不問別人在干什么,獨(dú)立學(xué)習(xí)
4.學(xué)習(xí)數(shù)理邏輯
5.學(xué)習(xí)數(shù)學(xué)分析和高等代數(shù)
6.從技術(shù)到科學(xué)
7.兩次參加數(shù)學(xué)建模比賽
8.閱讀 <>
9.用實踐的方法對待計算機(jī)科學(xué)
10.學(xué)習(xí)并且掌握了Visual C++ 6.0
1.對人生和逆境的思索
這個話題很大.大學(xué)4年讓我想清楚了很多問題,無奈,現(xiàn)在思路還沒有徹底理清楚.很多結(jié)也沒有完全解開.所以就不能細(xì)細(xì)展開了.我想以后總有一天我會再詳細(xì)談?wù)勛约旱目捶?今天,我只能這么說:感謝上天讓我經(jīng)歷的挫折和逆境.如果沒有這些經(jīng)歷,今天的我也許就是另一個樣子了.
2.放棄計算所,報考中國科大
去年9,10月份,我曾經(jīng)一度在報考學(xué)校上陷入了迷茫.我是一個講求平衡的人,總覺得高考的結(jié)局差了一步,那么現(xiàn)在努力了,一定要彌補(bǔ)回來.中國科學(xué)院計算技術(shù)研究所,這個研制了新中國第一臺電子計算機(jī),第一個通用中央處理器,第一個大型超級服務(wù)器的高級科研機(jī)構(gòu),無疑是無數(shù)計算機(jī)專業(yè)的學(xué)子向往的地方,相比之下,中國科大計算機(jī)系則顯然在名氣上落后.按照現(xiàn)在學(xué)生一貫對學(xué)校評判的態(tài)度,名次越靠前,名氣越大的學(xué)校,自然越好.暫且承認(rèn)這個觀點(diǎn)近似正確,但是,下一個推論卻有了問題:"如果成績允許,這樣的學(xué)校就越值得考".
坦率的說,當(dāng)時我在考慮選擇哪所學(xué)校時并不因為成績擔(dān)心過.我考慮的問題就在于:是不是學(xué)校牌子越大,名氣越大,越"牛",那么就越值得考呢?我覺得不是這樣的.想想小學(xué),高中,大學(xué),"考名牌"這種想法真的是與生俱來的嗎?小學(xué)考初中時,媽媽一定要我好好學(xué)習(xí),考上當(dāng)時我們區(qū)的重點(diǎn)初中的重點(diǎn)班,如果她不對我說,你考上那里我就帶你去某某地方旅游,給你買某某東西,你考上那里就給媽媽爭了一口氣,就能和很多"好孩子"在一起玩,(暫且不說好孩子的評價標(biāo)準(zhǔn)),我不覺得所謂的重點(diǎn)班對我究竟有多大的吸引力,也沒有覺得上好高中,好大學(xué)究竟能如何如何,我所希望的只是讓爸爸媽媽滿意,讓他們高興;而初中升高中,則不是媽媽對我說了,而是老師一直灌輸?shù)挠^點(diǎn):"我們班的同學(xué)都是精英,大家都要考上合肥一中,考不上的都是最差的".當(dāng)時考試時挺怕自己考不上,但是,不是怕考不上好學(xué)校對自己的前途影響多大,而是怕被同學(xué),家長看不起,怕令爸爸媽媽傷心.
考名校是成才的必要條件,這個觀點(diǎn)早已被很多教育家批評,而所謂"成才"的定義,官方的說法與世俗的看法也相差甚遠(yuǎn).可以說,今天中國學(xué)生塑造起來的這種"考名校"的態(tài)度,這種競爭,是從小被外界左右的一種被動態(tài)度.他們并不知道為什么要上好高中,好大學(xué),但是他們知道,差生是被批評,被鄙視的,是壞孩子,而考不上好學(xué)校的就是差生.他們的家長也以此作為評價孩子的標(biāo)準(zhǔn),考不好就打罵批評,喪失信心,考好了,就可以炫耀于人前,滿足了他們的虛榮心.逐漸地,再遠(yuǎn)一些,考上了所謂的熱門專業(yè),以后可能會有高工資,這也成為了炫耀的資本;在學(xué)生身上,這種虛榮心也在逐漸建立.在名牌大學(xué)學(xué)習(xí),非名牌不上,持這種觀點(diǎn)的人,有相當(dāng)一部分都在被這種虛榮心左右.
我不覺得這種無目的地,或者是為了滿足虛榮心作出的選擇有什么意義,因為一種人生觀的扭曲,遲早會帶給人迷茫.我的很多高中同學(xué)上了名校,卻陷入迷茫,當(dāng)然,他們的迷茫也促使我重新審視我自己:我沒有上名校,那么我的精神狀態(tài)與他們有什么不同呢?這種不同產(chǎn)生的原因又是什么呢?
在去年9,10月份時,我一直困擾與這個問題,因為我又面臨選擇.我作出了選擇,我就希望知道我為什么要選它,而且原因是不是足夠充分.我絕對不愿意為了一個世俗的虛榮而選擇,因為如果那樣,我遲早還會迷茫.
相比我的很多在名校學(xué)習(xí)的同學(xué),我的大學(xué)生活是很愉快的.我學(xué)到了我想學(xué)的東西,而且還在大多數(shù)情況下毫無壓力.可以說是一個非常寬松自由的環(huán)境.在USTC的學(xué)習(xí)更是如此.我第一次感到不為考試學(xué)習(xí),不為分?jǐn)?shù)學(xué)習(xí)的樂趣.那是怎樣的一種愉悅啊!也許這樣,確實繞開了現(xiàn)形教育制度的很多弊端.雖然我的學(xué)校不好,可是我并沒有覺得這有什么.因為我覺得這種沒有壓力,自由單純的環(huán)境很適合我.
因此,我覺得,究竟應(yīng)該選擇什么樣的學(xué)校,或者大一點(diǎn)說,選擇什么樣的生涯,一定不能被某種虛榮心左右.要看看那種虛榮心是否值得自己為了這種虛榮心而作出犧牲.如果兩者能統(tǒng)一起來最好,一旦發(fā)生沖突,則一定不能被虛榮心左右了自己.要找到適合自己發(fā)展的地方,適合發(fā)揮自己潛力的地方,這才是屬于自己的學(xué)校,屬于自己的生涯.
今天,同學(xué)聚會時來了很多同學(xué),有一些是以前被班主任定義為"差生"的同學(xué),我覺得他們上了一所不知名的學(xué)校其實是一件好事.他們的心理得到了健康的發(fā)展,得到了尊重,潛力也可以發(fā)揮.
3.不問別人在干什么,獨(dú)立學(xué)習(xí)
今天,雖然中國的計算機(jī)教育與西方還有較大差距,但是,已經(jīng)有很多名校開始采取了西方的教育模式,即不僅注重新技術(shù)的滲透,而且注重理論與實際的結(jié)合.北大,清華,中科大,都是在這方面做得很好的.可是,大部分學(xué)校都不可能完全這樣做,因為無論是學(xué)生還是教師都不具備這種素質(zhì),結(jié)果是老師教不好就不教,而學(xué)生因為條件所限,也就不可能學(xué)到這些.如果消息相對閉塞,往往如同井底之蛙,遠(yuǎn)遠(yuǎn)落后于別人自己還不知道.這是很可悲的.
所幸的是我不希望成為這樣的人.我并不覺得自己究竟取得了多大的成績,但是首先我承認(rèn)自己看到了差距,并且盡自己的力量減小這種差距.現(xiàn)在這種差距仍然有很大,可是,我會繼續(xù)努力.這一切都要從大一下學(xué)期開始.離我們學(xué)校不遠(yuǎn)就有一所中國著名的大學(xué):中國科學(xué)技術(shù)大學(xué).騎車大約半個小時就可以到.
不在自己學(xué)校學(xué)習(xí),而到另一所學(xué)校學(xué)習(xí),這似乎是很不安分的想法.但是,在國外這種情況完全是司空見慣的.經(jīng)常有人看到Havard里面有MIT的實驗室,而Cambridge的教授在Oxford上課.即使在我國,也慢慢開始教學(xué)資源共享.可是,由于中國幾千年封建統(tǒng)治,封而治之的觀念根深蒂固.可是,為了學(xué)到我想學(xué)的東西,不邁出這一步,就可能什么也做不了了.
邁出這一步是不容易的.周一早上,大家都背著書包去教學(xué)樓了,可是我卻騎著車子出了校門.而在另一所學(xué)校,USTCer高人一等的態(tài)度則無形中加大了我的壓力.非常幸運(yùn)的是,我得到了高中幾位好友的幫助.他們給了我很大的鼓勵,讓我慢慢習(xí)慣這種學(xué)習(xí)方式.而中科大教授們那種對科學(xué)的一絲不茍,嚴(yán)謹(jǐn)認(rèn)真的態(tài)度和精彩的教學(xué)則讓我欲罷不能.之后我特別盼望可以聽到他們的講課.于是學(xué)習(xí)的東西就越來越多,以致于修了計算機(jī)系,數(shù)學(xué)系的大部分課程.這期間不僅打下了堅實的專業(yè)課基礎(chǔ),而且中科大一向注重數(shù)理基礎(chǔ)的特點(diǎn)也為我打下了很好的數(shù)學(xué)基礎(chǔ),不僅如此,也慢慢開始和國際接軌,看到了很多新的東西,聽到了許多世界知名教授的報告,也了解了很多當(dāng)前熱門的研究方向.
這樣做的后果是在學(xué)校我成了一個另類.大家在教室看不到我,由于白天從外面回來直接就去了教室,往往是早上出去晚上睡覺時才回來.而大三以后,我搬回家住了,以至于他們一學(xué)期都沒有見到我?guī)酌?老師點(diǎn)名N多次不到,恐怕早被老師恨出了個洞了.這一切阻力在大三下學(xué)期達(dá)到高潮:我的期末考試以計算機(jī)網(wǎng)絡(luò)和數(shù)據(jù)庫技術(shù)兩門紅燈收場.事實說明這兩門紅燈對我來說是毫無意義的.這似乎更是對我們學(xué)校教育體制的一種諷刺.唯一的好處是在準(zhǔn)備下學(xué)期復(fù)試時,我有老師可以隨時問問題了,還可以增進(jìn)師生感情.
我們專業(yè)很多人知道了我的這種行徑,他們雖然很羨慕我學(xué)到了很多他們不了解的東西,可是卻一直沒有人也上這條賊船.雖然我今天已經(jīng)非常習(xí)慣于這種學(xué)習(xí)方式了,但是我在他們身上看到,人的惰性如果一旦放縱,一旦安于現(xiàn)狀,那會耽誤多大的事情.
這里還要指出一點(diǎn):不要功利的認(rèn)為這種行為只是為了考研.很多人為了考研到外校聽幾門專業(yè)課,這是毫無意義的.沒有從一開始就打下扎實的基礎(chǔ)和系統(tǒng)的體系結(jié)構(gòu),這種聽課不可能有深刻的理解,而且很容易造成一知半解的結(jié)果.不要迷信自學(xué).也許對死記硬背地東西還勉強(qiáng)有效,但是科學(xué):如果人人都能自學(xué)去領(lǐng)悟它,那么老師不是早就失業(yè)了嗎?
4.學(xué)習(xí)數(shù)理邏輯
學(xué)習(xí)數(shù)理邏輯在我逐步清晰的認(rèn)識計算機(jī)科學(xué)本質(zhì)的關(guān)鍵時刻起了助推的作用.這種推力是巨大的,也是決定性的.學(xué)習(xí)了數(shù)理邏輯,我對自己的追求再也無怨無悔.
數(shù)理邏輯的思想非常深刻,直至今日我也沒有悟出其中很多道理,而相信我的一生也不可能搞清楚其中的一小部分問題.很多問題我在近期閱讀 < <邏輯哲學(xué)>>時候還在逐步理清之中,盡管這樣,卻還是很簡單的一部分.但是,隨著數(shù)理邏輯的學(xué)習(xí),我的思維日益趨向于演繹的和理性的.一種自覺邏輯在不時的影響我的思維,極大的提高了我得邏輯分析能力.在日常生活中,我很輕易的看到別人談話的漏洞,而自己做的論證也能夠刻意的加以嚴(yán)密化,這種思維方式的形成,數(shù)理邏輯起了非常大的作用.
在學(xué)習(xí)數(shù)理邏輯時,我見到了陳小平教授.他的學(xué)術(shù)水平很高.數(shù)學(xué)系本科的背景使得他的講授不僅具有數(shù)學(xué)本身的嚴(yán)密,又帶有計算機(jī)科學(xué)家的靈活和直覺.因為他的教學(xué),我成功的建立起了數(shù)理邏輯的理論體系,而且熟悉了里面很多繁復(fù)的證明,而Gödel的不完備性定理則帶給我震撼和崇拜.他同時又非常善于啟發(fā)大家獨(dú)立思考問題,盡可能的讓大家了解到數(shù)理邏輯的思想內(nèi)涵,而不僅限于了解形式系統(tǒng)本身.如果沒有他的指點(diǎn)和講授,我是不可能逐步開始思考一些深入的問題.他當(dāng)年講課時提出的很多思考題,今天拿出來重新審視,仍然意猶未盡.他的講課同時告訴了我們許多作研究的方法,同時流露出了獻(xiàn)身科學(xué)的氣概,令人敬仰.
陳小平教授同時也是人工智能專家.人工智能與邏輯有著天然的聯(lián)系.邏輯在某種程度上說是對人思維的建模,將之使用計算機(jī)程序設(shè)計語言實現(xiàn),也就是在模擬人的思維.由于學(xué)習(xí)數(shù)理邏輯到了狂熱的地步,大二下學(xué)期我花了一個月的時間就讀完了Nils Nillson的 <>.可謂大開眼界.從此,我再也沒能減少對人工智能,對邏輯學(xué)的癡迷.去年報考研究生,我毫不猶豫地選擇了多Agent系統(tǒng)作為研究方向.并且希望以后能夠一直從事這方面的研究.
我覺得,不嚴(yán)格的說,邏輯學(xué)是溝通哲學(xué)與數(shù)學(xué)的橋梁.向左邁一步,就是哲學(xué),向右邁一步,就是數(shù)學(xué).哲學(xué)和數(shù)學(xué)都是思維無比深刻的學(xué)科,對它們中任何一個領(lǐng)域的研究都會耗費(fèi)畢生的精力.邏輯學(xué)也具有深刻的思想內(nèi)涵,但是,更重要的是,數(shù)理邏輯讓我慢慢看到了科學(xué)的魅力,科學(xué)的偉大.我就像剛剛邁上科學(xué)大廈階梯的孩子,在慢慢推開富麗堂皇而又堅實厚重的大門.一縷縷金光向我射來,每向前邁出一小步,都會有巨大的驚喜.那么,還有什么能阻止我去暢游科學(xué)的大海呢?
5.學(xué)習(xí)數(shù)學(xué)分析和高等代數(shù)
自從慢慢的認(rèn)識計算機(jī)科學(xué),發(fā)現(xiàn)它與數(shù)學(xué)的聯(lián)系之后(雖然這種發(fā)現(xiàn)對于很多過來人而言是再顯然不過的),深入學(xué)習(xí)數(shù)學(xué)就成為了我的當(dāng)務(wù)之急.對于數(shù)學(xué)系學(xué)生而言,數(shù)學(xué)分析和高等代數(shù)是最基礎(chǔ)不過的課程,也是體現(xiàn)了豐富的數(shù)學(xué)思想的課程.而這兩門課我將毫無疑問首先下手.
其實這個過程并不是完全順著來的.真正開始學(xué)習(xí)數(shù)學(xué)分析是大三上學(xué)期,而學(xué)習(xí)高等代數(shù)是大三下學(xué)期.因為大二課程很緊,不可能有時間學(xué)習(xí)這些"非計算機(jī)專業(yè)"的東西.大三的課程也很緊,但是不學(xué)實在是不行了的.那時候的學(xué)習(xí)任務(wù)就非常繁重.現(xiàn)在想來,當(dāng)然覺得累一點(diǎn),苦一點(diǎn)也值啊!
我感到非常幸運(yùn)的是,我有幸聆聽到了史濟(jì)懷教授的數(shù)學(xué)分析和李尚志教授的線性代數(shù).他們兩位都是國內(nèi)外聲譽(yù)極高的數(shù)學(xué)家.史教授的研究領(lǐng)域是多復(fù)變幾何函數(shù)論,給數(shù)學(xué)系講授數(shù)學(xué)分析已經(jīng)有30多年了,他的講課特點(diǎn)是嚴(yán)謹(jǐn)穩(wěn)重.他介紹的書中所有的定義不僅有精確的數(shù)學(xué)表達(dá),而且易于理解.不僅如此,完全脫稿講課是他獨(dú)有的絕活:3個學(xué)期,兩百多個學(xué)時,他在講課的全過程,包括證明分析中的定理時,卻從來不翻教材和講義,一切了然于心,這種熟練令所有同學(xué)目瞪口呆.他的講課很注重教學(xué)方法,不僅有課本的具體知識,而且注重數(shù)學(xué)思維的滲透,數(shù)學(xué)抽象的表達(dá),這讓我慢慢地看到了處理數(shù)學(xué)問題的許多方法.因此,他在證明多元函數(shù)微分學(xué)中著名的"隱映射定理"時,兩節(jié)課8個黑板的證明如行云流水,思路異常清晰,完全沒有冗長乏味之感,聽了他的證明,很有點(diǎn)想自己證證的沖動,似乎數(shù)學(xué)在他的眼里就是一種直觀思維的形式描述.也正是他的這種講課,讓我慢慢地略有所悟:數(shù)學(xué)與直觀之間真的有某種微妙的聯(lián)系嗎?這個疑問后來在數(shù)理邏輯中得到了正式的回答.而經(jīng)過這段對分析的學(xué)習(xí),分析學(xué)的整個思想體系已經(jīng)在我頭腦中完整的建立起來了.它里面體現(xiàn)的思想和方法也是整個數(shù)學(xué)體系的一個縮影.
李教授是代數(shù)方面的專家,也是全國教學(xué)名師.他的線性代數(shù),數(shù)學(xué)試驗都被評為全國精品課程.他的講課風(fēng)趣幽默,復(fù)雜抽象的概念和理論經(jīng)過他的描述,似乎成了顯然的東西.代數(shù)思想一點(diǎn)也不亞于分析,而線性代數(shù)作為抽象代數(shù)理論的一種具體化表述,使我在學(xué)習(xí)的過程中能夠與抽象代數(shù)進(jìn)行對比,發(fā)掘出形式化研究的一些方法和思路.很可惜的是由于時間的原因,高等代數(shù)我只學(xué)了一半,最深刻的理論"若當(dāng)標(biāo)準(zhǔn)型"都沒能學(xué)到.不過,以后我在讀研時候一定要補(bǔ)上這一課.
通過對數(shù)學(xué)分析和高等代數(shù)的學(xué)習(xí),我的數(shù)學(xué)思維得到了培養(yǎng)和訓(xùn)練,邏輯日益清晰,思路也慢慢變得嚴(yán)密.為我學(xué)習(xí)數(shù)理邏輯,逐步領(lǐng)悟科學(xué)打下了堅實的基礎(chǔ).我知道,大部分人都沒有運(yùn)氣同時聽到他們兩位的親自授課,而我為自己能親耳聆聽而感到無比榮幸!
6.從技術(shù)到科學(xué)
真正考慮什么是計算機(jī)科學(xué)是經(jīng)歷了一個過程的.大一剛?cè)胄r的想法很幼稚,以為計算機(jī)專業(yè)的學(xué)生理所當(dāng)然的要成為程序員.在很多網(wǎng)站和論壇上,程序員似乎也被捧得很厲害,懂了VC++6.0可以炫耀一下,懂了Java,強(qiáng)人,會用EJB,更強(qiáng),熟練掌握J(rèn)2EE,.NET,Oracle9i,通過MCSE,SCJP,哇塞~超級大牛.我在這種漩渦中也起哄了很長時間.大一買來了那本 <>,慢慢學(xué)會了設(shè)計Win32程序,開始向網(wǎng)絡(luò)方面發(fā)展,打算作網(wǎng)絡(luò)編程.有一天上學(xué)校的BBS上請教,第一次認(rèn)識了Cauchy.他的建議是學(xué)習(xí)Java.當(dāng)時比較經(jīng)典的Java教材是O’Reilly出版的一套書,光入門書籍 <>就要72元.狠個心買了下來,狂學(xué)一暑假,算是會用了.之后有開始看JSP,XML,EJB,Servelet Programming,一本接一本,J2EE的核心技術(shù)都差不錯粗通了.做程序員的感覺真好!我那時這么想.
可是,問題很快就出現(xiàn)了.學(xué)校學(xué)習(xí)的離散數(shù)學(xué)是干啥用的?為什么學(xué)校不能開一點(diǎn)介紹VC++,J2EE,.NET的課程?而我看得那些書,最后越來越覺得乏味.厚厚的一本書幾乎就是命令大全.一個個冗長的函數(shù)調(diào)用,機(jī)械的設(shè)計過程不僅索然無味,而且?guī)滋熘笥滞靡桓啥?到底什么是計算機(jī)科學(xué)與技術(shù)專業(yè)學(xué)生要掌握的?計算機(jī)科學(xué)與技術(shù)專業(yè)畢業(yè)生究竟做什么呢?我一度陷入迷茫.
閱讀Papadimitriou的 <>,算是第一次接觸到理論計算機(jī)科學(xué).形式語言,自動機(jī)理論,圖靈機(jī)模型,NP完全問題,這些對我來說雖然陌生,卻趣味無窮.那是大二上學(xué)期.之后,于Cauchy的幾次交談令我受益匪淺.他是學(xué)計算數(shù)學(xué)的,數(shù)學(xué)和計算機(jī)都很牛.他在和我談話中,多次談到,理解一種思想的重要性.我們學(xué)習(xí)的課程并不是每個都有豐富的思想,而那些有其思想內(nèi)涵的東西是特別需要重視和加以思索的東西.多思考,抓住每門課程特有的思想,是學(xué)習(xí)科學(xué)的基本方法.
隨著離散數(shù)學(xué)學(xué)習(xí)的逐步深入和Cauchy的開導(dǎo),我慢慢的發(fā)現(xiàn)了許多以前不曾注意的東西.近世代數(shù)的抽象是優(yōu)雅而簡潔,但是卻在非常高的層次上對代數(shù)系統(tǒng)作出了讓人贊嘆的抽象;數(shù)理邏輯則以思想深邃著稱.我慢慢地看到了形式邏輯與數(shù)學(xué)的關(guān)系,以致后來慢慢描繪出了科學(xué)的體系;圖論則是非常具體的問題,但是它的算法和證明確處處閃爍著天才的構(gòu)思.這是從事圖及其他算法研究的常用手段.且不論我們學(xué)習(xí)這些東西就是算什么,但是,這些知識確實有著比VC++,J2EE更令我著迷的奇思妙想.
隨著學(xué)習(xí)的深入和各個專業(yè)知識的展開,我終于明白了現(xiàn)代計算機(jī)科學(xué)的體系.這些數(shù)學(xué)理論,電路理論就是現(xiàn)代計算機(jī)科學(xué)的基石,也慢慢學(xué)會了離散思維的方法和抽象.一副令人愜意的圖畫在我的腦海中慢慢浮現(xiàn):19世界末20世紀(jì)處邏輯Frege發(fā)明的形式邏輯系統(tǒng)掀起了對數(shù)學(xué)形式化的熱潮,在Hilbert的號召下全世界的數(shù)學(xué)家都參與到對數(shù)學(xué)系統(tǒng)的形式化和證明過程中.雖然這種夢想在初等數(shù)論形式系統(tǒng)中就失敗了,卻客觀上促使人們重新展開計算,可計算性,可判定性的研究.Allan Turing的圖靈機(jī)模型應(yīng)運(yùn)而生.而現(xiàn)代微電子技術(shù)使計算機(jī)由數(shù)學(xué)抽象成為了現(xiàn)實.
我終于體會到了為什么很多人說:"學(xué)計算機(jī)一定要數(shù)學(xué)好,計算機(jī)與數(shù)學(xué)密切相連".計算機(jī)根本上是數(shù)學(xué)的和哲學(xué)的."計算機(jī)科學(xué)是數(shù)學(xué)和哲學(xué)的女兒".從此,我不再迷茫.科學(xué)的魅力深深吸引了我,探索計算機(jī)科學(xué)成為了我人生的坐標(biāo),也影響了我整個大學(xué)的知識結(jié)構(gòu).這種影響還會繼續(xù).認(rèn)識也會逐步深入.
在這里我要特別感謝Cauchy,我的好友!謝謝你的啟發(fā)和開導(dǎo)!
7.兩次參加數(shù)學(xué)建模比賽
2003年9月,我和Sunny,Cherry參加了全國大學(xué)生數(shù)學(xué)建模比賽,Thunder是我們的教練,之后于2004年2月,我們又參加了全美大學(xué)生數(shù)學(xué)建模比賽.這兩次比賽,我們分別獲得了一等獎和二等獎,可以說成績還算不錯.但是,它的意義并不僅僅在此.
數(shù)學(xué)建模比賽注重的是過程,而不是結(jié)果.這個過程是一個科學(xué)研究過程的縮影.我們從拿到一道題目,分析問題,提出若干個切入點(diǎn),考慮要使用的數(shù)學(xué)或者其他知識,之后,大家開始在各大搜索引擎和檢索引擎上檢索這些領(lǐng)域的論文(其中不乏英文論文),分頭閱讀,相互討論.通常對于一個給定的問題,或多或少都有一些與之相關(guān)的論文,而我們就在此基礎(chǔ)上,結(jié)合其他的方法和思想加以改進(jìn),提出新的方法,并且加以評價.在整個過程中,要使用數(shù)學(xué)手段和計算機(jī)完成數(shù)據(jù)處理,曲線擬合和數(shù)值分析,統(tǒng)計歸類,甚至編制計算機(jī)程序完成反覆地計算.這些都是在科學(xué)研究中非常普遍的方法.建模的最后一步是完成論文.這個論文雖然不是嚴(yán)格意義上的學(xué)術(shù)論文,但是架勢卻一點(diǎn)也不亞于它.包括目錄,摘要,問題闡述,模型假設(shè),概要分析,詳細(xì)建模,模型驗證,有缺點(diǎn)討論,參考文獻(xiàn),一項也不能少.我們?nèi)珖惖恼撐慕咏蝗f字,美國賽則有八千多詞,都有三十多頁,今天看來,在3天的時間完成似乎是不可想象的事情,可是我們真的完成了.在這個過程中,我們也學(xué)會了怎樣撰寫論文.
而在另一個側(cè)面,數(shù)學(xué)建模比賽的意義則更為深遠(yuǎn).它教會了我們怎樣處理團(tuán)隊合作中遇到的各種問題.在建模比賽的3天里,分歧幾乎是隨時都有的,但是,一旦大家鬧了別扭,固執(zhí)己見,無疑對比賽不利,怎樣處理個人與集體的關(guān)系,怎樣避免庸俗的小風(fēng)頭主意和個人主意,在這里似乎是說起來容易做起來難;另一個方面,如果對于一個問題長期沒有思路,大家都會焦躁,在一個高效的團(tuán)隊里,隊員之間不會互相埋怨,互相指責(zé),而是齊心協(xié)力,共度難關(guān),同樣,這些也是說起來容易做起來難;最后一點(diǎn),比賽的三天里,后面兩天幾乎是通宵不睡,白天接著干活,這對大家都是體力和毅力上的巨大的考驗,忘我工作,大公無私,為他人著想,在這里就是巨大的精神動力.這幾點(diǎn)似乎從小學(xué)開始就天天掛在嘴上,可是,我真的在那兩次比賽中才得到了深刻的體會,而我們?nèi)艘步Y(jié)下了深厚的友誼.
參加過數(shù)學(xué)建模的過來人說:"三天的比賽會讓你終生難忘",我覺得一點(diǎn)也不夸張.
8.閱讀 <>
大三上學(xué)期,我聽了熊悅講師的操作系統(tǒng)課.他是中國科大少年班畢業(yè),后來讀了博士,思維非常活躍,而他的課上,也首次使用了全英文教學(xué),使用的課本就是美國著名學(xué)者Abraham Siberschatz的 <>.我大一時候就曾經(jīng)嘗試看英文教材,當(dāng)時看的是Papadimitriou的 <>,無奈本身計算理論的內(nèi)容就夠艱深了,還用了英文看,顯然困難重重.一直到大三上學(xué)期學(xué)習(xí)操作系統(tǒng)時, <>稱為了我第一本從頭至尾完整閱讀了的英文教材,從此也就開始閱讀了大量的英文經(jīng)典教材.
看英文書,最直接的受益就是英語水平.外國人寫書的風(fēng)格是"娓娓而談",以聊天一樣的親切口吻展開,把每一個英文句子翻譯成中文理解是不現(xiàn)實的.所幸的是我以前英文水平并不爛,而學(xué)OS時這本書由偏偏沒有中文譯本,老師的課件又完全按書上來(也是英文的),這就把我給逼上梁山,非看不可了.一個Chapter一般有三十多頁,而老師幾乎是一次大課上完的,晚上就不得不在教室里,花上4個鐘頭把書仔細(xì)看一遍.開始看得特別慢,看了3,4頁以后就沒辦法集中精力了,可是,慢慢地,看書時候開始使用英文思維了,直接使用英文理解書中的內(nèi)容而不是先翻譯成漢語了,甚至筆記也開始使用英文作了.有一天,連續(xù)看了2,3個小時沒抬頭,那種感覺特別奇妙,好像頭腦里的東西都編程英語的了.我慢慢地感到什么叫做掌握一門語言了.可是,自從那時以后,室友開始對我提意見了:"你怎么說夢話還用英語啊!"我感到很不好意思.
英語水平得到了巨大的飛躍,應(yīng)該就是那個時候.我覺得自己正在慢慢地與這門外語開始了親密接觸.以至于后來做考研閱讀,完型填空時,往往總是"蒙"對正確答案.我沒有辦法清晰的解釋清楚,只是覺得這個答案理所當(dāng)然的應(yīng)該選,其他答案理所當(dāng)然的荒謬.確實,看懂一篇文章與理解一篇文章的差別是很大的,而怎樣準(zhǔn)確的"理解",則要依靠長期培養(yǎng)出來的語感和英語思維.
這件事的另一個巨大影響是:從此以后,閱讀英文教材就一發(fā)不可收拾.計算機(jī)科學(xué)方面的英文教材國內(nèi)引進(jìn)的非常多,很多是享有世界聲譽(yù)的大科學(xué)家的經(jīng)典之作,寫得相當(dāng)精彩.在英語上障礙的掃除使得我可以進(jìn)一步閱讀這些教材,包括Andrew.S.Tanenbaum的 <>, <>,Abraham Siberschatz的 <>, <>,Alfred Aho的 <>,Stuart Russell的 <>,這些書讓我對計算機(jī)科學(xué)的專業(yè)知識有了深入系統(tǒng)的認(rèn)識.
英語水平的提高對于我后來閱讀很多英文論文起到了至關(guān)重要的作用,深刻感到學(xué)好英語的作用.沒有扎實的英語水平,真的是寸步難行!
9.用實踐的方法對待計算機(jī)科學(xué)
計算機(jī)科學(xué)是很注重實踐的科學(xué):但是,這并不因為這計算機(jī)科學(xué)專業(yè)的學(xué)生就理所當(dāng)然是程序員.我并不是從一開始就認(rèn)識到這個問題,但是,這種注重實踐的態(tài)度卻非常有助于我掌握許多課程.大一的時候,我曾經(jīng)在網(wǎng)上查到過MIT,Stanford,CMU等國際名校對計算機(jī)專業(yè)本科生的培養(yǎng)計劃,真是大吃一驚:他們在學(xué)習(xí)計算機(jī)原理時,要自己設(shè)計一臺邏輯計算機(jī),自己完成CPU設(shè)計,總線設(shè)計,存儲器設(shè)計,I/O設(shè)計,甚至制作集成電路,幾乎就是自己造一臺計算機(jī);他們在學(xué)習(xí)編譯原理時,要自己完成一種語言的完全編譯器的開發(fā),一直生成到目標(biāo)代碼;他們在學(xué)習(xí)操作系統(tǒng)時,要自己開發(fā)一個full-functional OS,在學(xué)習(xí)計算機(jī)網(wǎng)絡(luò)時,要編寫程序?qū)崿F(xiàn)某些協(xié)議.這個打擊使我認(rèn)識了一個問題:什么叫實踐能力?不是攢機(jī),不是做花哨的網(wǎng)頁,不是做吸引人的Windows程序,所謂實踐能力是把理論運(yùn)用到實際中的能力.今天我們所津津樂道的"實踐能力",實際上是一批技術(shù)工人的能力.
似乎這是當(dāng)代中國高等教育,尤其是計算機(jī)專業(yè)高等教育面臨的重大危機(jī).所幸的是我對此有了一點(diǎn)想法,并且特別注重培養(yǎng)自己.當(dāng)然,這種培養(yǎng)只是相對大多數(shù)人而言自己多做了一些事情.我在掌握了VC++之后,這一切就可以開始了.在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)時,我完成了從線性表到圖的所有數(shù)據(jù)結(jié)構(gòu)的定義和算法的實現(xiàn),做成了一個迷你型的Template Lirary,雖然有一些Bug,設(shè)計上也未必靈活,但是確加深了我對DS的認(rèn)識,提高了設(shè)計大型程序的能力;在學(xué)習(xí)計算機(jī)組成原理時,我一絲不茍地設(shè)計微指令,編寫微程序,和我的組員一切把一個有一千多個0,1數(shù)字的指令表通過數(shù)字開關(guān)打到ROM中,現(xiàn)在想起來也真是后怕;在學(xué)習(xí)編譯原理時,我閱讀了PL/0解釋器的源碼,并且自己完成了C-解釋器的設(shè)計和實現(xiàn);學(xué)習(xí)操作系統(tǒng)時,則完成了部分對nachos操作系統(tǒng)的完善工作,最重要的是閱讀了MINIX的源碼.操作系統(tǒng)是一門理論極難與實際聯(lián)系的課程,許多人學(xué)完后對OS仍然認(rèn)識模糊,所幸的是,這些努力使得我的認(rèn)識要比他們深刻一些.
這里要感謝我們專業(yè)對學(xué)生這種實踐能力培養(yǎng)的重視.老師會布置大家完成大程序,大作業(yè),只要你自己認(rèn)真自覺的完成,實踐能力就可以培養(yǎng)起來.但是,很多同學(xué)對此都不以為然,盲目追求考試成績而忽略實踐能力,實在是得不償失.
10.學(xué)習(xí)并且掌握了Visual C++ 6.0
雖然很多人對Microsoft推行的東西總是帶著一點(diǎn)不屑,我卻在大一對計算機(jī)科學(xué)的認(rèn)識還很模糊的時候?qū)W了它.直到現(xiàn)在,我周圍的同學(xué)中,能熟練使用VC++6.0的人并不多,這并非是因為大家對微軟的東西的抵制,而是因為很多人學(xué)不好VC++6.0.事實上,完全掌握它并不是很容易的事情.
我學(xué)習(xí)VC++6.0也頗費(fèi)周折.學(xué)校不開這門課,只教大家PASCAL語言,所以,只好自己自學(xué).那時候了解很少,以為不學(xué)C,C++,直接看VC++也沒問題,結(jié)果花了65元買了一本 < <實用Visual C++6.0教程>>,卻看得一頭霧水.慢慢才知道,VC++6.0不是一種語言,而是一個IDE.郁悶之余,只好又從C,C++學(xué)起.幾個月之后,C++已經(jīng)用得比較熟練了,開始再看這本書,卻還是一頭霧水.因為使用MFC類庫,AppWizard輔助編制的程序完全不同于使用C編寫的面向過程的程序,也不同于C++直接編寫的面向?qū)ο蟪绦?我對這種程序的機(jī)構(gòu)完全摸不著頭腦.一時間真是郁悶至極:難道65元就這么白費(fèi)了嗎?(那時候以為65元一本的計算機(jī)書很貴了,后來才發(fā)現(xiàn),這種價格實際上是很平庸的.)
一個偶然的機(jī)會,看到了機(jī)械工業(yè)出版社的 <>,隨便翻翻,卻發(fā)現(xiàn)它講的內(nèi)容與我原來那本 < <實用Visual C++6.0教程>>大不相同.它從WinAPI講起,講基本的消息隊列和消息發(fā)射,講窗口的定制和注冊,我才首次知道Win32程序與控制臺程序的區(qū)別.現(xiàn)在雖然覺得這個"豁然開朗"簡直幼稚得可笑,可自從學(xué)習(xí)了WinAPI編程,再進(jìn)入MFC,就順理成章,水到渠成了.在以后開發(fā)中也逐漸學(xué)會了自己看MSDN文檔,也再也不用花那么多錢買技術(shù)方面的書了.受此影響,在學(xué)習(xí)其他軟件如Matlab,Mathematica時,也學(xué)會了直接利用幫助文檔學(xué)習(xí),真是省了不少銀子.今天看到很多人圍在圖書城那些花花綠綠的書架邊樂此不疲的時候,不免心生得意.
Visual C++6.0的掌握,最重要的價值在于實現(xiàn)了許多程序員的一句話:"編程語言不用學(xué)太多,學(xué)一兩個,能徹底掌握就好."學(xué)習(xí)了VC++之后不久,我又看了一些J2EE方面的書,可是由于周圍環(huán)境的影響,使用VC++較多.由于VC++使用很熟,許多課程設(shè)計都得以順利完成,從而得到了大量的編程訓(xùn)練,提高了系統(tǒng)分析設(shè)計,程序調(diào)試方面的能力和技巧.這些對于一個計算機(jī)專業(yè)的學(xué)生來說,是最基礎(chǔ)不過的事情.但是我發(fā)現(xiàn)很多人這方面的基礎(chǔ)都很不扎實.
今天我使用VC++設(shè)計完成的Windows工程已經(jīng)有二十多個,包括數(shù)據(jù)庫課程設(shè)計完成的圖書管理系統(tǒng),操作系統(tǒng)課程設(shè)計完成的多線程調(diào)度演示系統(tǒng),編譯原理課程設(shè)計完成的C-解釋器,計算機(jī)網(wǎng)絡(luò)課程設(shè)計完成的多人聊天室程序,以及人工智能課程設(shè)計完成的刺激-響應(yīng)Agent,8字謎問題,人機(jī)五子棋博弈程序等等.
結(jié)論:你可以抵制微軟不學(xué)習(xí)Visual C++6.0,但是你必須熟練的掌握一門具有現(xiàn)代程序設(shè)計特點(diǎn)的編程語言.