1. 程式人生 > >計算機的理解(個人知識架構的形成)

計算機的理解(個人知識架構的形成)

現代計算機系統錯綜複雜,學習的時候如何將所有的知識聯絡在一起,形成自己的知識結構呢?
只有不斷學習,不斷總結。
只有總結出來的東西才是自己的東西,那麼先搭個知識結構框架,以後慢慢往裡面填東西。
下面提出一些問題,以後慢慢加深對這些問題的理解,吾生也有涯 而知也無涯~
計算機方面的知識可包括硬體部分和軟體部分知識,硬體決定軟體所應用的平臺。
1.計算機硬體有哪些知識?
1.1常用硬體裝置有哪些?
1.2這些硬體裝置內部由什麼東西組成?
1.3在這些裝置上的軟體是怎麼執行的?

2.計算機軟體有哪些知識?他們之間的聯絡是什麼?
2.1總結一下我現在所學:
計算機組成,作業系統,計算機網路,編譯原理,資料結構,組合語言,C語言,C++,JAVA,Javasript
2.2軟體內部的聯絡
一個程式在作業系統是如何執行的?流程和細節是什麼?
比如1)為什麼可以在控制檯輸出hello world?輸出hello world 這個事件從輸入開始到螢幕輸出整個電腦幹了什麼?軟體是如何和硬體裝置互動的?作業系統幹了什麼?編譯器幹了什麼?程式語言在其中扮演什麼樣的角色?程式執行的時候是什麼狀態?
3.3用語言來構築計算機的世界
對計算機的基礎知識有了深刻的理解後,也許更應該關注如何程式設計,做出有價值的東西,就比如造房子,造出來給自己住,程式設計也是造房子,如何造房子呢?
計算機組成,作業系統,計算機網路,編譯原理這些都是造房子的原理,
有了這些基礎,造的房子就不會那麼容易倒。
C語言,C++,JAVA是造房子的工具,學得好可以更快的造出房子,更不容易倒。
資料結構就是造房子的設計,有了這個造的房子質量更好,更美觀。
3.計算機軟體體系結構
《程式設計師的自我修養》中提到
“電腦科學領域的任何問題都可以通過增加一個間接的中間層來解決”
可以按上層呼叫下層的介面這種層級關係來抽象計算機系統。
計算機軟體體系結構


按照這個體系結構,我可以使用課程名稱對知識進行大致的歸類
1)硬體(hardware)
包括計算機組成,微機原理等知識
2)作業系統
包括作業系統等知識
3)應用軟體
應用軟體有瀏覽器,qq等。包括網站開發(JAVA,Javascrip等),應用程式開發(C/C++)等。這裡面主要涉及了不同的語言,計算機網路等知識。
他們之間如何聯絡呢?都需要語言這門工具,
各種語言之間的聯絡:
硬體裝置由二級制機器碼控制,組合語言通過組合語言編譯器(x86彙編、ARM彙編)翻譯成二進位制程式碼,c語言通過C語言編譯器(GCC、Visual C++)翻譯成組合語言,作業系統一般由c語言編寫而成。
to be continue…