C++學到什麼程度才能叫精通?

羅鎮鴻


c++是個複雜的融合體,面向對象和c語言。

面向對象基本語法特性之上就要談到設計,設計是個沒啥標準答案的東西,目前業界還是認可設計模式,這個也確實是個起步的水平,也就是最起碼要熟練掌握靈活運用基本的設計模式。更高等級就是自創了,做一些更適應自己團隊的創新。

如果項目選擇c++,基本是有特殊需求,比如實現圖像處理,音視頻處理,底層第三方包要求語言和性能要求。

以前網絡編程也基本是用c++,現在java優化的很不錯,比如netty。

如果談到性能,問題就複雜了,操作系統知識是必須的,知道如何優化程序。還有一些更為專業的高性能加速計算最好也掌握。加速就不是傳統c++的範圍。

現在的c++做的東西越來越少,核心都掌握在國外,我們國內沒啥原創。都是核心基礎上做一些二次開發或者中上層的東西。

不過我前段時間翻閱opencv代碼發現優化實現有中國的影子,作者寫的是中國科學院軟件研究所,是算法實現的對應opencl版本,大概10多個算法的實現。


abcdefghi98765432101


C++語言學透是不可能學透的,這輩子不可能學透的,C又不會用,就只有學學C++,維持上班不忘記這樣子。

每天晚上我都要學習C++,就只有網上找找女朋友,我才會不去看看C++這樣子,可我找不到,學C++時候感覺各個知識點都好難,比找女朋友難多了,學C++時候又只有我一個人學,他們都組團一起去學java了,一個人孤單學習也找不到女朋友一起玩。

去學java之後感覺各個都很有趣,寫的又簡單,還很容易實現,超喜歡java的。

剛畢業一兩年時候,還能天真無知說著自己,熟悉C++,甚至說精通C++,而工作為五六年,卻發現自己都還不配說自己精通。這輩子都感覺不會精通C++了,畢竟C++在你學習時候也在悄然迭代,就跟社會一樣,你猛地追趕,最後才發現你永遠慢人一步,學會了放下。

越難得到的東西越忘不了,好比越渣的人越令人牽腸掛肚,所以放棄吧,你永遠不可能精通C++,能做的就是熟練跟上這個磨人小妖精的步伐。

最新C++資源用起來吧。這些資源關注我私聊發送:“C”就可以獲得啦,記得關注私聊哦。

C/C++詳細圖解

資源

輕鬆掌握C語言視頻教程(會打字就能學會) 對應1、2、3、4知識點。

C++基礎完整視頻 對應1、2、3、7知識點

C語言數據結構 培養架構師思維 對應4、5、6知識點

C++核心編程_打造你的核心編程技能 對應1-9知識點

QT界面開發 對應1、2知識點

MFC 對應3知識點

linux系統編程 對應上面所有。

服務器開發之linux網絡編程 對應所有。

最後的實戰項目網上一搜一大把


這些資源關注我私聊發送:“C”就可以獲得啦,記得關注私聊哦。


黑馬程序員


很有意思的問題,作為一個主要使用C++做開發超過十年的老碼農,來聊聊我個人的一點看法。


這麼說吧,C++是一門極度複雜的語言,而且隨著新標準的提出,這種複雜性還在不斷的增加中,所以說什麼程度算是精通C++語言,其實是一個無法給出明確答案的問題。比如就我來說,使用了十多年的C++,可以輕鬆的使用C++設計一個方案並實現,比如用它實現過圖像處理SDK,也用它做過IDE開發,即使如此,我也不敢說自己已經精通C++。原因很簡單,你對這門語言的理解越深,也就越能發現諸多的不足,既包括自己的不足,也包括語言本身的缺陷與不足。舉個簡單的例子,我最開始學習的標準是C++98,可是後來又出現了C++03、C++11、C++14,甚至還有C++17,對於這些新標準出提出的內容,說實話,有些聽過,有些甚至都沒有聽說過,更別說在實際應用中使用了,以此來說很難算是精通C++了。


不過話又說回來,有很多使用了多年C++的程序員,有著和我類似的情況,他們可以輕鬆的使用C++開發一個應用程序,但是C++中依然有他們未曾觸碰的領域。所以我認為C++語言變得越來越複雜,想要完全掌握除了編譯器和C++語言專家,其他人是可望而不可及了,要不然就連Linux之父——Linus Torvalds也會炮轟C++,說它是一門糟糕(horrible)的語言。


綜上,我認為想要給出一個明確的精通C++語言的標準,是一件費力不討好的事情,學習任何語言都是為了解決實際問題,所以只要你能夠使用C++語言開發出好的應用,你就是一個合格的C++程序員。下面是幾條熟練使用C++的需要掌握的技能:

1、最基本的要求自然是熟練掌握C++的基本語言,包括常用的和不常用的;

2、因為C++是一種面向對象的語言,所以要掌握面向對象程序(OOP)設計思想;

3、能夠使用C++描述常用的數據結構,並實現在這些數據結構上的各種操作;

4、理解C++對象模型,比如對象指針、虛函數表等內容,以及類的構造過程,以及在此過程中編譯器會在背後做那些事情等等;

5、能夠使用C++做程序設計,這裡除了基本的OOP思想外,最重要的是熟練應用設計模式;

最後,再對C++發一點牢騷,雖然我還在使用C++做開發(部分任務已經使用其它語言),但是我認為C++是一門尷尬的語言。談效率吧,它不如C語言簡單直接;談面向對象設計吧,它又不如C#、Java等純粹;談開發效率吧,它又不如Python高效……太多的功能如模板、智能指針、多重繼承等讓這門語言變的越來越複雜,所以我是越來越不喜歡C++,並且建議程序員不要將C++作為首選開發語言。


分享到:


相關文章: