C/C++這麼難,學會了C/C++的人到底有多牛X呢?
1、C和C++夠笨,逼的程式設計師自己做很多事。
C其實大家都知道,是一門中低階語言,保留了指標等彙編特徵,與系統底層結合密切。C++呢,更多的向個Object C,即面向物件的C。但這些,其實並不能夠讓程式設計師顯得很牛。
個人的理解,之所以C和C++程式設計師顯得很牛,其實原因和大家想像的正好相反,不是因為C和C++太強大,而是這兩門語言太弱智了。
C和C++,由於設計時,主要針對系統底層,作業系統層面的應用,因此,其提供的核心基本庫相對比較簡陋,沒有提供很多華麗的框架,VC的MFC不算啊,那是針對Windows的,不是C++的基本特性。
這直接導致了C和C++程式設計師,在進行大型開發時,缺乏現成的框架模板可以使用,也沒有太多的工具庫可以使用,像Java等其他語言,基本都提供了常見的幾乎所有資料結構類,或者工具模組,不過,C和C++沒有,搞得C和C++程式設計師,這群可憐的娃,啥事都喜歡自己做。

在學習C/C++可以加入我們的學習交流QQ群: 954607083 ,領取C/C++學習資料
2、C和C++夠通用,逼的程式設計師廣種薄收。
這個通用,分兩層意思。
一個是從應用角度,C和C++是目前我見到唯一的可以適應任何應用場合的語言,它對應用通用。起碼,除了組合語言,C和C++大概是唯一用來寫作業系統的語言了,很多底層的驅動程式,作業系統核心級模組,只能用C和C++來開發,因此,一個C和C++程式設計師,他唯一不知道的,可能就是不知道自己以後會去寫什麼平臺的什麼程式,這要求他必須努力學習很多語言之外的知識,為下一份工作做好知識儲備。
第二個是從跨平臺來說,C和C++又不是很通用,雖然從第一天開始,C就吹噓自己很牛叉,是跨平臺語言,但是,就我個人的經驗,可以很負責任地告訴大家,它在吹牛。
沒錯,作為基本語句,C和C++程式可以到大多數平臺的編譯器下開發,不過,稍微涉及應用一點的庫,差異就很大,比如同樣的socket程式設計,Windows下和Linux下就有很大差異,什麼執行緒庫啦,很多,差異都很大。不過,日常工程開發,離了這堆庫,程式設計師估計也不用做什麼事了,因此,很多C和C++程式設計師自從被騙得上了賊船,沒辦法,就得面對無窮無盡的學習,作業系統,任務排程,記憶體管理,資源管理,很多都得自己來,去理解各個作業系統的差異性,然後自己寫程式來適應。
這麼弄下來,搞得C和C++的程式設計師,無形中對於很多語言之外的知識,掌握得就多一點了。

在學習C/C++可以加入我們的學習交流QQ群: 954607083 ,領取C/C++學習資料
3、C和C++不是一門應用級的語言,其程式設計師的要求也不是應用程式設計師的要求
應該說,這已經是很大的市場了,足以讓一個程式設計師吃一輩子的飯,因此,學會了這類語言以及應用開發,一般已經可以再80%~90%的開發市場找到飯碗了。
這種事情想多了,不用說大家也知道,對自己的水平無形中,有一點點促進,因此,C和C++程式設計師往往看問題會深入一點,善於思考。

在學習C/C++可以加入我們的學習交流QQ群: 954607083 ,領取C/C++學習資料
4、C和C++是高效能應用的唯一選擇,這造成程式設計師必須學習優化
我們知道,雖然很多語言都可以寫遊戲,不過,作為大型遊戲系統,比如暗黑破壞神吧,還有很多網遊,出於高效能圖形動畫的需求,必須使用C和C++來實現,才能保證效率。
很多大型網站的後臺資料庫,為了響應高吞吐量,高併發量的客戶請求,也需要使用C和C++進行優化。
這就造成了,C和C++程式設計師一玩就是大的,必須對優化非常熟悉才行。我們知道,優化,有兩個要求,一是對各類演算法必須很熟悉,可以進行演算法比較,另外,也是需求分析的專家,可以根據需求特性,做量身定做的優化。
這就要求C和C++程式設計師,經常陷入演算法比對之類的任務,而且,也不能僅僅做一個程式設計師,還必須時刻思考客戶需求,對需求做不斷的再分析,才能找出優化之路。
我們知道,任何事情,做多了,就成熟練工了,自然也就來得快,C和C++程式設計師就是這個樣子。

在學習C/C++可以加入我們的學習交流QQ群: 954607083 ,領取C/C++學習資料
可能還有很多其他理由,不過,我匆忙間,也就想出這幾條。不過,大家可以看到,日久天長,C和C++程式設計師,不管是否自願,但工作和學習中,確實比別語言的程式設計師在多想,多看,多學,自然而然,就顯得很牛叉了。
但大家注意到沒有,其實我上面分析的幾點,與C和C++其實沒有太多的關係,任何一門語言的程式設計師,只要堅持上面幾點,不斷修煉自己,其實都可以達到牛叉的地步。
所謂功夫在詩外,又所謂窮人孩子早當家,C和C++之所以顯得牛人多,並不是這兩門語言有多好,其實恰恰相反,是這兩門語言沒有給程式設計師提供太多幫助,而其應用環境又太多太廣太深,逼的程式設計師在自我不斷的學習,幾年,十幾年下來,自然顯得比小日子過的還算不錯的其他語言程式設計師,要深入一點。

在學習C/C++可以加入我們的學習交流QQ群: 954607083 ,領取C/C++學習資料
但是,我們還是要看到,每一門語言,都有其存在的價值,起碼程式語言排行榜前十的語言,都是偉大的語言,都可以產生大師,我覺得大家完全沒有必要人云亦云,都一窩蜂跑來做C和C++,在很多應用市場上,Java、PHP等指令碼語言,都以開發週期短,開發時間快,成為優選語言,C和C++完全沒有辦法和這些語言比較。
計算機軟體開發,發展到現在,其實已經是很細分的市場,有專門的應用軟體市場,也有系統軟體市場,C/C++和Java等,各自應對的是不同的市場,因此,二者其實沒有可比性的。
建議已經選擇其他語言方向的同學,不要跟風,在自己的領域深入進去,你們也能成為牛人的。