應屆生找工作,對C++的要求是怎樣的?

聽不少人說,研發方向的話,C++找工作比Java方向要難些,是從BAT及網易等大型互聯網角度來說。
我從網上的面經來看,C++方向找工作不錯的都是會linux、看nginx源碼,找工作投騰訊後台開發這樣的。C++方向進阿里的確是比較難,這是不爭的事實,因為阿里是java系;但是進BT也很難嗎?那麼,
第一,大型互聯網公司對應屆生C++掌握的要求是怎樣的呢?
第二,如果只是掌握標準的C++,沒用過boost庫之類的,沒有掌握windows系統和linux系統環境編程;但是有java編程經驗,這樣的程序員是不是應該轉java方向去?
第三,應屆生找工作的時候,演算法和數據結構等基礎知識也是很重要的吧?和語言相比呢?


應屆生只要會general的編程技巧就好了,你用什麼語言系統庫API IDE都無所謂,反正大公司裡面,是工具的東西都是跟外面不一樣的,你總是要重頭來。


第一,越高越好。不排除給錢不夠牛人不來矬子裡面拔將軍。
第二,「掌握標準 C++」比「用過 boost 之類的庫」不知道難上多少倍。
第三,更重要。但是這類東西容易短期刷題,有經驗的面試官會權衡。


要問C++的技能要求,首先要知道一般C++都用來幹什麼:
1. 伺服器後台;
2. 數據挖掘、機器學習演算法;
3. 遊戲。
三者間共同的基礎:
a. 標準C++中的功能組件,最好能兼顧C++11甚至14,因為對標準的理解就是你對這門語言的理解,同時對新技術的探索也反映你的求知慾望與學習能力;(推薦網站http://cppreference.com)
b. 常見的演算法和數據結構,包括線性表、哈希表、堆、紅黑樹、B樹等,再難似乎沒有必要了;
具體分別又需要哪些技能:
1. 我沒見過哪個公司伺服器後台是搭建到Windows上的。所以,這一部分需要掌握*nix平台上常見、常用的網路、文件系統API,至少要能夠理解epoll + 非同步IO;
2. 這方面我也不太了解,但我所在的公司一直在這麼干。應該開源庫不少吧;
3. 最好在Windows平台下做,掌握一個3D引擎,掌握Dx,應該問題不大。
最後祝面試順利!


說T的情況
今年校招前台收到的簡歷比後台收到的要多幾倍,所以相應的你去投後台在水平一樣的情況下錄取幾率更高。
但是這裡更啥系有個毛關係啊,android app我就不信他們全用C++寫。
你的情況我覺得和我當年幫助內推的一個學妹的情況一樣:

我問:你的簡歷沒寫求職的職位呀,你補一下。
學妹:我不知道欸,隨便什麼職位都可以啦。
怒摔!

我就不信你去投移動開發搞android也不問你java。


認識一位研究生師姐。

在廣研創新班日常討論的時候,師姐表示她並沒有搞懂虛函數的虛表和虛指針。

後來師姐去了騰訊。


2015.5.5手動更一發。
今天面了阿里c/c++研發實習。
一句C++都沒問(答主吐血的聲音你聽見了嗎,老師您面前那塊寫著c/c++的牌子是偷來的嗎)。
面試官基本上圍繞著簡歷上的(java)項目,圍繞java展開問題。問的比較散。繼承多態,觀察者模式,紅黑樹,悲觀樂觀鎖死鎖,TCP三次握手,hashmap,反射,IPC,Hadoop。大概就這些具體的問題點,想起來了再添,最後讓寫了一個歸併走人。
答得不是很好,有些其實知道的,就是很長時間沒碰,有些細節記不清,然後就慌得要死,比如像反射這種八百年沒用過的(問java反射的時候我又巧了瞧了眼那塊寫著c++的牌子)。很可惜的是紅黑樹,有一個細節記不清了,有點慌,就乾脆放棄了,其實我是寫對了的。有些就真的沒有了解,比如hadoop,老老實實講沒有接觸過。
一面面完就讓走了,不知道是否還有後續。(答主走的時候依然確認了一眼沒有走錯位置,是C++呀,摔)
當然我還想吐槽一句的是。。我說重載是多態的一種體現,老師相當不贊同的樣子。

後續:果然跪。
所以我的感受就是。一般來說,阿里的cpp開發不具備普遍性。

-------------------------------------------------------------------
#爆總邀我來答題系列#
1.語言要求不高,能說清一段程序內存分布,多態機制簡單的原理比如虛函表就算過關了。最多寫點小片段看看。
2.沒有平台和庫要求,會基礎就行。
3.如果目標是cpp×後端,那麼網路>操作系統=數據結構與演算法=某種語言=計組>其他一些知識比如分散式系統並行計算網路安全等等。網路是最重要的,重點是TCP/IP協議棧。數據結構演算法什麼的,隨便拿個基礎知識點出來要能說清是什麼幹什麼什麼特點,並不難(像我其他不行,還要求加試了幾題演算法,最終也沒過,因為事先不知道網路的重要性)。另外考點進程,內存管理,CPU調度,網路安全,中斷機制就比較散了。
如果是cpp×其他,不清楚。

利益相關: 騰訊遊戲後端二面被刷狗。


本人本科畢業,在校的時候CS專業只開了C++語言,企業過來清一色會問C++即便是招JAVA工程師,演算法大公司最喜歡問了。


覺得最好是有幾個項目吧,這足以證明你的實踐能力,另外,公司看重的是你的學習能力,公司裡面使用的基本都是自己內部的經過改變的東西,需要的是你儘快上手熟悉。


推薦閱讀:

新加坡國立和南洋理工讀本科哪個更好?
Data Scientist、Data Analyst、Data Engineer 的區別是什麼?
申請美國計算機 PhD 應該如何定位?
oracle為什麼要繼續開發mysql?
為什麼UDP需要有長度欄位,而TCP不需要長度欄位呢?

TAG:互聯網 | 編程 | 計算機科學 | 應屆生找工作 |