讀《計算機是怎樣跑起來的》收穫

Resurgam發表於2016-05-18

當從圖書館看到這本書的時候,作為一個初入計算機專業的學生,彷彿抓住了一根救命稻草(笑),計算機這一領域的寬廣令我摸不到發展方向,一直期望一本通覽計算機知識的科普書,這本書給了我期望,讀完後卻並沒有想象中的“哦,原來如此”,不過仍有所得。

讓我一章章回顧吧,首先第一章講了什麼呢?計算機的三大原則:一、計算機是執行輸入,運算,輸出的機器;二、程式是指令和資料的集合;三、計算機的處理方式有時與人們的思維習慣不同;前兩點並沒有多深刻的體會,不過第三點(哭)在一些程式設計題像是二進位制計算器在這上面可是吃盡了苦頭,淨是隱藏的思維陷阱導致的小錯誤。此外,作者強調只要理解了以上的三大原則,那麼遇到難懂的最新技術也能輕鬆應對,對於這點我還是抱有期望的。 第二章確實是對硬體運作機制不感興趣(苦笑),所以匆匆帶過,數字邏輯電路求滿分!!

出於對彙編的強烈興趣,第三章仔仔細細地讀,同時查閱了相關資料,大體對彙編有了瞭解,基本的關鍵詞也認識了幾個,深深的瞭解到高階語言的便捷。為什麼這樣說呢?從本書得到的知識看,彙編與CPU型號直接相關,需要了解硬體的結構,程式設計的話甚至需要直接指定某個埠......

在第四章中,作者用形象的語言解釋了程式基本流程,包括順序,條件,迴圈,然而對於我這種C語言入門的小白來說略顯雞肋,不過其中很感興趣的中斷處理和事件驅動沒有詳細講解,這讓我有點小不開心,同時知道了原來vbs檔案代表以VBscript語言編寫的檔案。

第五章對於演算法的講解對我來說揭開了演算法的神祕面紗,讓我切實感受到了演算法的魅力(由哨兵一例),因此買了一本《演算法導論》(心痛),作者總結道關於演算法有七個要點:(1)演算法中解決問題的步驟是明確且有限的;(2)計算機不靠直覺二是機械地解決問題(此處以輾轉相除法為例,感到數學與程式設計是密不可分的);(3)瞭解並應用典型演算法(不止如此,面對問題應首先獨立思考,提出自己的解決辦法,與已知解決辦法比較,分析優缺點,是否能對已知演算法進行優化(想想都激動,這就是造輪子嗎哈哈));(4)利用計算機的處理速度(在一些問題的求解上需要頻繁試值,這點給我啟發很大哦,結合第二點,);(5)使用程式設計技巧提升程式執行速度(並不瞭解很多,目前只有哨兵);(6)找出數字間的規律(確實,在很多資料中存在規律,發現規律往往是一條求解捷徑)(7)先在紙上考慮演算法(一般在腦中想想,可能碰到的都是小專案)。

剛介紹完演算法,接下來是資料結構了。關於第六章,之前曾做過了解,並沒有什麼新奇的地方,但是棧與佇列是以陣列(?)為基礎這一點倒是令我驚訝一番。

近期在學習C++,所以對於第七章物件導向程式設計,無感。第八章資料庫也在課堂上接觸過,無感。對第九、十章看得模模糊糊的,決心看書深入瞭解一下。

第十一章對於XML的介紹,怎麼說呢,長了見識。

第十二章......這是寫的個啥?

總而言之,這本書並未為我指路,打算接著看《程式是怎樣跑起來的》(笑)。

(Markdown不會用啊......)

相關文章