1. 程式人生 > >華為校招 C++崗面經(筆試+一面+二面+Offer)

華為校招 C++崗面經(筆試+一面+二面+Offer)

前言

  我報的是華為IT應用軟體工程師,方向是C++研發崗,參加的合肥站的面試。總的來講華為校招是我參加所有校招裡面服務最好的,HR很貼心,業務很專業。

應聘經過

筆試

  華為校招軟開崗是3道程式設計題(用的牛客網的考試系統),我運氣比較好,遇到的三道題都很水,PAT乙級水題的水平,第一道題是進位制轉換(10進位制與26進位制轉換,然後加減)、第二道是超大數運算(直接使用string處理加減)、第三道題是圖的遍歷(DFS即可),一個多小時就做完了,3道題全AC。

  筆試難度存在運氣成分,聽一個北京的同學講,他做的就挺難的,一道Dijkstra演算法應用,一道IP分組問題,直接崩潰……不知道是否和地域有關(可能是北京的大神太多了,出題難一點?),或者和個人運氣有關,我和實驗室的小夥伴,遇到的問題都挺簡單的,幾乎沒有遇到什麼高階資料結構的問題。

  最後強調一點——千萬別作弊!!!

。我們學院其他實驗室有個同學使用的場外助攻3道題都AC了,但是最後卻沒有收到面試邀請的同學,聽華為內部的學長講,大概率是程式碼被判定抄襲,一旦判定作弊,就一定會被拉黑,以後就很難進華為了。

  如果題目很難,哪怕只做出來一道題,也有面試機會,所以最好還是不要投機取巧。

一面

  筆試過了之後,大概一週之內,就會收到面試通知(簡訊+郵箱),面試時間距離通知時間一般1~2天。合肥站的面試通常在高速開元大酒店,華為財大氣粗,場景佈置的還是蠻好的,面試大廳外有休息場地,有零食吃……

  進去之後先是一排HR小姐姐,刷身份證,然後自動排號,人挺多的,另外一個大廳是面試大廳,有幾十個技術面試官,到後面會發現華為的校招體系,成熟而專業(順便吐槽一下,百度的弱爆了……)。我運氣比較好,遇到的技術面小哥哥帥氣而貼心,問的問題都是我能夠答上來的,下面根據當時的回憶整理一下。

  Q:先介紹一下自己吧
  A:我把簡歷遞過去,然後自己簡單介紹了一下自己,主要包括自己的專業技能、專案經歷、獲獎情況等。

  Q:(似乎對專案比較感興趣,邊看簡歷邊問)你先談一談你的專案吧
  A:我的專案都是碩士期間依託實驗室基金做的軟體產品(一個Windows客戶端,一個Android APP),因為大部分都是自己獨立完成的,所以很熟悉,進入自己擅長的領域了,開心…我就簡單的介紹一下基於尤拉放大(EVM)原理的心率檢測技術的演算法原理,以及對應的實現細節,著重講專案用到的開源庫OpenCV、Qt和FFMPEG等,以及在Android中使用NDK做C++的開發技術,把一些我認為是亮點的部分都詳細說了一下,全程大約5分鐘,由於提前準備過,所以說的很全面。

  Q: 我是做C開發的,對C++不是特別熟悉,簡單問你幾個問題吧,說一下C和C++的區別?


  A:從類、異常、友元、模板、STL等方面展開論述C++的高階特性,並適當舉證,然後還說了一下面向物件思想。

  Q:那你說一下C++的多型是如何體現的?
  A:說了一下C++動態聯編,函式過載和虛擬函式表等。

  Q:談一下你剛才演算法中談到的傅立葉變換原理?
  A:我簡單的說一下傅立葉變換以及專案中使用傅立葉變換做頻域濾波,其實我說的不是特別詳細,因為我本科是學計算機的,沒學過訊號系統,對傅立葉變化不是特別熟悉,但是我能感覺到面試官其實也不懂,所以說的就比較自信,他也沒怎麼從中挑刺,只是考察我對理論掌握的深度吧。

  Q:你的專案中如何使用OpenCV庫,都用到了哪些?
  A:簡單說了一下OpenCV中的高斯金字塔、理想帶通濾波等,以及OpenCV提供的矩陣運算,相比於用陣列或者Vector來實現影象矩陣運算,OpenCV的Mat類提供了更多功能。

  Q:為什麼測心率,會用到FFMPEG庫?你用FFMPEG庫做了什麼?
  A:因為Android平臺支援的多媒體解碼僅包括V8 V9 H.264等,OpenCV在Android平臺上支援的視訊編碼格式比較少,MJPEG效果最好,需要使用FFMPEG把H.264轉換成MJPEG等,然後我還主動說了一下MJPEG和H.264的區別,感覺面試官還是挺滿意的。

  Q:你這個專案中遇到的最大的挑戰是什麼?
  A:講了一下演算法復現的遇到的問題,理想帶通濾波處理視訊的時候,視訊是一個四維訊號,MatLab裡面是支援直接對四維訊號做濾波的,但是OpenCV僅支援二維訊號,MatLab中的fft函式與OpenCV的dft函式也不盡相同,然後從公式上驗證對視訊幀做畫素平均的方案可行,就通過該方法進行降維,最後得到理想效果。

  Q:為什麼不考慮手動實現一個支援四維矩陣運算的快速傅立葉變換演算法?
  A:考慮過,但是因為專案當時比較緊,老闆要求時間節點,所以就怎麼快怎麼來了……(面試官笑了一下)。

  然後一面就結束了,讓我問兩個問題,我就問了一下,C++崗具體會做些什麼工作,他說部門很多,每個部門都不太一樣,他們部門是做底層驅動的,所以C語言用的多一點。

  然後我又問,工作地點的問題,我報的杭州華為,但是之前上海華為給我打電話讓我改投上海,是否意味著被調到上海了,他說這個問題可以留到HR面的時候再問,他也不是很清楚,但是上海比較缺人。

二面

  二面是綜合面,也有人說是HR面,但是我遇到的面試官,是個大媽,感覺更像是個PM,瘋狂的問我產品功能,提需求……說話語氣很不友好,有點壓力面的感覺。說好的聊家常呢???

Q:(上來還是介紹自己+介紹醒目)
A:和技術面差不多,和一面差不多。

Q:你這個演算法的創新點在哪裡?
A:一臉懵逼,握草,大姐,我是做產品研發的,不是搞演算法的啊……但我還是說了說,把師兄的論文創新點說了一下,特徵點跟蹤+視訊追蹤獲取更精準的ROI區域,等等……專業詞彙比較多,我儘可能說的形象通俗一點。

Q:然後開始瘋狂的問這個特徵點跟蹤……
A:簡單的說了一下 特徵點跟蹤,這個其實是CVPR2013的一片論文,大改解釋了一下其中的作用。

Q:你這個心率檢測,為什麼要用面部視訊作為輸入,腕部不行嗎?脖子不行嗎?
A:這個問題不太好解釋,感覺是產品需求的問題吧,其實腕部和脖子也可以的,但是面部的特徵點更好找,目前市場上的手環檢測心率就是基於腕部的,大概這樣解釋了一下。

Q:那面部和腕部,相比,有何優勢?
A:大致說了一下應用場景不同,但是面試官似乎不太滿意,又追問了我既然腕部也能做這麼好,為什麼還要臉部,意義何在?我一臉懵逼,心裡發虛,因為這個問題挺關鍵的,面部和腕部還有指尖比,確實沒啥優勢,但是這是實驗室的專案,我決定不了怎麼做啊,又不能就這麼和HR說,停頓了一下,組織了一下語言,答臉部是比較熱門的研究方向,在未來的研發中有更多可擴充套件的可能,腕部雖然比較成熟,但沒啥可以突破的等等,說了一堆。但是不得不承認,HR這個問題一針見血,確實指出了這個產品的瓶頸所在。

然後下面就是聊家常了,問在校履歷,成績單,獎學金,期望工作地點和薪資,如何看待壓力,如何看待加班等等……Nothing Special.

這裡提一句,本科履歷挺重要的,我本科過的比較一般,成績平平,沒拿過獎學金,也沒參加過省級以上的比賽,太平庸了,研究生階段的獎學金和比賽,又沒啥說服力。感覺這是我只開到16K的重要原因之一吧。用人單位還是很看重本科時期的表現的。

然後就是回去等開獎了,整體來說,從筆試到一面到HR面,都挺順利的,但或許只是自我感覺良好,因為最後並沒有給出很高的Offer。

offer

  華為開獎還是挺晚的,我是9月13號面完的,但一直到9月26號才進入備胎池,10月19號收到正式Offer,上海華為,白菜價16K,果不其然,還是把我從杭州調劑到上海了,工資評級不夠高也就算了,畢竟我也不怎麼厲害,但是工作地點反覆強調不服從調劑,還是強行調到了上海,有點失落,遂拒。不過華為HR那種拼命三郎的敬業精神著實令人感動,我沒去簽約會,HR前前後後給我打了好幾個電話,emmm……先說可以開18K問我去不去,我說我想去杭州,他們又說和杭州那邊溝通過了,十分遺憾那邊不缺人,然後就沒有然後了……

總結

  1. 總的來講,華為軟體開發崗不怎麼難進,除非運氣很差,遇到的面試官提問巨難,表現的不好,否則一般都能以白菜價拿到Offer;
  2. 提前批比正式秋招要有優勢,如果想去杭州、南京這種招人很少的非一線城市,建議早點準備參加提前批,有個小夥伴拿到了杭州華為的Offer,18K,就是提前批進去的,目前我還沒有遇到正式秋招進杭州華為的,招人確實不多。如果有條件參加實習就早點去實習,大概率SP;
  3. 技術水平+學歷背景決定能否拿到高水平的Offer,相對而言,好學校的碩士生,拿到SP/SSP會容易一點,我認識很多雙985碩士,技術水平沒啥特別優勢,但是基本上都上20K了,而一些雙非技術大神,白菜價的多一點……說不看學校,那是自欺欺人……
  4. 拿到Offer之後,華為會逼籤三方,我們這邊都是通知拿著三方去談薪資,否則免談。聽別的小夥伴講,華為大概率不接受違約,尤其是如果你已經簽了ZTE,HR明確表示不要。
  5. 談薪資也充滿了無限可能,有個小夥伴把16K聊到了20K,也是蠻厲害的。