C++有句俗話說:一年精通 三年熟悉 五年了解 十年用過
如果可以把C++程序員分層的話,看看你在第幾層?

第0層
掌握基本的C++語法,會寫一些基本的if-else,for循環,switch-case等。可以簡單的使用C++的IDE,把書上的代碼一行一行敲上去,會點擊Run按鈕運行程序,可以輸出hello world。
第1層
熟悉C++大多數語法,了解面向過程與面向對象編程思想,了解封裝、繼承、多態的合法使用,了解指針、函數指針、回調函數、異常處理、文件操作、STL的使用,可以解決簡單的編譯鏈接報錯問題。
但缺乏獨立思考的能力,甚至都不知道如何提問,一般面向百度編程,熟練掌握ctrl+c和ctrl+v操作,只要程序達到過預期的結果就已滿足,可以簡單的做出個Demo。
第2層
熟練掌握C++大多數語法,熟練背誦大多數C++面經。
了解C++11、C++14、C++17甚至是C++20的新特性,面試技術單點時沒什么問題,說起來頭頭是道,但做起來一塌糊塗;
沒有從0到1做公司級項目的能力,着重於完成某項子功能,沒有設計圖紙的能力,可以在現有框架上增刪改,代碼可讀性、可擴展性、邊界條件處理、程序性能、編碼規范等問題往往不太考慮。
第3層
讀過一些經典C++書籍,對STL、BOOST等經典庫可以熟練使用,看過部分經典庫的部分源碼,了解基本原理,掌握常見的設計模式,掌握C++的好多奇技淫巧,對代碼有潔癖,按照編碼規范編程,會對邊界條件做詳盡處理,代碼可讀性較高。
寫代碼時經常炫技,代碼騷氣逼人,自認為可以碾壓大多數人。然而炫技通常會導致開發周期長,代碼膨脹,后期維護難,其他普羅大眾通常看不懂這種炫技的代碼。
第4層
重劍無鋒,大巧不工,不再炫技開發,簡單合理的能夠完成需求就好。
熟練掌握操作系統,編譯原理,掌握編譯與鏈接的大多數知識,了解編譯器背后的故事,熟練使用各種調試工具,各種性能分析工具;
了解內存對齊,知道如何調試內存泄漏問題,如何調試死鎖問題,深入理解CPU Cache、文件系統、進程與線程、TCP/IP、內存模型等知識,參與開發過系統級的項目開發;
動手能力強,接到需求后有自己的想法,可以快速給到實現方案。了解C++的各種方案優缺點,常見的坑以及各種避坑方法。
第5層
從0到1設計開發過系統級、高性能的項目,並被一定量級的用戶使用過。
不再着重於技術單點的實現方案,完全領悟並靈活使用各種設計模式,更着重於整體架構的設計,即設計那一張工程圖紙,給出整體的解決方案,追求設計更合理的架構,着重於模塊划分是否清晰,着重於高內聚低耦合,着重於系統的健壯性,靈活可擴展性,可以應對大規模需求的迭代與變更。
第6層
混跡於國內國際各種C++開發者大會,各種演講,分享自己的開發心得,分享架構設計方案,受眾生膜拜。例如侯捷、張銀奎、吳詠煒、潘愛民等(排名不分先后)。

第7層
C++標准委員會成員(盡管一堆人在噴他們腦袋有坑,但不可否認,他們確實就是頂尖的C++程序員)

第8層
Bjarne Stroustrup,凡是我們C門子弟,無需多言吧。yyds! C++之父。

最后說幾句,學習C++確實挺苦,精通又有什么用呢,面試造火箭,入職不還是擰螺絲嘛!
語言可能沒有那么重要,我們多數人可能永遠也到不了第6層,但我們可以嘗試去精通某個領域,例如精通人臉識別、自動駕駛、游戲開發、音視頻開發、網絡開發、移動端開發相關的業務等。
我們也要着重於提高自己的這三種能力:
◐ 分析問題的能力
◐ 解決問題的能力
◐ 掌控全局的能力
- End -
—————————————
不管你是轉行也好,初學也罷,進階也可,如果你想學編程,進階程序員~
【值得關注】我的 編程學習交流俱樂部 !【點擊進入】