如何成爲一名合格的C++開發者

在大多數開發人員的認知中,C/C++ 是一門很是難學的編程語言,不少人知道它的強大,但由於「難」形成的恐懼讓不少人放棄。在我看來,C/C++ 一旦學成,其妙無窮,就像武俠小說中的「九陽神功」同樣,有了這個基礎,學習任何語言和編程技術都很是快速!面試

本文就爲你們分享我學習C/C++ 的經驗,很多人都說看完這篇文章感受醍醐灌頂,想一看再看,但願你也能有所收穫!算法

 
在學習C/C++能夠加入咱們的學習交流QQ羣: 954607083 ,領取C/C++學習資料

01數據庫

C/C++ 當前的應用領域編程

一般狀況下,C++ 能夠當作是 C 的一個超集。瀏覽器

C 語言目前主要用於像操做系統一類偏底層的應用開發,包括像 Windows/Linux 這樣的大型商業操做系統,以及嵌入式操做系統、嵌入式設備上的應用,還有一些開源的軟件,也會選擇 C 開發。安全

 
在學習C/C++能夠加入咱們的學習交流QQ羣: 954607083 ,領取C/C++學習資料

咱們再來講說 C++,C++ 的應用領域目前有三大類:服務器

第一類就是咱們目前見到的各類桌面應用軟件,尤爲 Windows 桌面軟件,如 QQ、安全類殺毒類軟件、各類瀏覽器等;網絡

另外就是一些基礎軟件和高級語言的運行時環境,如大型數據庫軟件、Java 虛擬機、C# 的 CLR、Python 編譯器和運行時環境等;數據結構

第三類就是一些業務型應用軟件的後臺,像遊戲的服務器後臺,如魔獸世界的服務和一些企業內部的應用系統。編程語言

 
在學習C/C++能夠加入咱們的學習交流QQ羣: 954607083 ,領取C/C++學習資料

02

C++ 語言基礎與進階

2.1 基礎:

這裏說的基礎不是狹義上的 C++ 語言基礎,而是包括 C++ 開發這一輩子態體系的基礎,筆者認爲的基礎包括:

C++ 語言自己熟練使用程度。

必須結合一個具體的操做系統平臺,因此得熟悉某個操做系統平臺的 API 函數,好比 Linux,以及該操做系統的原理。

網絡通訊,網絡通訊在這裏具體一點就是 Socket 編程。

說了這麼多,你可能會以爲很抽象。舉個具體例子,假設咱們如今要開發一個相似電驢這樣的軟件,軟件界面以下圖:

 
 
 
在學習C/C++能夠加入咱們的學習交流QQ羣: 954607083 ,領取C/C++學習資料

如上圖所示,假設操做系統選擇 Windows,使用語言使用 C++,這款產品的實現技術分爲 UI 和網絡通訊部分,下面將詳細介紹這兩部分。

UI 部分

不管你是在閱讀別人的項目仍是須要本身開發這樣的項目,在肯定了這款軟件使用的 UI 庫,您就須要對 Windows 的窗口、對話框、消息產生、派發與處理機制進行了解。

接着,根據上圖中的軟件功能,大體分爲三大模塊,即資源、下載和分享。這三大塊是可使用一個Windows Tab 控件去組織,這個時候您須要瞭解 Windows Tab 控件的特性。

 
在學習C/C++能夠加入咱們的學習交流QQ羣: 954607083 ,領取C/C++學習資料

網絡通訊部分

網絡通訊部分,主要有兩大塊,第一個是程序啓動時,與服務端的交互;第二個就是文件下載與分享的 P2P 網絡。

 
在學習C/C++能夠加入咱們的學習交流QQ羣: 954607083 ,領取C/C++學習資料

2.2 進階:

若是您達到了我上面說的三點後,能夠再找一些高質量的開源項目去實戰一下。須要注意的是,最好找一些沒有複雜業務或者您熟悉其業務的開源項目(如開源的 IM 系統)。

我我的學習一套陌生的開源項目時,老是喜歡將程序用調試器正常跑起來,而後再中斷下來,統計當前的線程數目,而後經過程序入口 main 函數從主線程追蹤其餘工做線程是如何建立的;接着,分析和研究每一個線程的用途以及線程之間交互的,這就是先總體把握,而後找感興趣的細節去學習。

 
在學習C/C++能夠加入咱們的學習交流QQ羣: 954607083 ,領取C/C++學習資料

03

關於 C++ 的面試

關於 C++ 面試,面試的要求究竟是側重代碼量、項目經驗,仍是側重操做系統、數據結構這種基礎知識?

若是你是想進入大型互聯網公司的應屆生:

應該優先好好準備算法和數據結構知識以應對面試,這是大型互聯網公司面試頻率最高的考察範圍。

若是是社會人士參加的 C++ 職位的面試:

若是是大型互聯網公司,雖然社招問的更多的是項目經驗,但適當準備一些基礎的算法和數據結構知識也是很是有用的。

 
在學習C/C++能夠加入咱們的學習交流QQ羣: 954607083 ,領取C/C++學習資料

另外,C++ 是一門講究深度的編程技能,對於有必定工做年限的面試者,面試官每每會問不少原理性的細節,這就要求廣大 C++ 開發者在日常多留心、多積累、多思考技術背後的原理。

本文轉載自 | Chat-《如何成爲一名合格的 C/C++開發者》

做者 | 范蠡

相關文章
相關標籤/搜索