昨天進燕山大學編程愛好者 QQ 羣,看到有不少同窗在學 C++ ,我固然是不喜歡了,由於我是作 Web 開發的嘛。因此懷着猥瑣的心情,今天寫篇傻傻的文章,來黑一下 C++ 。 Peter 你有資格聊這個嗎?我是研一(2006)那年開始全職用 C 語言開發嵌入式系統,(個人一個 C 語言項目,click here )研二開始就接觸 C++ 了,用 Qt(一套 C++ 編程框架) 來寫。09年畢業後第一份工做就是 「Qt Developer」 在中關村一家公司,叫作紅旗 Linux 。全職作 C++ 一共9個月,項目代碼在這裏。我不是 C++ 大牛,今天我也不從很深的技術角度來黑 C++ ,而是給你舉出不少實際的例子,論證一下,從大學生職業發展的角度來講,C++ 是不適合的。php
傳統 IT 公司,通訊公司,IT 諮詢公司,新興互聯網公司,這些公司類型是有差別的。前幾天我在北京跟 ThoughtWorks (他們是高端諮詢公司)的朋友聊天,他說咱們這裏的薪水比傳統 IT 公司要高,可是跟互聯網公司真是無法比。什麼是互聯網公司?國內的 BAT ,國外的 facebook,twitter,google 。Twitter 最先用 ruby ,facebook 用 php,google 主推 python。同時固然你們都會用大量的 Javascript 了。有誰是主要用 C++ 的嗎? C++ 在傳統 IT 公司用的比較多,主要應該是微軟帶的,可是看看微軟惠普這些老恐龍們如今在幹什麼?一邊在裁人,一邊在作互聯網轉型。html
我本身入門面向對象編程是從 C++ 語言這裏,如今看來是一個巨大的錯誤。Why? 由於 C++ 很複雜,C++ 是我本身瞭解的語言中細節最爲龐雜的一種。若是我用 ruby 或是 python 入門編程,學起來會容易的多。爲啥 C++ 那麼複雜? 在早年須要考慮硬件資源利用率的時候,能夠說它很強大。如今只能說弱智。說說我本身作 C++ 的經歷,簡單來說兩面受氣。一方面你要去實現業務邏輯,要讓客戶滿意,這個是應該的;可是同時還要哄好手裏的硬件,否則的各類編譯錯誤運行時錯誤搞死你。若是用 ruby/python 這樣的高級語言,程序員只須要關心業務邏輯,討好機器的工做在底層完成,因此給程序員的是更加接近於人話的語言接口。node
中國不少學校是用 C/C++ 來教編程入門,這個是錯誤的,晦澀的語法直接把你們的興趣幹掉。 MIT 用 python ,UCB 用 ruby 編程,你們能夠 google 一下,看看他們的視頻課程,很是的簡單,精力都用在實現本身的想法了。好像開車,你首先應該學習的時如何使用方向盤,而不是直接就研究如何修車。作事情應該由粗到細,而不是先無論方向往深處鑽,若是你方向錯了呢?那回頭損失豈不很大。python
個人 C++ 水平有限了,如今我來講說個人幾個朋友的故事。git
A 君,清華大學碩士,對 C++ 情有獨鍾,真正的技術大牛,我很敬重的人,寫過一本 C++ 的書。2010 年咱們都在一家公司工做,他當技術總監,公司是互聯網性質,有 php 有 python 可是就是沒有 C++ 。他在那家公司任職兩年,離職後興趣就轉了 nodejs 。後來去國外工做,作 C++ ,很沒意思,可是那次他回來我在北京請他吃烤串, 問他將來搞什麼?他仍是堅持說是 C++ 。前幾天,他又來秦皇島找我玩,跟我說:」靠,我這個出國出錯了,把個人方向都搞亂了「。如今他是一個3D打印機公司的聯合創始人和技術負責人,可是也不多用 C++ 。 他說:」迷茫啊.. 我仍是要去國外讀一個計算機的學位「,話說他比我還大一歲呢!程序員
B 君,我曾經的同事,也曾經是國內排名第一的計算機系的老師,十幾年 C 語言經驗。2011 年我跟他在一塊兒工做的時候,我就逗他:」別搞 C 了,跟我學 Ruby On Rails 吧,互聯網意味着開放和自由「,當時他沒反應,我猜他的想法是:」 Web 的那些東西都太膚淺,C 語言纔有嚴肅的學術性「。後來2013年他家搬到了硅谷,受那裏氛圍的影響,他先學 RubyOnRails 一年多,如今又搞 meteorjs(這兩個都是 web 的) 。C 方面的研究和寫書方面的事情,據我所知,他都慢慢放下了。順便把 C 語言也給黑了吧,儘管 Linus Torvalds 到如今依然是個人偶像。github
總的意思就是讓你們別學 C++/C 這些底層語言,而去擁抱互聯網,一個既有錢又有夢想的領域。開發 iphone 應用原來用 OC 這個是很相似於 C++ 的一個東西,不過這是歷史遺毒了,貌似蘋果公司正在用 swift 來糾正這個錯誤。最後說一下,我叫 Peter ,github 帳戶是 https://github.com/happypeter 上面有個人郵箱,歡迎你們來信跟我交流。web
http://qqpeter.github.io/cpp.html編程