宜信這邊我投遞的是技術研發中心的后臺開發崗位,它的筆試平臺和360用的是同一家,也是不支持Python的,我只好抓緊看看STL了,C++走起。
筆試
本來以為宜信做金融的,可能技術方面要求不是太高,再加上昨天360水水的筆試,對今天的宜信就大意了,結果沒想到宜信的編程題意外的難!選擇題倒是還好,雖然考的都是Java方面的,但是感覺挺簡單的,就面向對象啊什么的,也沒涉及Java特性的東西。但是編程題對我來說簡直難炸天了 ...
第一題:
我的做法:先求平均數,然后從左往右掃一遍,① 低于平均數的i往右向高于平均數的j索取,索取多了可以分給右邊需要的人k(k<=j),移動次數只記j-i;② 高于平均數的i往右給予低于平均數的j,j得到太多了也不管,留給下次掃描到了再管,這里記移動次數為j-i;
第二題:
這題跪慘了,如何求兩人洗某種顏色的衣服的最優時間,我沒思路,沒思路,哎,隱約覺得要動歸一下,但是也只是隱約而已。
第三題:
這題其實很簡單,別人一下就看出f(n)=f(n-1)+f(n-2)的思路了,我恍然大悟地覺得對呀,但是沒機會提交驗證了,當時做題的時候我也想到遞歸一下,怎么就不知道往這“走樓梯”的辦法類比呢,笨啊,還是太笨了,腦子不靈活。
一面
早來了半小時,等候的人超多,有點出乎意料,發現來面試的女生都比學校的好看。一面的面試官是個中年男人,已經有前額禿發的趨勢,自稱玩C++多年,現在已經轉Java了,從交談中看出應該還是有些水平的。
先談了項目,還是談的基于馬爾科夫鏈的加密流識別,他明確表示還挺感興趣。接下來問C++,他表示公司大面積用Java,C++用的極少,但看我的簡歷還是問問。用過boost庫嗎,上來一個問題就把我整蒙,尷尬表示沒有,他已經發現我的C++其實不咋樣啊,之后關于C++的問題還有內存管理,釋放內存的幾種方式(手動delete,析構,還有什么嗎)。對了,他在翻看我筆試代碼的時候發現我的內存沒有釋放,日了狗了,這都被發現,扣分了扣分了。
手寫一題代碼,給定一個數組如[1,4,3,7,9,8,12,6],求其中能構成max(數組)+1的組合,例如這題的max+1=12+1=13,而能夠的有[1,12],[4,9],[7,6]。我說了兩種O(N*N)的解法,然后提出一種O(NlogN)的基于快速排序后頭尾雙指針的解法,他表示OK,那就寫出來吧,用Java寫,我表示不熟悉,結果還是用Python寫出來。不過他表示還有更快速的方法,我暫時沒有想出來。
最后問我,如果int * p = &buffer,這個地址可能不對齊,你要將其手動對齊,該怎么辦。(當時我又蒙蔽了)
二面
二面很快,感覺不到20分鐘就結束了,感覺二面面的不好,問的都是我不太擅長的。首先看我簡歷以為我是做密碼的,問我中間人破解SSL的方法,我表示這真不知道。然后問我C中關于函數指針的定義,賦值,調用,然后是C++的多態。然后問我在繼承關系中,如果父類定義了一個變量a,派生類也定義了變量a,那么派生調用的a是派生自己的還是父類的?如果是自己的,那么要調用父類的,該怎么辦?
接下來是數據庫,問我用過UNION沒,哥,我沒用過啊,那SQL中的where in和where exists有什么區別呢,哥,我還是不知道啊,跪了啊,然后數據庫就跳過了。
最后問我eclipse中的jar是怎么管理的,哥,我也不會,我用的是IDEA,扯了一通maven,然后給他扯Spring MVC和MyBatis,(他說iBatis,而且他用eclipse,可見技術比較懷舊啊),我大概談了下Spring MVC下的MyBatis怎么和數據庫交互,他問了事務,我又含含糊糊了。他對我的總結是看起來用過很多,做過很多項目,但實際上都非常非常淺,暴露了這一大缺點后,他也不想和我再聊了,說他就是終面,然后就讓我走了。
總結來看,宜信的技術研發中心只能說一般,我能感受到的,面試流程安排和工作環境令人不是很滿意,正式秋招的時候關于宜信的話就去試試大數據中心好了,本次實習面試面到了很多我不會的,也算是很有收獲,起碼暴露了自己C++基礎不夠牢固,數據庫方面缺陷嚴重,接下來好好打打基礎。
收到offer
距離宜信面試正好過了一個月,收到電話發offer,不知是不是備胎轉正,4500一個月加300飯補,工作時間從上午9點半到下午6點半。主要考慮三點,第一實驗室能不能放實習現在又成了未知數,第二宜信技術研發中心地理位置離學校太遠,第三工作環境和氛圍給我的感覺不是太好,我傾向于拒掉這個offer。秋招想去宜信大數據試試,希望不要受到這次的影響才好。