C++作為一門底層可操作性很強的語言,廣泛應用于游戲開發、工業和追求性能、速度的應用。
比如騰訊,無論游戲,還是微信,整個鵝廠后臺幾乎都是 C++ 開發,對 C++ 開發者的需求非常大。
但問題是C++入門和精通都比較困難,所以市面上的優秀人才很少。
因此網上有句話說“C++就是入職大廠的敲門磚!”
經常會有人問我:
C++應該做些什么項目?
應該學習什么項目來提高自己的C++水平?
今天給大家推薦三個我認為不錯的項目
(一)手擼STL
STL是C++的重要組件,C++開發幾乎沒有不使用STL的,然而光會用是不夠的,還需要明白它的實現原理。
智能指針 vector array stack queue deque map set string 這些常用的數據結構最好自己都實現一遍。
水平高的可以直接參考gcc源碼(https://github.com/gcc-mirror/gcc)
(二)ThreadPool
一個簡單的 C++11 線程池實現,只有一個頭文件,代碼加起來不到 100 行。
GitHub 地址:https://github.com/progschj/ThreadPool
(三)sudoku
C++ 實現的命令行數獨游戲。600 余行代碼,初學者也可以輕松學習。
GitHub 地址:https://github.com/mayerui/sudoku
(四)sTinytetris
Tinytetris 是一個用 C++ 編寫的終端版俄羅斯方塊游戲。它提供了兩個版本的源碼,分為注釋版和庫版,注釋較多易于理解和學習。
GitHub 地址:https://github.com/taylorconor/tinytetris
(五)MyTinySTL
當你學習完 C++ 的“書本”知識后,是不是有些手癢了呢?MyTinySTL 這個注釋詳細、實踐夯實基礎的項目便是你 C++ 學習之旅的下一站。作為新手練習用途,MyTinySTL 的作者 Alinshans 用 C++11 重新復寫了一個小型 STL(容器庫+算法庫)。代碼結構清晰規范、包含中文文檔與注釋,并且自帶一個簡單的測試框架,適合 C++ 新手來實踐一番。
GitHub 地址:https://github.com/Alinshans/MyTinySTL
(六)C-Plus-Plus
C-Plus-Plus 是收錄用 C++ 實現的各種算法的集合,并按照 MIT 許可協議進行授權。這些算法涵蓋了計算機科學、數學和統計學、數據科學、機器學習、工程等各種主題。除外,你可能會發現針對同一目標的多個實現使用不同的算法策略和優化。
GitHub 地址:https://github.com/TheAlgorithms/C-Plus-Plus
(七)calculator
微軟開源的 Windows 系統預裝的計算器工具。該工具提供標準、科學、程序員計算器的功能,以及各種度量單位和貨幣之間的轉換功能。快來看看微軟工程師編寫的代碼吧!學習大廠的編碼規范、項目結構之類的,提高閱讀源碼的能力。英文的項目且沒有講解部分,需要通過閱讀源碼學習,難度較高。
GitHub 地址:https://github.com/microsoft/calculator
(八)workflow
workflow 是搜狗公司的服務器引擎,搜狗幾乎所有的后端 C++ 服務和其他幾十家公司都在使用這個引擎,每日處理超百億請求。不單網絡、磁盤 IO、CPU 計算等,workflow 著眼于所有異步資源都盡可能全部調起。使用 workflow,你可以輕松搭建后端服務器(如 HTTP Server),可以輕松高效地發起客戶端請求(支持 HTTP、Redis、Mysql、Websocket 和 Kafka 協議)。
GitHub 地址:https://github.com/sogou/workflow
(九)jwEngine
一個跨平臺、輕量級、支持 C++ 和 Lua 的 Web 框架。支持 TCP、KCP、WebSocket、HTTP 等協議,底層采用 libuv 異步 IO 提高并發,避免多線程上下文切換開銷和破壞代碼美感,網絡部分和邏輯部分使用一個主事件循環驅動。支持 Lua 提高開發效率,適用于小型游戲開發。
GitHub 地址:https://github.com/jwcpp/jwEngine
粉絲福利, 免費領取C/C++ 開發學習資料包、技術視頻/項目代碼,1000道大廠面試題,內容包括(C++基礎,網絡編程,數據庫,中間件,后端開發/音視頻開發/Qt開發/游戲開發/Linuxn內核等進階學習資料和最佳學習路線)↓↓↓↓↓↓見下面↓↓文章底部點擊免費領取↓↓