在學完了C/C++語法之后,我相信很多朋友都會比較迷茫,到底應該學什么?
其實總結起來無非就是:
1、網路編程;
2、作業系統;
3、資料庫;
4、資料結構與基礎演算法;
掌握這些基礎知識,就像我們的內功,如果在未來想要走的更遠,這些內功是必須要修煉的,框架千變萬化,而這些通用的底層知識,卻是幾乎不變的,了解了這些知識,可以幫助我們更快著學習一門知識,更加懂得計算機的運行機制,
一、網路編程
在我們用的程式中,99% 都離不開網路,作為一個程式員,我覺得了解計算機網路是必須的,在大學的課程中,一般也都會開設這一門課,其實大家或許有這種疑問,一臺電腦是怎么把訊息發給另外一臺電腦的呢?例如:
1、兩臺電腦啥線路也沒有相連,怎么就能把訊息發送給他呢?
2、世界上的電腦那么多,咋就能找到那臺特點的電腦呢?有人說我們可以 MAC 或者 IP 來唯一標識啊,可是,疑惑又來了,世界那么大,電腦那么多,有了這個標識,我們該怎么找到他呢?遍歷所有電腦?
3、多個程式同時發訊息給一臺電腦,電腦是如何準確把這些訊息拿給這些不同程式的呢?
4、發送的訊息丟失了怎么辦?
總之,一大堆疑問,看了計算機網路之后,才豁然開朗,
所以這里,我是強烈建議大家學一下的,在面試中,計算機網路也是高頻考點,這里我大致總結一下一些必學協議以及面試高頻考點:
1、http協議,包括:封裝格式,常見回應碼,不同版本的區別,常見請求方法,存在哪些安全隱患,啥是無狀態協議等,
2、https建立連接的詳細程序,哪里用了對稱加密,哪里用了非對稱加密,對加密演算法(如RSA)等是否有了解?
3、TCP協議:三次握手、四次揮手、如何保證可靠傳輸、流量控制、擁塞控制、滑動視窗等等,
4、UDP 廣播 多播
5、DNS、ICMP、ARP、DHCP、LWIP
上面寫的這些協議,我覺得是比較重要的,特別是在面試中,
推薦書籍:《計算機網路系統方法(原書第4版)》、《TCP/IP詳解》三卷
**
二、作業系統
作業系統也是一門非常重要的知識,在面試中也是問的非常多,對于作業系統,要學的也太多太多了,例如:
啥是行程,啥是執行緒,他們的本質區別?我們運行一個程式時,資料放在哪里?代碼放在哪里?咋就還要分堆和堆疊?執行緒切換時是背景關系是啥意思?
虛擬地址是什么鬼東西?執行緒需要那么多種狀態干啥子?什么是樂觀鎖、悲觀鎖?死鎖是怎么造成的?解決死鎖的策略有哪些?等等
對于作業系統,我總結了下面一些比較核心,面試相對容易被考到的,
1、行程的通信方式
2、行程地址空間分段
3、記憶體管理,包括:虛擬記憶體(重點)、分頁、分段、分頁系統地址映射、記憶體置換演算法(重點),
4、死鎖的處理策略(死鎖預防、死鎖檢測與恢復、死鎖避免)
5、行程調度演算法
6、磁盤尋道演算法
上面說的這些,我認為是比較重要的,如果你沒學過,我相信學了之后,你可以學到很多東西,知識點只是其中之一,
推薦書籍:我看過的書籍是《作業系統之哲學原理》,不過大佬們都推薦《深入理解計算機作業系統(原書第三版)》,我看過目錄,感徑訓不錯,這里也推薦這一本,不過對于零基礎的,我建議可以先看一本專門給小白看的書:《程式是如何跑起來的》,
希望對大家有幫助!下期我們將會繼續分享~
如果你想更好的提升你的編程能力,進入到百度騰訊等大廠作業,好好學習C/C++編程知識成為高薪軟體開發工程師的話!那么你很幸運~
C語言C++編程學習交流圈子,QQ群1090842465【點擊進入】微信公眾號:C語言編程學習基地
分享(原始碼、專案實戰視頻、專案筆記,基礎入門教程)
歡迎轉行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!
編程學習書籍:
編程學習視頻:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/251330.html
標籤:C++
下一篇:C++ STL 堆疊和佇列
