操作系統原理、數據結構、網絡原理,深入理解計算機系統應該按什麼順序去看?

用戶65940905


計科專業從事軟件開發多年,上面說的幾本書都是學習計算機的必備知識,如果還在上大學階段的小夥伴看到這篇文章,現在就以一個程序員的身份來講講這四本書在平時開發中如何體現出來,每次看到這種計算機基礎書籍都會有一種親切感,但也會有一種遺憾,在大學期間如果充分利用時間多學一本書對現在也會有巨大的幫助,現在倒是什麼書籍都可以弄到,已經沒有充分細讀的時間了,每天在單位寫完代碼回到家裡再和孩子玩一會時間就過去了,所以人生學習的最好階段是大學還有剛畢業的前兩年的時間。

回到主題操作系統原理,這點主要幾乎貫徹整個軟件行業,無論什麼語言的編程寫的程序幾乎都是在帶有操作系統的環境下運行,當然單片機很多是不帶操作系統,單片機稍微一轉化就是嵌入式了,常見的cpu輪轉以及任務的優先級都屬於操作系統範疇,數據操作過程中數據塊的保護加鎖也是操作系統概念,所以掌握這門課程是程序員的必備,用的最多的當屬於嵌入式開發,稍微延伸一點程序員的開發環境,很多程序員喜歡在linux下寫代碼,有的喜歡在windows下,對於代碼本身來講差異不大,因為現在很多程序都支持跨平臺,所以無論在什麼系統上開發都是可以的,相對來講玩嵌入式的喜歡在linux下開發是事實。

數據結構是編程的基礎,無論從事什麼語言的編程,基本的數據結構都必須要掌握的,現在看到市面上有關這方面的書籍,有關於C語言版本數據結構,C++版本數據結構,java版本的數據結構,所以想要成為一個程序員在學完一門編程語言之後,最好找對應的編程語言版本的數據結構學下,再複雜算法也是基於基礎的數據結構來完成的。

網絡原理這算是計算機領域的一個方向了,網絡方向裡面涉及到的專業知識非常多,夠學一輩子的專業方向,本篇文章提到的是基本的網絡基礎,在網絡世界中網絡編程幾乎在任何軟件中都會涉獵到,算是計算機編程的一個模塊,現在關於網絡安全方面的公司也非常多,而且網絡在很多領域都有涉獵,在很多大公司裡面專門設計一個網絡安全部門,就是為了防止被攻擊,對於初學者來講先搞明白基本的網絡工作原理是第一步,如果覺得這個東西很有意思就可以深入學習下去。

深入理解計算機系統這本書建議在具備一定的基礎之後再去學習,直接去學習未必能夠全部深入貫通,想要系統學習計算機,必須常見的計算機基礎要掌握,基礎的學習不叫深入學習,這本書建議放在前面三本書都學完之後再去學習,效果會更加明顯。計算機的學習就是在培養學習計算機語感的過程,有了感覺基本上就可以做更加深入性的學習。

很多人喊著對計算機感興趣真正開始學習的時候又不想下功夫只能一直做個門外漢,無論做什麼都要持之以恆的堅持才能有可能玩得轉,吃透一門再去學習別的也會變得輕鬆許多。

希望能幫到你。


大學生編程指南


作為一名IT行業的從業者,同時也是一名教育工作者,我來回答一下這個問題。

操作系統原理、數據結構、網絡原理是比較重要的計算機基礎知識,另外還包括數據庫原理、算法設計、編譯原理、電子電路、編程語言等知識。

通常來說,可以按照以下順序來學習這些基礎內容:

第一步:操作系統原理。操作系統是學習計算機技術的重要基礎,通過學習操作系統體系結構、操作指令、任務調度、併發管理、資源管理、權限管理、安全管理等內容,能夠對計算機形成一個較為系統的理解,為後續的學習打下一個紮實的基礎。

第二步:網絡原理。當今是互聯網時代,計算機網絡知識的重要程度不言而喻。網絡原理涉及到網絡體系結構、協議、數據通信管理、安全等內容,另外還涉及到如何操作交換機、路由器等網絡設備。學習計算機網絡要注重實驗,通過實驗能夠建立數據通信過程等畫面感。

第三步:編程語言和數據結構。編程語言是操作計算機的重要工具,是一定要掌握的重點內容,程序設計本質上就是算法設計和數據結構的結合,所以在學習數據結構之前應該掌握編程語言的使用,對於初學者來說,C、Java、Python等語言都是不錯的選擇。

第四步:數據庫和深入理解操作系統。數據庫對於軟件開發來說是非常重要的,數據庫的內容比較多,需要學習關係型數據庫和NoSq數據庫的使用。之後深入學習一下計算機操作系統還是有一定必要的,如果能讀一下Linux系統的核心源代碼就更好了。

在學習計算機基礎知識的過程中,一個重要的內容是進行實驗,由於很多計算機概念比較抽象,所以對於初學者來說,往往很難理解,但是通過實驗往往就能夠建立起抽象概念的畫面感。另外,在學習編程語言的過程中也能把很多內容串起來。

我從事互聯網行業多年,目前也在帶計算機專業的研究生,主要的研究方向集中在大數據和人工智能領域,我會陸續寫一些關於互聯網技術方面的文章,感興趣的朋友可以關注我,相信一定會有所收穫。

如果有互聯網方面的問題,也可以諮詢我,謝謝!


IT人劉俊明


你如果是在校學生,請按照學校課程安排順序來學習,事半功倍。

你如果是工作中自學,請按照手頭項目需求的急迫程度來安排順序學習,否則容易無的放矢。

如果不考慮其他因素,單純從學習次序角度,個人建議按照「一門程序設計語言」-> 「數據結構」->「計算機體系結構」->「操作系統」的次序,並且可能要來回循環幾次。等到前面這些有一定基礎了,再按照自己的需求選看「計算機網絡原理」「數據庫原理」「圖形學」「編譯原理」。


Java架構師日記


都是計算機專業的核心課程,也是考研核心知識。


我叫換人


理論上說,計算機相關的學科或領域知識,都是有交叉的。一門學科需要另外的某一個或某幾個學科的基礎作為先提,所以,深入系統的理解計算機,應該是按內容的先後按章節多學科交叉同步進行可能會比較好。學習你感興趣的,發現有知識點需要補充,有針對性的去補充,再接著回來到原先暫時的點繼續。


暫時取的名


深入理解計算機系統和數據結構先看

操作系統,網絡後看


KaiSeRBurNInG


首先是數據結構,因為數據結構不需要系統的東西,只要懂一些編程或者即使不懂編程只要懂思想就可以了。其次是操作系統原理,講解系統的文件管理,資源管理等等,最後的網絡原理可以放到最後,等學完了操作系統再看網絡原理,或者可以一邊學其他的一邊看網絡都在可以的


夢夢虎


1.操作系統是講硬件交互的,多是彙編碼,而數據結構是軟件編碼的基礎,這兩本看的時候可以不分先後,但都很重要。

2.計算機網絡和以上兩本的交互並不明顯,比較獨立。

3.最後一本是建立在基礎比較好的條件下,所以最後看。


不會寫代碼的猴子


應該從最基礎的“數據結構”開始看,然後再去熟悉操作系統原理,操作系統也是由很多複雜的數據結構來處理,最後再去看網絡原理,理解網絡是如何把很多計算機聯繫起來並通信的。


分享到:


相關文章: