學好計算機的八條建議——計算機達人成長之路(34)

 

3、計算機基礎(一)化繁爲簡,實用優先

曾經有學生向木鴻飛抱怨。
學生甲:“計算機最難學。”
木鴻飛:“啊。”(一聲)
學生甲:“因爲計算機的書最厚,16開的紙張,不是三百頁就是四百頁,你要拿一本兩百頁的計算機書都不好意思跟人打招呼。”
木鴻飛:“啊…”(二聲)
學生甲:“還有就是函數和變量的名稱最長,不是20個字符就是30個字符,你要設定一個10個字符的變量都不好意思跟人打招呼,比如WS_OVERLAPPEDWINDOW,比如CreateCompatibleDC。”
木鴻飛:“啊?”(三聲)
學生甲:“最後,每個函數的參數又長又臭,不是10個參數就是20個參數,好不容易碰上只有一個參數的,一看,哦,是個結構,結構裏有30個成員變量。”
木鴻飛:“啊!”(四聲)
學生甲:“比如這個函數:HWND WINAPI CreateWindowEx
(DWORD,LPCSTR,LPCSTR,DWORD,int,int,int,int,HWND,HMENU,HINSTANCE,LPVOID);
前前後後12個參數,其中很多參數還是指向函數的指針。木老師,當你第一次看到這個函數的時候,難道你不覺得有一種頭暈的感覺嗎?”
木鴻飛:“暈。”
學生甲:“就是嘛!強悍如老師你也覺得暈,瘦弱如我們者又怎麼能夠學的好計算機呢?”
木鴻飛:“簡。”
學生甲:“簡?簡•愛?什麼意思?”
木鴻飛:“簡!”
學生甲:“拜託,木老師,你不要學那個不知名的學生葉子好不好,他說兩個字是爲了裝酷,你難道沒有聽說:莫裝酷,裝酷遭人吐;莫裝B,裝B遭雷劈嗎?”
木鴻飛(現在的學生,一點面子也不給):“其實我說是可以用學習計算機八字真言中的簡——“化繁爲簡,實用優先”來對付他。”
學生甲:“明明這麼複雜了,還怎麼簡單?雖然你是老師,大家熟歸熟,但是如果你繼續忽悠我們幼小的心靈,我們將不保證能夠按時爲你頂博客,你知道的,我們是職業幫頂,值得信賴,……”
————————————————————————————
大一上學期,開設的都是基礎課,比如《數學分析(一)》、《大學英語(一)》等等,僅有一門計算機專業課程,那就是《計算機基礎》。
記得“計算機基礎”首映式那天,同學們早早的擠滿了教室,翹首期待人生的計算機專業×××課,不知有多少同學在日記本上重重的記上一筆,只爲將來出名後可以在銀屏上侃侃而談他的“第一次”。
同學們太積極了,上節課還沒有結束,就堵在了教室門口,然後列隊夾道目送裏面的學生離開。教室裏上節課的大部分學生在這種架勢下,飛速的走了,但也有一些學生似乎不配合,慢慢悠悠的,收拾這,收拾那,久久不肯離開。有同學等不及了,把“先下後上”的理論拋到腦後,衝進教室,直接跑到第一排,把書放到課桌上,然後一屁股坐下,隨即打出一個“耶”的手勢,OK,搶座位成功!
見到有人不守規矩闖了進去,其他同學也按耐不住了,紛紛衝進教室,搶佔一個靠前的位置坐下。至於上節課仍未離去的那幾位,早有同學大步來到旁邊,將書放到課桌上,眼睛直盯着,一幅“你一離開,我就撲上去”的架勢。那幾位也甚是大膽,仍然不緊不慢的收拾,末了還再檢查一遍,確認無遺漏後才離開。末了,他們還自言自語一句:“這麼積極,肯定是大一的!”
其實這個場景並不陌生,如果大家有幸參與春季人類大遷徙運動,趕春運上火車時,都是這個樣子的,甚至有過之而無不及。
在木鴻飛的記憶中,這是絕無僅有的一次。隨着時間的推移,上課的興趣似乎逐漸被淡化,像這種提前二十分鐘到達教室的現象絕對是一去不復返。笑話,不翹課就不錯了,君不見大三、大四的課堂上,教室了空空曠曠,老師只能以點名爲武器維護課堂的上座率。至於同學們提前到達教室望穿秋水的等待老師,那是安徒生童話。
計算機老師姓張,女性,作爲同學們計算機專業×××課的老師,自然也成了同學們茶餘飯後的話題,請看鏡頭:
鏡頭一:
同學one:咱們的計算機基礎課老師長得很漂亮。
同學two:嚴重同意。
同學one:老師長得很標緻。
同學two:繼續嚴重同意,簡直就是東風標緻307
鏡頭二:
同學three:聽說了嗎?張老師已經考上博士,下個學期就將離開XT大學開始博士生生涯。
同學fure:真的假的。
同學three:我對毛主席發誓,絕對真實!
同學fure:博士教我們,真爽!
出於對第一門專業課程的濃厚興趣,有好事者充分發揮人肉搜索的八卦精神,四處打聽,其實大學校園裏,學生課後談論老師是一件再平常不過的事情,一如男生寢室談論女生,女生寢室談論男生一樣。
計算機基礎是一門相當與時俱進的課程。在木鴻飛讀大學時代,互聯網僅僅是個嬰兒,Windows95剛剛傳入,DOS仍然在頑強的掙扎,文字處理普遍使用WPS,所以課程的內容主要是計算機的組成部分介紹、DOS操作命令和二進制描述。後來Windows佔據了PC機操作系統的統治地位,Word也取代了WPS成爲文字處理的霸主,於是課程中刪除了DOS操作,增加了Windows操作和部分Office操作。再後來互聯網稱霸世界,課程中自然需要加上網上衝浪的內容。
Windows、互聯網都是後話,那時那景,木鴻飛和他的同學們只能開始DOS時代的計算機基礎學習。木鴻飛由於3年前學習了DOS操作,不由信心滿滿的,認爲區區計算機基礎,簡直就是小小CASE,還不是手到擒來。
事實證明,木鴻飛錯了,錯的很離譜。
2001年的某一堂計算機基礎課,張老師已經講解完了計算機組成結構,正式講授DOS操作。同學們翻開書,找到“列目錄”命令,躍入眼簾的是這樣的一行:
 
DIR命令顯示目錄中的文件和子目錄列表,格式爲:
DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
 [/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]
 
 [drive:][path][filename]
              指定要列出的驅動器、目錄和/或文件。
 /A          顯示具有指定屬性的文件。
 attributes   D 目錄                R 只讀文件
             H 隱藏文件            A 準備存檔的文件
             S 系統文件            - 表示“否”的前綴
……
以上只是教材的冰山一角,有興趣的讀者可以在Windows下運行“CMD”命令,然後執行“dir /?”,隨後提示的內容與教材上的一模一樣,這就是dir命令的全部內容(注:DIR命令就相當於Windows中的“我的電腦”功能)。請大家執行閱讀以上內容,不知道大家感覺到暈乎沒有,至少木鴻飛當時暈了,很多同學當時也暈了,一個命令而已,就如此之複雜,還有很多其他命令等着呢,難道都這樣?有同學不信邪,翻動書本,意圖在其他命令中尋找安慰,比如COPY命令,就是Windows中的文件複製和粘貼功能。只見教科書上明明白白的寫着如下內容:
COPY命令將一份或多份文件複製到另一個位置,格式爲:
COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] source [/A | /B]
     [+ source [/A | /B] [+ ...]] [destination [/A | /B]]
……
“天啦!全都這麼複雜,計算機太難學了!”雖然初次見面,但同學們仍然能夠感覺2012提前到達,教室裏暈倒一片。
其實也不必太悲觀,還有老師呢,要充分相信老師會爲大家解惑的。
張老師不負衆望,她拿出了一本厚厚的備課講義,前排眼尖的同學可以清楚地看到,上面密密麻麻全部寫滿了字,由此可見老師備課相當認真,大家心裏重新燃燒起了希望。
“同學們,dir命令可以顯示目錄中的文件和子目錄列表,他的應用格式是這樣的,”張老師轉過身,一邊看講義,一邊在黑板上重重的書寫。
“黑板上的內容好眼熟啊,好像在哪裏見到過!”下面有同學竊竊私語。
“那都是老師講義上的內容,你怎麼會眼熟,唱甜蜜蜜過頭了吧。”
“真的在哪裏見過,….,對了,與教科書上的內容一模一樣!”
“不是吧,老師明明從講義上抄的,難道她的講義和教科書一致?”
“……”
由於很多同學同時竊竊私語,大概是由於共振的作用,私語聲轉變成了嘈雜聲,在教室裏響起。張老師終於聽到了,她回眸一笑,於是教室裏迅速鴉雀無聲,她張張嘴,開始解釋DIR命令,早有酷愛學習的女同學一邊聽一邊快速的記錄筆記。課後有好事者將筆記和教材對比,發現重複率達90%以上。
張老師很盡責,一遍講下來,發現很多同學眉頭緊鎖,就又解釋了一遍。於是在張老師孜孜不倦的教誨下,全班所有同學終於全部緊鎖眉頭。
“這麼多中括號是什麼意思?都要打上去嗎?”課後,大家仍在探討。寢室長張亞飛首先問道。張亞飛,人稱帥哥張,大學四年皆任寢室長,此人酷愛吃發生,話語很少,不愛答話,一般來講,女生問話十句他會回答三句,男生問話十句頂多答覆一句。
“中括號表示可選,在實際輸入命令的時候,中括號不需要輸入。”木鴻飛解釋道。
“木木,你不是自吹玩過DOS嗎?你說說,一個DOS命令需要輸入這麼長嗎?”帥哥張繼續問。
“我學的DOS命令都沒有這麼長的,”木鴻飛開始回憶高中前的那個暑假偷學DOS的情景,哥哥講述DIR命令時好像只有寥寥數語,“我記得當時的DOS命令沒有這麼複雜,比如DIR,我平時就直接輸入DIR查詢文件和目錄的詳細信息,或者輸入‘DIR /w’,每列顯示5個文件或目錄信息,從來沒有用過/A/B/C/D之類的。”
疑惑歸疑惑,同學們都老老實實背誦每一個DOS命令的格式和每一個參數的含義,一時間背書聲不絕於耳,“今天你背了嗎?”取代“吃了嗎”迅速躥紅。
木鴻飛也是背誦大軍中的一員,如果不是發生了下面的事,也許現在他還在背誦着。
話說木鴻飛越是背誦DOS命令格式越是糊塗,一來參數過多使人犯愁,二來如今的DOS命令比其掌握的複雜了不止一點。不是他不明白,而是世界變化快,難道一轉眼的功夫,DOS命令升級了?帶着這些疑惑,木鴻飛專門走訪了班主任鄭老師。
“在你印象中DIR命令是怎樣的?”鄭老師反問道。
“就是直接輸入dir,或者輸入dir /w也可以。”木鴻飛回答到。
“對啊,dir命令就是這樣的,你已經完全掌握了。”鄭老師說道。
“不是吧?”木鴻飛驚愕之情不亞於聽說奧巴馬總統請他吃飯,“這麼簡單,不是還有/A/B/C/D之類的嗎。”
“這些叫做命令選項,既然是選項,當然是可有可無的,你當然可以不使用它們就直接運行dir,也可以放棄其他選項,只使用一個/w。”鄭老師解釋道。
“啊?這樣的話,其他的選項不就沒有作用了嗎?”木鴻飛更加疑惑了。
“就是需要它們沒有作用!”鄭老師的回答標新立異,“教科書爲了權威和全面,勢必列舉所有參數和選項,但是其中的大部分選項,你們一輩子可能都不會去使用!既然如此,於其強求自己全面記住所有的選項,不如化繁爲簡,主動刪除很多從來不用的選項,留下在實際應用中最可以用到的東東,這就是實用優先!”
鄭老師的話就如一顆重型×××,將木鴻飛炸的不知所措。許久,木鴻飛從思索中驚醒過來,目光由渾濁變得清澈,他自言自語道:“化繁爲簡,實用優先,我明白了!”木鴻飛拿起筆,在教材的DIR命令處大膽的畫上刪除線,如下所示:
DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
 [/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]
“這些,這些,還有這些,”木鴻飛指着被他畫上刪除線的位置,“這些選項其實很難有機會用上,在實際應用中我們完全可以不予理會,這就是實用爲王。而將之直接刪除後,命令格式簡單多了,也容易學習多了,這就是化繁爲簡!”
“是的,”鄭老師點頭表示贊同,然後突然問道:“如果有一天你有某些特殊要求,需要哪些選項怎麼辦?”
“如果某一天我們真的有特殊需求,可以再回過頭來重新查看這些選項,選擇某一個使用之。”木鴻飛頓了一個,思考了一會,有補充道:“那時我們對計算機的熟悉要遠遠超過現在,理解力絕對上了不止一個臺階,回頭再學的速度毋庸置疑。這種學習方法,其實也是實用優先的表現!”
————————————————————————————
木鴻飛:“怎麼樣,現在大家明白簡字真言了吧。以CreateWindowEx函數爲例,當我們第一次親密接觸時的確很費解,而很多書籍爲了權威性和全面性,會發大篇幅逐一解釋每個參數,力圖使讀者清清楚楚明明白白真真切切,但就是這種解釋,在更大程度上加深了大家的疑惑,使讀者更加不清楚不明白不真切。其實我們不妨換個角度,這樣學習:
第一步,很多書籍上都會有函數CreateWindowEx的調用實例,雖然戲法人人會變,但萬變不離其宗,實際參數的調用大多如下所示:
    hwnd = CreateWindowEx (
           CS_HREDRAW | CS_VREDRAW,
           "APPWINDOWS",       
           "標題", 
           WS_OVERLAPPEDWINDOW,
           CW_USEDEFAULT,  
           CW_USEDEFAULT,   
           800,  
           600,       
           HWND_DESKTOP,   
           NULL,        
           hThisInstance,      
           NULL  
           );
很複雜吧,是不是覺得頭痛,是不是沒有看完就跳到這裏來了。沒關係,本書不是技術教程,將之列舉出來只是爲了告訴你:其實以上代碼就可以直接運行,倘若你首次接觸,那麼不必理睬它,直接複製粘貼然後編譯運行就行了,在相當長的一段時間內,以上代碼可以滿足你的全部要求!
第二步,總有一天你會有些小小的要求,比如改變窗口的大小,更改窗口的名稱等等。這時由於你也編過不少Windows程序,也算是個圈內人,理解力與初學時相比不可同日而語,修改一兩個參數不在話下。查查資料、或者猜測一下,不難知道‘800,600’處爲窗口大小,‘標題’處爲窗口名稱。可以放心大膽的修改,而不必如初學時戰戰兢兢了。
第三步,隨着程序的累積和深入,也許你會有更高的要求。此時你早已是編程老手,完全具備理解全部參數的能力,於是重新打開當初跳過的書頁,一字一句的理解每個參數的解釋,水到渠成而已。
初學時拋棄複雜的內容,學習簡單的內容,這就是化繁爲簡。而先拋棄生僻的內容,學習常見的內容,待以後根據需要逐步學習其他內容,這就是實用優先。”
學生甲:“這麼一解釋,我算是明白了。”
木鴻飛(洋洋自得):“那當然,火車不是推的,牛皮不是吹的,我的學習計算機八字真言不是蓋的,你們大家都要記住啊!”
學生甲:“好的。不過木老師,這八字真言到底是什麼,貌似除了一個簡字,其他的一個都沒有提及。”
木鴻飛(汗):“難道沒有提及嗎,記得以前有說過啊!”
學生甲:“從第一章:一石激起千層浪到本章,我對着毛主席發誓,沒有!”
木鴻飛(爆汗):“好像真的沒有耶。”
學生甲:“到底是什麼,不要藏私嘛,說出來share一下。”
木鴻飛(阿富汗):“其實很簡單,就是:快慢有序,簡繁相隨,縱橫交錯,知行合一。”
學生甲:“偶買累滴嘎嘎,快慢有序,簡繁相隨,縱橫交錯,知行合一,明明是十六個字嘛,怎麼會是八字真言呢!”
木鴻飛(成吉思汗):囧。

ps:拉票了,拉票了,參加了一個博客投票活動,請大家幫忙投票,投票地址:http://2010blog.51cto.com/653596,票數太少面子上過不去啊

 

上一篇   目錄  下一篇

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章