秋招總結分享,數據研發方向,阿里,網易,華爲等
作者:Skye_kh;
來源:牛客網
鏈接:https://www.nowcoder.com/discuss/144976
秋招總結
秋招結束了,從六七月份開始到十一月,從艱難的準備階段,到忙碌的面試奔波,感慨良多。我面的基本上都是杭州的公司,目前拿到的offer有,網易互娛、雷火、華爲、海康、拼多多、滴滴、51,大部分是數據研發崗位。寫個經驗總結,回饋牛客。
崗位選擇
在準備複習之前首先應該確定的是自己的崗位方向,然後再針對性地去尋找面經和資料複習。我當時可選的是數據挖掘算法和數據研發兩個方向,因爲不同的公司對崗位的具體要求有一些差別,導致我有些迷惑。我自身因爲工程和算法比賽都接觸過,但是在算法原理方面瞭解的還是比較少的,所以當時有一些退縮了,選擇了數據研發方向。其實機器學習的薪資在今年來看更誘人,從我的經歷來看我覺得也能找到不錯的工作。當然這都是後話,確定崗位之後就是怎麼準備了。
複習準備
我大概是從六月開始準備,剛開始最大的困難就是不知道該如何準備效果好。看到其它實驗室的同學年後就開始準備了,並且秋招的提前批七月左右就開始,很着急,其實現在想來,踏實複習纔是關鍵,不能因爲着急而導致知識點一知半解。大廠對基礎的要求相對來說更高,其次是自身的亮點。
面試中第一關一般都是手撕代碼,其實代碼題把劍指Offer過兩遍就能應付大多數面試算法了,因爲面試的時候不可能讓你寫很長的代碼。學有餘力去刷 leetcode。
其它知識點可以先把相應崗位的面經都保存下來,再去總結重要的知識點。知識點形成體系比較重要,可以畫個體系圖不斷回顧。比如,Java 的JVM部分,集合類部分,併發部分,分開整理形成知識體系。把自己保存的面經上的問題都準備一遍,其實面試就不虛了。
其它
暑期實習的經歷挺重要的,
但是我們實驗室不給實習比較可惜。
提前批的機會要把握好,也就是多一次機會。
大廠其實十一月份可能還有補招。
早點準備,將自身的亮點表現給面試官。
面經
分享自己面的幾個比較典型的面經。
螞蟻金服 數據研發 五面
螞蟻是我第一個面的,也是最可惜的一個,很後悔當時自己沒有準備好。大概面了五面,但是因爲當時複習不夠好,面試表現不夠好,沒能拿到 offer。 阿里都是電面,前後時間拉得也比較長。
一面
●自我介紹
●項目
●設計支付寶 APP 滑動條的推薦系統,算法,架構實現
●用戶軌跡如何獲取特徵,點擊條目 7-5-2-4 這種, word2vec 怎麼構建句子特徵
●GC
●Linux 10個進程10個線程,系統如何調度
●線程池,poolsize 5 , 進來第六個線程,會發生什麼
●Java 鎖機制,悲觀鎖、樂觀鎖
●數據結構題,青蛙跳臺階,二叉樹層序遍歷
二面
●天池比賽項目及思路,爲什麼選擇 XGBoost
●推薦系統是什麼,給完全不懂的人講一講 (按分類講各種算法)
●協同過濾的缺點,現在流行怎麼做 (協同過濾目前更多用於召回)
●講一講邏輯迴歸,原理及推導
●Synchronized。 鎖在操作系統級別的實現
●Java 中的併發包
●Linux 進程調度
●網絡相關協議
●Zookeeper 選舉算法,Paxos
●用命令行敲命令存儲一個文件到 HDFS 上,源碼級別是怎麼樣一個流程
●Linux 的基本命令,如何查看內存使用等
●動態規劃和分治法的區別
三面
●項目自己發揮,追問細節
●覺得自己是個怎樣的人,別人覺得自己怎樣
●有過比較大的挫折嗎
●自己做過最有成就感的事情
四面
●講一個項目
●項目中的細節追問(線上 A/BTest 怎麼做,對結果怎麼優化)
●項目中自己做的亮點
●一個環形鏈表裏面存數字,如何最快速度找到指定數字
●一個文件,裏面是英文小說,統計詞頻最高的兩個詞
●notify() 和 sleep() 的區別(應該問錯了,wait() 和 sleep() ),
●在源碼中哪裏看到過 (阻塞隊列)
●線程池,corePoolsize 5 ,max 200 ,什麼時候線程池中有10個線程
●阻塞隊列滿了,線程也超過 200 了 ,會發生什麼
●線程池實際怎麼用
●你有什麼要問我的嗎
●爲什麼沒去實習,是不是從現在到畢業都不能出去
五面
●自我介紹
●Github 庫做了什麼
●各個項目做了什麼
●Mapreduce Join
●Mapreduce shuffle
●遠程代碼題, 輸入一個 n , 求 1~n 中每個數字二進制位中 1 的個數
網易杭研 大數據開發
一面
●自我介紹
●Mapreduce 原理
●數據傾斜怎麼辦
●比如統計廣東省的記錄數據傾斜,怎麼自定義 partition ,代碼?(我覺得我說得挺清楚了,一定要代碼寫出來)
●推薦系統項目細節,角色,做了什麼
●華爲軟件精英挑戰賽,如何調參
●代碼,兩個集合取交集,怎麼最快
●字符串反向輸出,用遞歸實現
●知道什麼ETL工具
●dataX架構
二面
●自我介紹
●項目細節
●Mapreduce 原理
●splitsize 如何確定,算法
●數據傾斜怎麼辦
●無 shuffle 的 過程叫什麼
●大數據組件都知道哪些
●數據倉庫和數據庫的區別
●數據庫原理懂嗎
●數據庫範式知道嗎
●sql 題,按某列排序,並增加排序編號(說了 mysql 怎麼做,hive 有點忘了row_number沒說明白,可惜了)
●sql 題,一列從1到n順序編號,一列是各種類別,輸出某一類別編號是連續四個以上的數據行
●代碼題,兩個集合取交集....,有哪些做法
●平時有什麼愛好
網易雷火 數據挖掘
一面
●a += 4 和 a =a+4的區別,a是byte類型
●Integer 數據比較
●python 兩個列表合併去重排序(python 很久不敲,基本語法忘記很多了)說了下怎麼做。
●Linux 兩個文本不同的統計,刪除目錄文件,刪除重複行
●代碼 java 字符串反轉
二面
●推薦項目
●一條sql 外表是 gz格式壓縮,查詢會有幾個 map 幾個 reduce
●什麼壓縮格式解決gz不可分片問題
●集羣 mr任務分配到某個節點一直 timeout 什麼問題。 (網絡,防火牆問題)
●Github
三面
●推薦項目
●代碼 輸出連續數字和等於某個值的所有情況
●知道的算法
●LR 原理,爲什麼用極大似然
●隨機森林原理
●Bagging原理
●GBDT和XGBOOST區別
●比賽爲什麼選用XGBOOST
●Boosting
四面
●介紹自己,別說技術
●自己會給雷火帶來什麼收益
●自己最不能接受的狀態,會考慮離職的
●推薦系統的應用一堆扯
51 大數據開發
●項目細節,爲什麼用kylin,知道其他etl工具嗎
●sqoop和datax區別
●推薦項目數據量多大,日增多大
●搭建集羣碰到過什麼問題
●mapreduce 二次排序怎麼做
●mapreduce原理,調優做了什麼
●mapreduce比較慢,你認爲哪些地方可以優化
●hadoop 和spark的區別
●Hbase 知道什麼,和mysql的區別
●Hbase 支持事務嗎
●mysql事務隔離級別
●java常用集合
●hashmap 原理,resize過程
●hashmap 爲什麼會出現併發問題
●AQS
●java 的線程是用戶態還是內核態
●棧裏保存了什麼
●什麼情況棧溢出
●thread 棧多大
●jvm其他組成部分
●gc瞭解嗎 自己調優過嗎
●直接看代碼的?有沒有dump出來看日誌
●cms什麼時候發生stop the word
●垃圾收集算法
●Hadoop 生態還瞭解哪些組件
●two sum 問題,說怎麼做,不寫代碼
二面
●項目各種細節
●mapreduce 原理
●推薦系統算法瞭解哪些,商品推薦如何做
●協同過濾和聚類的區別
●基礎機器學習算法
●線上場景如何評估算法優劣
●個人優勢,遇到的挫折等等