我是怎樣面試大數(shù)據(jù)崗位的?
人住在有人間天堂之稱(chēng)的城市,6年多開(kāi)發(fā)閱歷,近來(lái)2年首要在做大數(shù)據(jù)有關(guān)的開(kāi)發(fā),近來(lái)思考換作業(yè),根本也只思考大數(shù)據(jù)有關(guān)崗位。目前新作業(yè)現(xiàn)已找好,但想共享一下近來(lái)面試的失利一些閱歷(成功的那些就不講了),吐槽吐槽,跟廣大吃瓜大眾共享一下過(guò)程中的閱歷心得,我的語(yǔ)文體育老師教的,還請(qǐng)大家莫怪。
1.公司:國(guó)內(nèi)知名電信運(yùn)營(yíng)商,其下面的大數(shù)據(jù)研究院,面兩輪
一面:技術(shù)人員面,先自我介紹,項(xiàng)目經(jīng)驗(yàn)相關(guān)介紹,問(wèn)比較細(xì),問(wèn)了一些Hadoop、HBase的問(wèn)題,JAVA基礎(chǔ),JVM內(nèi)存分配小于32G原因,G1和CMS對(duì)比,問(wèn)關(guān)系型數(shù)據(jù)庫(kù)事務(wù)級(jí)別,臟讀、幻讀意思。問(wèn)題回答情況:其中G1與CMS區(qū)別我只講了G1比CMS更耗CPU,但回收更快效果更好,兩者內(nèi)存劃分設(shè)計(jì)不同,G1更適合大內(nèi)存等,具體原因及細(xì)節(jié)沒(méi)講清;臟讀、幻讀只回答出跟數(shù)據(jù)庫(kù)事務(wù)有關(guān),面試當(dāng)時(shí)忘記了具體什么叫臟讀,什么叫幻讀,有點(diǎn)分不清。這兩個(gè)好像都沒(méi)有答好,然后面試官問(wèn)了我待遇期望。
二面:隔了4天,打電話(huà)過(guò)來(lái)讓我去二面,是部門(mén)經(jīng)理面,其也是做技術(shù)的。上來(lái)讓我自我介紹,然后就圍繞我講的開(kāi)始問(wèn)。講到之前項(xiàng)目中通過(guò)hbase的coprocessor的endpoint方式在服務(wù)端通過(guò)jni調(diào)用c++寫(xiě)的算法庫(kù)實(shí)現(xiàn)數(shù)據(jù)計(jì)算過(guò)濾功能,然后這位經(jīng)理就問(wèn)為什么你們圖像識(shí)別相關(guān)的CV算法不用JAVA寫(xiě),要用C++?我感覺(jué)有點(diǎn)懵逼,驚嘆怎么會(huì)有這么小白的問(wèn)題,但面上不能表現(xiàn)出來(lái),簡(jiǎn)單回答說(shuō)現(xiàn)在大部分算法都是通過(guò)C/C++寫(xiě)的,JAVA因?yàn)镴AVA是完全面向?qū)ο蟮奶匦约癹vm的關(guān)系,不適合做這么底層的事情,性能會(huì)有損耗。但似乎對(duì)方?jīng)]有理解和聽(tīng)懂,表情帶著不理解和質(zhì)疑,半天從他嘴里吐出一個(gè)結(jié)論:你們不用JAVA寫(xiě)算法是因?yàn)槟銈児靖闼惴菐腿酥挥肅/C++去搞。我當(dāng)時(shí)有點(diǎn)無(wú)語(yǔ),不知道該怎么跟這種對(duì)CV算法一無(wú)所知的人解釋?zhuān)ɑ蛟S我該說(shuō)很多算法庫(kù)都是C/C++寫(xiě)的,讓你用JAVA調(diào)用cuda的庫(kù)你累不累),但對(duì)方又接著問(wèn)下一個(gè)問(wèn)題,你怎么看待大數(shù)據(jù)領(lǐng)域接下來(lái)的發(fā)展趨勢(shì)?這個(gè)問(wèn)題我從來(lái)也沒(méi)想過(guò),腦袋里突然冒出前陣子參加的云棲大會(huì)有個(gè)分會(huì)上講得一些片段,糊里糊涂的瞎說(shuō)了幾句,說(shuō)spark很熱,使用的人非常多,后續(xù)也會(huì)集成流處理技術(shù)的一些新特性,另外說(shuō)現(xiàn)在很多集群完全部署在云上,將來(lái)網(wǎng)絡(luò)瓶頸解決有可能會(huì)往云上和云下自己管理的集群結(jié)合的這種方式發(fā)展。
這個(gè)答得的確不好,有點(diǎn)以偏概全了,對(duì)方顯然對(duì)我這個(gè)回答很不滿(mǎn)意,又問(wèn)你認(rèn)為磁盤(pán)IO性能會(huì)是瓶頸嗎?我回復(fù)說(shuō)這個(gè)是目前大數(shù)據(jù)領(lǐng)域集群的主要瓶頸,但這個(gè)問(wèn)題還好,應(yīng)該會(huì)被克服改善(我想說(shuō)可以把冷、熱數(shù)據(jù)分離,熱數(shù)據(jù)用速度快的SSD之類(lèi)存儲(chǔ),但我沒(méi)說(shuō)出來(lái))。對(duì)方的目光有點(diǎn)嘲弄的感覺(jué),不是很友好,后來(lái)就是問(wèn)一些期望待遇及讓我提問(wèn)之類(lèi)的環(huán)節(jié)。結(jié)果:over,好吧,無(wú)所謂了,安慰自己,本來(lái)就不是很想去那邊,因?yàn)樽约浩珜?shí)干型怕活太少(有點(diǎn)自虐),大概了解到的是對(duì)方的員工都過(guò)得偏安逸。
2.公司:某跨境電商企業(yè),為一些國(guó)家和地區(qū)的特色產(chǎn)品做電商服務(wù)。
先跟他們HR聊,HR人不錯(cuò),說(shuō)話(huà)比較客氣禮貌。接著是技術(shù)面,一共4個(gè)面試官,分4輪面。
第1個(gè)哥們?nèi)送Χ海茸屛易晕医榻B,看我簡(jiǎn)歷上寫(xiě)著對(duì)CV相關(guān)算法有一定了解,好像跑了題似開(kāi)始不斷問(wèn)我CV相關(guān)問(wèn)題,我跟他說(shuō)我工作早幾年自己研究過(guò)一段時(shí)間這方面的東西,但不是很擅長(zhǎng),很長(zhǎng)時(shí)間也沒(méi)研究了,只是相比沒(méi)接觸過(guò)這方面的人來(lái)說(shuō)要厲害一些,我也沒(méi)有研究過(guò)Spark?MLLib。不知道他哪根筋不對(duì),問(wèn)我你們公司深度學(xué)習(xí)相關(guān)的程序你有沒(méi)有研究過(guò),我說(shuō)沒(méi),他又問(wèn)我通常圖像識(shí)別的一些流程,我大概說(shuō)了一下,說(shuō)得不是很細(xì),他不停的惋惜的說(shuō)道,哎呀,你這相比其他人沒(méi)有特別的優(yōu)勢(shì)呀,你要是精通算法這方面再加上大數(shù)據(jù)就有亮點(diǎn)。我非常納悶,心想難道你們公司是傳說(shuō)中人工智能和大數(shù)據(jù)結(jié)合的非常好的公司嗎,莫非還是把無(wú)監(jiān)督機(jī)器學(xué)習(xí)自我優(yōu)化集成到你們的大數(shù)據(jù)系統(tǒng)中了嗎?不應(yīng)該呀,看你們的樣子好像還沒(méi)有那么NB,再說(shuō)現(xiàn)在搞大數(shù)據(jù)的有幾個(gè)會(huì)深度學(xué)習(xí)算法的,大多還是偏框架數(shù)據(jù)采集存儲(chǔ)挖掘方面的。
第2個(gè)哥們,是搞大數(shù)據(jù)相關(guān)的,不過(guò)他基本不像是在面試我,反而是在跟我吐槽他們公司,說(shuō)自己也是剛來(lái)了3個(gè)月,公司哪里流程不對(duì),自己意愿無(wú)法左右其他團(tuán)隊(duì)等,不過(guò)就簡(jiǎn)單跟我說(shuō)了這么一通就完了。
第3個(gè)哥們,具體是負(fù)責(zé)哪方面技術(shù)不是很清楚,感覺(jué)有點(diǎn)偏算法,就問(wèn)了我一個(gè)題目,像是腦筋急轉(zhuǎn)彎的編程題,題目是N個(gè)人圍成一圈,從第1個(gè)人開(kāi)始報(bào)數(shù),第一個(gè)人報(bào)1,第二個(gè)人報(bào)2,依次下去,報(bào)到數(shù)字X的人退出圈子,下面的人繼續(xù)報(bào),請(qǐng)寫(xiě)個(gè)程序問(wèn)最后留下的哪個(gè)人。我說(shuō)這好像有一個(gè)便捷的方法或公式能計(jì)算最后一個(gè)人,不過(guò)我腦子想不出來(lái),只能想一個(gè)簡(jiǎn)單的遞歸函數(shù)去實(shí)現(xiàn),他說(shuō)行,然后我就寫(xiě)了一個(gè),寫(xiě)得馬馬虎虎。
第4個(gè),是他們CTO面,這人陰沉板著一副臉,還沒(méi)說(shuō)話(huà)就感覺(jué)氣氛不對(duì),估計(jì)他覺(jué)得我看著比較年輕竟敢要那么高薪水,這種人的表情我也沒(méi)少見(jiàn)。語(yǔ)氣有點(diǎn)冷,先讓我自我介紹,我介紹的比較簡(jiǎn)單,然后又說(shuō)了一些項(xiàng)目中的情況,產(chǎn)品數(shù)據(jù)流之類(lèi)的。我們的產(chǎn)品的數(shù)據(jù)源是從ORACLE數(shù)據(jù)庫(kù)里面定時(shí)去拿的,這個(gè)模塊叫數(shù)據(jù)獲取服務(wù),流程很簡(jiǎn)單,就是定時(shí)讀取數(shù)據(jù)后交給另一個(gè)模塊,然后他說(shuō)問(wèn)怎么把這個(gè)數(shù)據(jù)獲取服務(wù)拆分成兩個(gè)模塊,我很無(wú)語(yǔ),說(shuō)這個(gè)就是這么簡(jiǎn)單的去拿數(shù)據(jù),沒(méi)有可以再拆分的,他說(shuō)就是要拆分成2個(gè)模塊,我表示不知道他腦袋里怎么想的,說(shuō)不知道。然后問(wèn)了我做的一些架構(gòu)經(jīng)驗(yàn),我說(shuō)自己設(shè)計(jì)寫(xiě)過(guò)過(guò)一個(gè)分布式實(shí)時(shí)計(jì)算框架,是借助了一個(gè)RPC中間件去實(shí)現(xiàn)的,整體各模塊有點(diǎn)類(lèi)似Hadoop?MapReduce,但更像Impala,不需要每次創(chuàng)建啟動(dòng)Job。
我跟他簡(jiǎn)單說(shuō)了一下這個(gè)RPC中間件,說(shuō)了一些優(yōu)缺點(diǎn),例如它的消息發(fā)布訂閱機(jī)制沒(méi)有像Kafka那樣有很好的持久化機(jī)制,程序退出了,這些消息就沒(méi)了。他一臉的質(zhì)疑,說(shuō)怎么可能沒(méi)有持久化,他問(wèn)我那個(gè)中間件的名字,然后百度去搜,搜出來(lái)某個(gè)帖子上有人說(shuō)的那個(gè)中間件的一些特性,講到一個(gè)模塊是專(zhuān)門(mén)做持久化的,然后他就拿來(lái)陰沉著臉質(zhì)疑我說(shuō),你看,這不是持久化嗎?我看他那樣表情,不想再多解釋什么,想說(shuō)艸尼瑪,有點(diǎn)常識(shí)好不,那帖子講得完全不是一個(gè)東西,那個(gè)持久化不是指消息發(fā)布訂閱的持久化,這中間件我好歹也用了小半年,你這么百度一搜就敢理直氣壯質(zhì)疑我,這水平真是CTO?結(jié)果:他們HR后來(lái)還打電話(huà)問(wèn)我跟CTO聊完感覺(jué)怎么樣,我感覺(jué)自己脾氣太好了,沒(méi)有抨擊一下那個(gè)CTO,就說(shuō)他不太清楚我做的東西。HR把我的期望壓得很低問(wèn)我愿不愿意去,我直接說(shuō)不去了。見(jiàn)過(guò)這么奇葩的CTO,就算加薪讓我去,我還得重新考慮。
3.公司:某視頻監(jiān)控安防行業(yè)的知名公司,面試其下的大數(shù)據(jù)研究院的一個(gè)大數(shù)據(jù)開(kāi)發(fā)崗位。
面試我的是他們的一個(gè)技術(shù)主管和另外一個(gè)技術(shù)人員,上來(lái)先自我介紹,詳細(xì)問(wèn)了一些項(xiàng)目相關(guān)的信息,然后問(wèn)了很多Hadoop、HBase的一些原理,項(xiàng)目中rowkey和分區(qū)設(shè)計(jì),問(wèn)了spark?streaming?并發(fā)度、createDirectStream和createDStream的區(qū)別,一段時(shí)間內(nèi)分別生成了幾個(gè)RDD,問(wèn)了Kafka分區(qū)各副本是如何在集群各臺(tái)機(jī)器上分布的等。有好幾個(gè)問(wèn)題沒(méi)回答清楚,感覺(jué)自己表現(xiàn)和準(zhǔn)備不是很好。結(jié)果:等通知。后來(lái)隔了好多天通知我去HR面,鑒于我當(dāng)時(shí)已經(jīng)收到其他offer,而且面試情況不是很好,估計(jì)會(huì)被壓offer,就委婉放棄了。
4.公司:國(guó)內(nèi)知名互聯(lián)網(wǎng)公司,Hadoop研發(fā)工程師崗位。
電話(huà)面試:面試了25分鐘左右,問(wèn)了很多大數(shù)據(jù)的基礎(chǔ)的技術(shù)問(wèn)題。如Map?Reduce相關(guān),Reduce時(shí)如何Sort,HBase優(yōu)缺點(diǎn),LSM相關(guān),前面基本上全部答出來(lái)了,但是最后問(wèn)到有沒(méi)有做過(guò)用Map?Reduce處理數(shù)據(jù)join,因?yàn)槲抑白龅捻?xiàng)目大數(shù)據(jù)框架比較簡(jiǎn)單,沒(méi)有多表關(guān)聯(lián)的查詢(xún),當(dāng)時(shí)對(duì)join概念也有點(diǎn)反應(yīng)不過(guò)來(lái),就說(shuō)沒(méi)做過(guò),然后又問(wèn)Map?Reduce?join有幾種方式,也沒(méi)答出來(lái)。結(jié)果:電面沒(méi)過(guò),就因?yàn)樽詈髢蓚€(gè)跟join有關(guān)的沒(méi)答出來(lái),就over了,盡管回去后惡補(bǔ)了這方面的知識(shí)。
5.公司:某做數(shù)據(jù)營(yíng)銷(xiāo)廣告大數(shù)據(jù)服務(wù)的公司,大數(shù)據(jù)研發(fā)崗位。
面試我是的他們做大數(shù)據(jù)架構(gòu)團(tuán)隊(duì)的主管,先自我介紹,講了一些項(xiàng)目的東西,然后對(duì)方覺(jué)得我之前做得項(xiàng)目大數(shù)據(jù)架構(gòu)比較簡(jiǎn)單,態(tài)度比較桀驁,然后又問(wèn)了一些JAVA基礎(chǔ)的東西,比如BIO與NIO特點(diǎn)與區(qū)別,問(wèn)我有沒(méi)有用過(guò),我答得不是很好,但應(yīng)該還過(guò)得去,然后又問(wèn)Concurrent包下面有哪些類(lèi),ConcurrentHashMap與HashMap區(qū)別等等。我感覺(jué)他有點(diǎn)輕視我,不是一個(gè)公正的眼光在問(wèn)我。然后又問(wèn)我Linux命令熟不熟,吧唧吧唧問(wèn)了好一些,我基本都答出來(lái)了。最后他冒出一句,我們現(xiàn)在這邊大數(shù)據(jù)開(kāi)發(fā)的崗位都基本招滿(mǎn)了,還缺一個(gè)大數(shù)據(jù)運(yùn)維的,除了部署維護(hù)大數(shù)據(jù)集群,還要寫(xiě)一下oracle的udf。我問(wèn)他這跟開(kāi)發(fā)工作關(guān)系密切嗎,他說(shuō)關(guān)系非常密切,只是他們大數(shù)據(jù)的研發(fā)都偏向于寫(xiě)代碼,不愿干這活。感情他是在逗我,QTMD。結(jié)果:然后就沒(méi)有然后了。
6.公司:某車(chē)貸互聯(lián)網(wǎng)金融公司,大數(shù)據(jù)研發(fā)崗位。
先是電話(huà)面試:面試了25分鐘左右,問(wèn)了Hadoop?Map?Reduce資源配置、ElasticSearch原理的一些問(wèn)題,問(wèn)得比較簡(jiǎn)單,基本都沒(méi)問(wèn)題,問(wèn)道Lucence如何實(shí)現(xiàn)對(duì)一個(gè)字段索引的時(shí)候,其實(shí)只要答倒排索引就好了,我比較二,把倒排索引怎么實(shí)現(xiàn)的大概講了一下,細(xì)節(jié)還講得不是很好。過(guò)了幾天,然后是直接面試,這次面的內(nèi)容還是比較簡(jiǎn)單,面試官人感覺(jué)不錯(cuò),就是有點(diǎn)二,怎么說(shuō)呢,理解能力不太好,比如問(wèn)我HBase?不同colomn?family跟關(guān)系型數(shù)據(jù)庫(kù)中的列的區(qū)別,我答說(shuō)colomn?family在物理上是獨(dú)立的store?file,可以只查詢(xún)某個(gè)column?faimily,而關(guān)系型數(shù)據(jù)庫(kù)一條記錄是整行數(shù)據(jù),查詢(xún)的時(shí)候,需要整行數(shù)據(jù)都讀出來(lái),然后吧唧吧唧又扯出好多。結(jié)果你猜怎么著,他說(shuō)我還是沒(méi)有回答到點(diǎn)上,說(shuō)column?family是面向列的。我有點(diǎn)無(wú)語(yǔ),我都把它怎么是面向列的底層存儲(chǔ)結(jié)構(gòu)都講出來(lái)了,你竟然還說(shuō)我沒(méi)答出來(lái)。問(wèn)了很多問(wèn)題都基本答出來(lái)了,就是面試官總覺(jué)得我沒(méi)有答到點(diǎn)上,說(shuō)自己貌似明白我的意思了,問(wèn)我是不是平常很少溝通問(wèn)題。
這種人真是活久見(jiàn),明明一個(gè)意思,我答得更詳細(xì)清楚,他非說(shuō)我沒(méi)答出那個(gè)標(biāo)準(zhǔn)答案名稱(chēng),面試這么多次,這種情況真是第一次碰到。最后問(wèn)了Hive相關(guān)的,問(wèn)我有沒(méi)有用過(guò),我說(shuō)沒(méi)用過(guò),但這種跟基本SQL差不多,問(wèn)Hadoop?Stream相關(guān),我也說(shuō)沒(méi)怎么用過(guò)。問(wèn)得問(wèn)題都比較淺,沒(méi)有什么深入的問(wèn)題。結(jié)果:后來(lái)HR通知我說(shuō)面試官覺(jué)得我技術(shù)深度不夠,哎,有點(diǎn)搞笑的,其他幾個(gè)面試下來(lái)要這么說(shuō)我完全沒(méi)意見(jiàn),但是這位面試官問(wèn)得那些問(wèn)題我基本都答出來(lái),而且他自己沒(méi)怎么問(wèn)我深入的問(wèn)題。算了,奇葩總是有的。
其他一些經(jīng)歷就不啰嗦講了,個(gè)人總結(jié)有幾點(diǎn)如下:
1.現(xiàn)在做大數(shù)據(jù)相關(guān)的公司和人還不是很多,相比常見(jiàn)的如JAVA崗位面試官的水平明顯要差很多,除了接觸的幾個(gè)知名點(diǎn)的大公司問(wèn)題環(huán)節(jié)比較規(guī)范,不過(guò)這種現(xiàn)象應(yīng)該接下來(lái)幾年會(huì)有所改善。
2.有些時(shí)候不是你技術(shù)不行,而是你的談吐表達(dá)能力給他們的印象,像我自己表達(dá)語(yǔ)言組織能力只能算中等可能還偏差,表達(dá)條理不好容易被pass。
3.感覺(jué)作業(yè)經(jīng)歷換崗少的并不比頻繁換崗的受待見(jiàn),像我6年只在2家公司待過(guò),大家都知道,在一家公司工資是很難漲上去的,而對(duì)方人力通常以你當(dāng)前薪資作為主要參閱,就算你的水平比一樣作業(yè)時(shí)間的人強(qiáng)許多,但對(duì)方公司不也許立刻了解到,你想要跟這些一樣作業(yè)年限人一樣水平的薪資也許都對(duì)比艱難,對(duì)方人力通常以此鎮(zhèn)壓你開(kāi)太高希望漲幅過(guò)大。
馬哥學(xué)習(xí)交流群
馬哥教育大數(shù)據(jù)學(xué)習(xí)群 481324949