编程十年 (4):步入编程殿堂
編程十年 (4):步入編程殿堂
本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/22/programming10years-04.html
作者:Anders Liu
1998年,上高中。因為迷戀電子制作而“玩物喪志”,從市重點降入?yún)^(qū)重點高中。按說這個結(jié)局會讓我老爸對我玩電子制作這件事深惡痛絕,但沒想到的是,假期開始的時候,我老爸甩手就給了我200塊錢,讓我隨便買零件,隨便折騰。這原是欲擒故縱之計——200塊錢還沒花掉一半,我就知道了自己原來不是玩硬件的料。于是放棄。
就這樣,高中的第一個學(xué)期基本上沒有接觸過任何計算機或是電子方面的東西,主要的業(yè)余活動就是打籃球。不過到了1999年,高一的下半學(xué)期,我驚喜地發(fā)現(xiàn)竟然有計算機課程,而且每周2節(jié)——一節(jié)理論、一節(jié)上機實驗。但是這門課是沒有教材的——就靠老師講。
結(jié)果沒想到的是,這門課并不只是淺淺地講解計算機的入門知識和使用方法,而是講解編程的。更牛逼的是,第一節(jié)理論課里老師就講完了所有基礎(chǔ)知識并且開始介紹編程——QBasic編程。不過第一次實驗課并沒有學(xué)習(xí)寫程序,只是熟悉鍵位,順便練習(xí)一下上次課講的一些基本DOS命令。
因為在初中的時候已經(jīng)記熟了鍵位,而且摸過計算機,所以當(dāng)別的同學(xué)還趴在鍵盤上從浩瀚的按鍵中尋找A、B、C時,我已經(jīng)搞明白老師講過的所有DOS命令了。這讓我的虛榮心和成就感得到了極大的滿足,也鼓勵著我之后的計算機學(xué)習(xí)。當(dāng)然,“幸運”的是,高中同學(xué)竟然沒有人家里有計算機,初中時也沒接觸過計算機,這也許就是塞翁失馬的道理吧,雖然從市重點“掉到”區(qū)重點,但自己的相對水平卻提高了。
雖然到了90年代末期,圖形界面已經(jīng)成為主流,但學(xué)校配備的計算機還是很老舊的486電腦,安裝的是DOS操作系統(tǒng)。記得實驗室里電腦的機箱上還有個“Turbo”按鈕,旁邊還有LED數(shù)碼管顯示著CPU的主頻,平時是75MHz,按下Turbo按鈕后則會顯示90MHz。
不過應(yīng)該感謝這些老舊的電腦,如果一開始就給我個花花綠綠的Windows,我真不知道自己是不是還能坐下來踏踏實實地寫程序。
由于在第一個學(xué)期期末的時候已經(jīng)知道下學(xué)期的課程,所以在假期里我打算做些準備。恰好快到春節(jié),媽媽帶我去大姨姥爺家串親戚,回來的路上我拉著媽媽去逛附近的花市新華書店——以買教參為由,她當(dāng)然無法拒絕。結(jié)果,卻只抱了一本QBasic的書回來,搞得媽媽很是詫異,小心翼翼地問我“這個書上課有用么”。而我則理直氣壯地回答“當(dāng)然有用,下學(xué)期要開這門課了”。
回來之后,自然就是抱著這本書啃了。這本書真的是不錯,雖然裝幀很簡陋,不像什么經(jīng)典著作,但是內(nèi)容很充實。這本書并不是只介紹QBasic的關(guān)鍵字和語法,而是花了不少篇幅介紹了結(jié)構(gòu)化程序設(shè)計,我就是通過這本書前面的幾章知道并且理解了順序結(jié)構(gòu)、選擇(分支)結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。而且,這本書還介紹了流程圖的畫法,而我在一開始學(xué)習(xí)寫程序時,還真的一本正經(jīng)地在紙上畫流程圖呢。
當(dāng)時家里并沒有計算機,于是我專門找了一個小橫格本,拿鉛筆在上面畫流程圖、抄寫程序。然后,等到上機的時候,我就會帶著這個小本,照著敲進去測試。這種特殊的情況對我來說利弊參半,不好的一方面是,我必須忍耐一周的時間才能檢驗這些程序的正確性;不過,好的一方面是,這給我留下了充足的時間去改進程序,而且打下了比較堅實的手寫程序的功底,能夠熟練掌握語法而不依賴編譯器的檢查。
就這樣,一個學(xué)期過去剛一半,我就基本上掌握了QBasic的語法和結(jié)構(gòu)化程序設(shè)計的思路。而我買的那本書,內(nèi)容還不是一般的充實,在最后幾章,還介紹了QBasic的圖形編程。而我說什么也不相信,在DOS這種字符界面下,竟然能繪制圖形——雖然當(dāng)時Windows已經(jīng)流行起來,但我還沒有見過呢。于是我抄了幾個書上的例子,等到實驗課時帶到機房試了一下,果然可以!
于是在接下來的一周里,我開始專門研究QBasic里的繪圖函數(shù),然后編寫了我人生中第一個程序——繪制機器人。之前學(xué)習(xí)基本的語法,都是要么抄例子,要么做習(xí)題,并沒有自己的想法。而這一次,例子和習(xí)題已經(jīng)不能滿足我的興致了,我腿兒硬了,要自己走了。我在前面提到過,我認為能夠把自己的想法寫成程序就叫“編程”了,所以我認為從這時起,我已經(jīng)會編程了。
其實這個程序非常簡陋,就是用矩形和橢圓形拼湊成一個劣質(zhì)的機器人形狀,整個程序就是一個順序結(jié)構(gòu),依次畫出各個形狀就是了。不過,編這個程序的過程還是很麻煩的,首先得在紙上按比例畫出屏幕邊界和機器人,然后就是計算每個關(guān)鍵點的坐標(biāo)。由于沒有機器做實驗,所以圖不能畫得太潦草,大致比例還是要準確一些的。
當(dāng)然,這樣簡單的程序是不足為奇的,所以我很快又寫出了改進版本——動態(tài)繪制機器人。就是,先從屏幕上方落下兩只腳,然后落下兩條腿,然后是身體、胳膊和頭。這次終于不完全是順序結(jié)構(gòu)了,循環(huán)也用上了。
后來還寫過一個無聊的程序,隨機循環(huán)在屏幕上畫圈,而且是死循環(huán)。然后把程序發(fā)給同學(xué),搞惡作劇。
不過,不管是粗糙的機器人,還是無聊的惡作劇,都足夠我在班里吸引眾多眼球了,虛榮心再次膨脹。但很快這種爽歪歪的日子就結(jié)束了——快到期末了,計算機課結(jié)課了。
- 回到《老劉連載:編程十年》
- 上一篇《初識計算機》
- 下一篇《站在網(wǎng)絡(luò)邊緣,卻陷入信息孤島》
轉(zhuǎn)載于:https://www.cnblogs.com/AndersLiu/archive/2011/04/22/programming10years-04.html
總結(jié)
以上是生活随笔為你收集整理的编程十年 (4):步入编程殿堂的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓 通过intent调用系统文件管理器
- 下一篇: 国内开源项目无法形成气候且难以持续性的问