1. 程式人生 > >VIVO校招面經(筆試+一面+二面+Offer)

VIVO校招面經(筆試+一面+二面+Offer)

前言

  我參加的是VIVO合肥站校招,報的是VIVO杭州C++開發崗,VIVO今年貌似挺缺人的,聽HR講,他們的業務去年漲了170%,貌似明年佈局更大,所以今年瘋狂招人,研發崗全國範圍內招了好幾百。換言之,挺好進的。
  原本壓根都不知道VIVO校招的事情的,但是實驗室的小夥伴推薦給了我,因為我想去杭州,而杭州C++崗位又賊少,VIVO居然在杭州招C++,於是報了一波,沒想到最開始並不在意的企業,反而無心插柳,成了歸宿。

應聘經過

筆試

  VIVO的線上筆試系統用的自己的系統,題目挺簡單的,25道選擇題,10道填空,3道問答題,範圍覆蓋C++、Java、計算機網路、Linux、離散數學、資料結構、資料庫等,相當全面,但是也比較簡單,問答題中,一道題是Linux指令,兩道程式設計題,分別是字串處理和連結串列逆置查詢共同結點,不是很難,但是時間比較緊,考試時間70分鐘。

一面

  VIVO的校招效率很高,第二天就給我面試通知了,包河萬達富力威斯汀酒店,沃德天,我無數次從萬達路過這個酒店,沒想到居然能進去坐坐,還是蠻激動的,畢竟算是合肥比較頂級的酒店了。


  進去之後先是一排HR小姐姐(emm……VIVO家的小姐姐顏值挺高的……),電子簽到,之後進入排隊系統,排隊是在3樓的水木廳,面試地點是根據分配的面試官,直接帶到面試官的房間,不得不說,五星級酒店,挺豪華的……

  首先還是萬年不變的介紹自己,我先把簡歷遞了過去,然後按自己準備的說,很快就說完了。

  面試官是個小哥哥,挺帥的,有點高冷,聽我介紹完之後,直接把我簡歷放到了一遍,然後開始問問題——

  Q:你說你是學軟體工程的,你說一下你對軟體工程這門課的理解吧?


  A:有點意外,沒想到他會問我這個問題,hold住,不能慌,我先跟面試官說“這門課過去好久了,我先回憶一下”,然後瘋狂的組織語言,軟工這門課,講真,背的挺多的,但是都忘掉了,而且我學得也不好……怎麼辦呢?我覺得他應該不是考察我對某個章節,或者某個概念的理解,而是對整個軟體開發過程方法論和工程化的理解,於是想了大概30秒,我就從需求分析、概要設計到詳細設計等過程,完整描述一款軟體從需求提出到產品上線的流程。可能某些詞彙不怎麼專業,但是貌似面試官還挺滿意的。

  Q:那你說一下你們是怎麼做需求分析的吧?
  A:握草……畫風不太對,怎麼一直問我這種概念,說好的手撕程式碼呢?這下真的懵逼了,其實在實驗室不怎麼做需求分析的,基本上不都是大老闆一句話的事嘛。但顯然不能這麼交代,於是我大致回憶了一下需求分析了內容,然後發揮想象力,說我們先會和專案甲方進行溝通,先用自然語言記錄甲方需求,然後小組討論,對需求進行建模,問題具體到細節,同時定義軟體開發的相關模式和流程……blahblahblah說了一堆,面試官也沒挑刺,不置可否。

  Q:(看著我的成績單)人工智慧考得挺高的,你們學人工智慧都是學些什麼?

  A:繼續懵逼……根據回憶說了一下人工智慧的課堂內容,其實這門課是導論形式的課,並沒有什麼乾貨。當時賊怕他問我具體細節,不過好在後面沒繼續問。

  Q:說一下struct和class的區別?
  A:終於變得正常了,就怕你不問我程式語言……從訪問許可權、友元、繼承、虛擬函式表等說了一下兩者的區別。

  Q:一個空類,會生成哪些成員?
  A:建構函式、解構函式、拷貝建構函式、以及拷貝賦值函式。

  Q:必須在建構函式初始化式裡進行初始化的資料成員有哪些?
  A:常量成員、引用型別、物件成員

  Q:說一下虛擬函式吧?
  A:簡單說了一下虛擬函式表在C++類繼承中的語法規則,函式重寫,以及如何體現多型等。

  Q:說一下static的用法?
  A:簡單的說了一下static在區域性變數、全域性變數、類成員變數的不同作用。

  Q:如何防止重複引用標頭檔案?
  A:預編譯指令#ifndef和#endif,然後還說了一下#pragma once

  Q:說一下兩者的區別?
  A:#ifndef是C++支援的正式標準,可以對檔案或者程式碼塊進行檢查,根據巨集名判斷,防止重複包含,而#pragma once不是C++正式標準,防止物理意義上同一份檔案被多次編譯,效率高,相容性略差。可能答得不是很準確,但是面試官沒有提出異議,還算可以吧。

  Q:(遞過來一張紙)寫一下二分查詢
  A:這個挺簡單的,很快就寫好了。

  Q:寫一下快速排序
  A:也不難,回憶了一下快排的流程,然後寫出一個遞迴版的。面試官看了之後,問我能不能不用遞迴,然後我寫了一個基於迴圈的快排。

  Q:給你一個雙向連結串列,做一下連結串列逆置
  A:也挺簡單的,很快就寫完了,但是他似乎不滿意,因為我用了兩個臨時指標,分別指向一前一後,他讓我只用一個臨時指標,我想了想,其實也好做,畢竟是雙向的,想清楚關係之後,寫了出來。

  Q:(拿起簡歷,開始問專案)講一下你第一個專案吧?
  A:進入擅長領域,竊喜。按準備好的套路講了一下自己的專案,並適當展示了一下專案中的亮點。

  Q:專案中使用的這些演算法都是你自己獨立實現的嗎?
  A:大部分是OpenCV提供的API,一部分是自己獨立實現的。

  Q:那你說一下高斯金字塔吧
  A:大致講了一下影象金字塔的過程,下采樣和高斯濾波,以及這樣做的物理意義。感覺他其實並不懂這些, 只是確認這個專案是不是我做的,掌握的有多深。

  Q:談一談你專案中的FFMPEG轉碼演算法
  A:其實對這個演算法瞭解不算太深入,但是麻煩的是,面試官挺懂FFMPEG的,我大致說了一下轉碼流程,從讀視訊、解碼,轉碼,編碼,把整個流程說了一遍,包括其中大概呼叫了哪些函式,但是面試官並不滿意,他想讓我從原理上解釋轉碼演算法,而不是我呼叫了哪些FFMPE函式,這我就有點懵逼了,說我們專案的重點不是做轉碼的,只是為了視訊讀取的健壯性才使用了FFMPEG,blashblash解釋了一堆,目的是告訴面試官,這塊我真不熟,大佬你別問我了……

  Q: 那你們專案中視訊編碼是什麼?解釋一下這個格式有啥特點
  A:MJPEG和H.264,但我其實不是特別懂兩者的區別,只知道MJPEG的壓縮率不是很高,但相容性好,H.264適合網路流媒體的傳輸,等等……顯然面試官並不滿意,但也沒有繼續追問。可能他認為我既然做了這一塊,就應該掌握的更深入一點吧。
 
  然後一面算是結束了,過程也就20分鐘左右,感覺這個小哥哥比較看重基礎,以及對專案掌握的深度,然後問我有啥想問的沒,因為感覺他對FFMPEG特別看重,我就問他,VIVO的C++崗都是幹啥的,是否FFMPEG比較重要,他說具體看部門,不過FFMPEG確實會用到,主要是做基礎框架研究的。然後我還問,VIVO杭州招人多嗎?他說他是深圳的,深圳招人多一點,杭州不是很清楚,推薦我來深圳,工資會高一點(納尼?這算是認可我了?)。

二面

  一面結束之後去大廳等了不到5分鐘,就是二面了,二面是HR面,HR的小姐姐,特別好看(VIVO是看顏值招人的嗎?那我豈不是……)聊得內容挺常規的,先是問了一下在校履歷,平時在實驗室都是做什麼,專案經歷,做這個專案學到了什麼,如何看待加班……全程也就20分鐘吧。

  然後問我期望工作地點和薪資,我說杭州,她說杭州不怎麼招人,南京可以考慮嗎?我說我女朋友拿的杭州的offer,不太想去別的地方,結果HR小姐姐極力勸我去南京,說了一堆南京的好處……emmm,說好的推薦去深圳呢?我說,南京挺好的,我其實都行,回去跟我家老大請示一下,HR小姐姐噗嗤笑了,算是預設我同意調劑南京吧。

  值得一提的是,VIVO的HR面,真的挺仔細的,比如我簡歷上寫的是15年本科畢業,16年上的研究生,她問我這一年幹嘛去了,我說我最開始是選擇工作了,後來發現還是讀研好一點,就開始考研。然後她說,考上工大感覺怎樣,開心嗎?我說我是調劑過的,她就問一志願考的哪裡,我說T大。然後就緊接著問,為什麼會選擇T大,我說,當時是想著給自己一點挑戰吧,不過後來失敗了,然後又緊接著問研究生的經歷……感覺就像是人物訪談,每個細節都問的特別細。

Offer

  VIVO的offer發放的挺快的,我是9月16號參加的面試,20號晚上就拿到Offer郵件了,當時在做百度的線上筆試題,結果彈出來一個這個,嚇我一跳……給的白菜價,沒想到他們家是低base高年終的體系,13.5K每月,轉正之後開始算年終,24~30W的樣子,不高不低吧,意外的是,工作地點既不是深圳,也不是南京,他們還是給我安排到了杭州,挺開心的。

  VIVO不怎麼逼籤,我是9月20號拿到的Offer,雖然HR通知我們十一假期之後必須交三方,但實際上,一直拖到11月份,我才把三方給寄回去,這個考慮時間,真的挺充分了,點個贊。

  原本沒打算去的,但是後面,網易和阿里都相繼涼了,華為杭州把我調劑到了上海,海康和H3C這些又不太想去……其他稍微小一點的網際網路公司都沒有C++崗,聽VIVO的HR講杭研院主要是做拍照演算法和AI,感覺應該是演算法落地,或者是手機基礎框架研究,和我研究生階段的工作還挺搭的,於是最終選擇了VIVO杭州。