為什麼學好計算機就必須學好彙編?

猴小新發表於2013-02-22
圖片載入中
這個問題太抽象。 
        彙編是幹什麼的?為什麼要學好彙編?不學不行嗎?要學好計算機非得學好彙編嗎?乍看到這些問題,真是一頭霧水。學好彙編會有什麼好處?學好彙編老闆就給你漲工資?還是學好彙編上天就會賜給你個大美女?還是政府就會給你解決住房問題?真是搞不懂。不過倒可以肯定頭腦沒大問題的人不會選擇上面三個答案。那到底是為什麼呢?是啊,停留在問題的表面似乎永遠找不到答案。我們試圖找一下答案,我們從這裡入手,學習過彙編的人會了解計算機的底層工作方式,他會了解到cpu、記憶體、硬碟等硬體裝置是如果協調地工作在一起,資料從哪裡轉移到哪裡,在哪裡被運算,又在哪裡被儲存起來等等等等。總之,計算機在你的面前不會再是一個黑洞。做這樣一個比喻:一個貌美的姑娘總能讓小夥子產生美好的幻想,而在醫生眼裡他永遠是由639塊肌肉和206塊骨頭組成的軀體。同樣計算機在常人眼裡可能是個神奇的東西,但在專業人眼裡他就是一堆電晶體。原來我們的目的是讓計算機在我們眼裡變成一堆電晶體,這才是我們真正要的東西。得出結論:我們的真正目的是讓計算機在我們眼裡變成一堆電晶體,而不是要學好彙編。 

        學好計算機就必須達到這個目的嗎? 
        明確了我們的真正目的,輕鬆了一些。然而學好計算機就必須達到這個目的嗎?這個問題先不回答,看下面的例子:一個醫生倘若不懂人體脈絡、血液流向、器官構成,只是模仿過專業醫生做過內科手術,哪怕模仿的多熟練,恐怕沒有哪個患者敢讓他做。很顯然,這樣的人也不配叫醫生。倘若你是一個億萬富翁,某銀行行長到你家跑存款,他只知道一些表面的銀行利率和金融常識,不懂潛藏在背後的貨幣和金融原理,對投機風險不知曉,將鉅額財產儲存在這樣的銀行多少讓人心裡感覺不安。這樣的例子很多,但道理只有一個,學好計算機也不例外。要想成為計算機方面的專家,但不瞭解計算機是怎麼工作的,顯然不合邏輯。得出結論:讓計算機在我們眼裡變成一堆電晶體是學好計算機的必要條件。 

        目的確定,選擇方法。 
        條條大路通羅馬,只要你確定去羅馬。怎樣達到“讓計算機在我們眼裡變成一堆電晶體”這一目的?我試圖找到一條最近的路,其實可能每個人都在找這條路。曾經想過,倘若科技夠發達,直接把一位計算機專家頭腦裡面關於計算機方面的所有知識直接拷貝到我的腦子,這樣計算機就不在神祕。倘若真的存在仙境,夢中得到仙人指點,一夜我就可以成為計算機專家,這樣計算機就不在神祕。不要覺得可笑,上面的兩種方法也是方法,只不過目前還沒有出現過類似的現象。那麼我們來看現實中一個可行的方法,通過組合語言的學習是可以達到這個目的的。組合語言直接面向計算機底層,我們可以通過編寫指令程式碼的方式控制一個單位資料從一個地方移動到另一個指定地方,可以指定讓兩個資料進行加減乘除運算,還可以通過指令直接控制終端裝置。這就相當於我們用顯微鏡觀察人體細胞,細胞內部組織展露無疑,細胞從此也就不再神祕。從而可以看出通過組合語言的學習和應用對於理解計算機的內部工作方式是多麼的直接。得出結論:學習組合語言是達到“讓計算機在我們眼裡變成一堆電晶體”這一目的的一種有效方式。 

        從上面的圖以及我們剛才的分析可以看出,學習組合語言與學好計算機之間是沒有直接關係的。而到此為止,這些似乎抽象複雜的關係也就被我們理順了,再遇到多麼古怪的問題我們就會很清楚這個問題處於什麼階段了。 

        分析一個問題。 
        學生甲:“我沒有學習過組合語言,組合語言太低階,我只學習高階語言,現在也學好計算機了。” 
        這種觀點我並不反對。我們來分析一下,學生甲既然自稱已經學好計算機了,那麼必然對計算機的內部工作方式相當清楚,即達到了我們上面所述的“讓計算機在我們眼裡變成一堆電晶體”這一目的。那麼他是通過什麼方式達到這一目的的呢?答案是“學習高階語言”。做這樣一個類比:通過學習組合語言達到這一目的就好比醫生通過顯微鏡觀察人體細胞。通過學習高階語言達到這一目的就好比醫生通過觀察細胞的繁殖、生長、血液細胞的流動、皮膚細胞的衰老等一系列細胞外在展現出來的情況來達到認知細胞內部組織結構的目的,特別是他對細胞內部組織結構的認知與我們用顯微鏡觀察到的完全一致。顯然,這種人是屬於天才的那種人。他具備對事情有很強的總結歸納、從表面現象分析本質原理的能力,而且一般對該領域有極大的興趣,促使他要搞清楚到底是怎麼一回事。然而,通過以上兩種方式的對比,我們也不難看出,前者是正序的學習方式,後者為倒序的學習方式,後者一般會佔用相當長的時間,因為過程中畢竟需要對錶面現象進行深刻的分析、領悟,最終得出自己的結論,而前者直接通過顯微鏡觀察就一目瞭然了。 

        結束語:證明一個結論的對錯並不重要,因為有太多的結論等我們去證明。重要的是要搞清楚我們面臨的現狀,從而採取最有效的方式,做出最有效的選擇。

相關文章