Alex,想要改變世界的007程式員,
(背景:雙非本科計算機科班生,大三下)其實本來我是圖書館考(shui)研(jiao)選手,但是梟哥拿到了位元組的offer之后開始搞風搞雨,非要拉著我,催我投簡歷,再加上我跟一些要好的老師、學長、學姐聊了聊,她們也建議我如果有好的機會的話,對我來說還是去作業更適合,想了很久,決定試一試,成了就去實習,考研考個在職,不成也就安心待在圖書館了,省的天天胡想瞎想,

上周五在BOSS直聘上投的演算法實習生的簡歷,約的下周一晚上八點面試,周末就留在作業室一直在準備,周六主要就是搜集了一下網上的京東面試題,大概看了一下什么難度,然后自己做一遍,周日狂刷牛客京東演算法真題,練練手感,主要是也是想到時候萬一讓手撕code能遇到原題呢,周一再挖自己的簡歷,簡歷中的專案一定要足夠熟悉,而且要能夠清晰的表達,然后結合投遞崗位的職位描述、作業內容和任職資格,找一些相應內容的面試題,過了一遍,最后就靜等面試了,
放一波簡歷截圖:


簡歷很拉,大佬輕噴~
萬萬沒想到的是,一面是電面,七點四十的時候面試官拉了一個群,三個人,分別是我,一面面試官,二面面試官,就這么,簡單粗暴,哈哈,然后就開始了,
一面面試官感覺比較年輕友好,聊起來很輕松,一開始聊了大創專案,他好像是第九屆,我這應該是第十幾屆了(我好像算出來點什么),主要就聊了聊大創專案做了些什么,做的怎么樣,屬于正式面試前的閑聊,放松了一下,然后開始正式面試,首先問了我最擅長什么語言,我說Python,然后,我就懵了,開始問我Python相關的題目,我的天,忘了準備語言基礎這茬了,我還以為演算法實習生會直接開演算法么,總結教訓:對自己經常使用的語言要足夠熟悉,
語言基礎的所有的問題記不太清楚了,基本上都還算簡單,憑之前的印象都能答出來,有一題印象深刻:“你對多執行緒有什么理解么?”,我以為是問我關于行程、執行緒、協程的理解,然后開始講作業系統,磕磕絆絆講的也不是很好,講完之后面試官來了一句:“我其實想讓你說的是Python里的多執行緒跟其它語言有什么區別?”,

我靠這題我會啊,GIL鎖,當時學的時候花了大半天的時間研究,終于研究明白了,可惜啊可惜,沒有說出來的機會了,面試官直接下一題,總結教訓:如果面試官提出的問題模棱兩可,一定要先提問把面試官實際想問的問題確定,這其實也是面試的一部分,看你能不能把一個抽象的問題具體化,然后再解決它,不要怕提問,總比答非所問好多了,

語言基礎問完了之后開始問演算法,這方面問的倒挺多,從基本的資料結構到一些基本演算法都有涉及,感謝左神演算法,看完他的初級班和中級班之后答起來基本無障礙,印象比較深刻的是面試官問:“二叉樹的遍歷了解過么?”,我:“一般來說比較常見的是前、中、后序遍歷這三種,另外在一些特殊情況下也會用到借助于BFS的層序遍歷,首先說前、中、后序遍歷,它的遞回版本需要了解遞回序這個概念,……”,后面還有巴拉巴拉一大堆我正打算吹呢,面試官打斷我說:“好了好了,我知道了,下一題,什么是紅黑樹?”,哈哈哈,我感覺面試官可能也是看過左神演算法,然后,臥槽,紅黑樹,大哥我錯了,

演算法這部分就一道紅黑樹沒答上來,其它感覺都回答的很好,可惜因為是電面沒有手撕code,然后就開始問AI方面的問題,一開始是一些比較概念的基礎題,有一題印象特別深刻,BN層和dropout層的順序誰前誰后?這題給我問懵了,因為我一般寫網路模型的時候都是對著paper的結構圖直接寫code,也沒怎么想過順序的問題,印象中應該是dropout要在BN層后面吧,但是為啥?沒研究過,回答的不太好,總結教訓:多問為什么,突破常規思維,不要一昧的接受,我簡歷上寫了一個用Yolo-V5做的手勢實時識別與人機互動控制的專案,然后就開始聊Yolo這方面,感覺面試官可能不是CV這個方向的,所以只了解到Yolo-V3,然后我就開始憑借之前做專案的時候搜集的各種關于Yolo的資料開始吹,甚至連Yolo之父為啥退出CV界以及后面V4和V5版本的發展都聊了,所以對自己簡歷中的專案一定要足夠了解,包括為什么選擇這個模型,這個模型的數學原理是什么,模型結構怎么設計,實驗結果的分析等等,都要了如指掌,這樣跟面試官聊的時候才能有底氣(比如我二面就因為這個直接垮掉),AI部分主要其實就是Yolo,后面引申出來RCNN、Anchor和FPN方面的內容,這個沒怎么用過,回答的不是很好,感謝面試官手下留情,沒有深問,

最后給了個實際業務題,估計是我簡歷中有關于前后端的專案,讓設計一個模型訓練平臺,主要功能就是后端可以訓練一些模型,然后前端可以顯示訓練效果和記錄,這道題其實就沒有什么正確答案了,主要看的就是業務能力吧,我就把我管用的套路,后端Django+RestFramework+MySql,AI框架選擇了PyTorch,服務器Linux、Docker也涉及到了,主要是通過Docker容器技術支持多模型同時訓練,并且通過Django-rq能夠實時獲取模型的訓練程序并記錄在資料庫,在前后端互動方面遵循Restful規范,后端需要提供相應的查詢介面以及下載功能(django-sendfile),前端通過Vue+Element-UI實作,結合G6圖可視化引擎和G2圖形化語法讓顯示效果更友好,具體的UI設計倒沒有說,總的來說最后這題基本上把我所有知道的、用過的、沒用過的、見過的技術全說上去了,
一面整體感徑訓行,大概花了40多分鐘,面完之后面試官說還可以,想直接給我推二面,問我九點半的時候有沒有空,我尋思干脆直接一晚上搞完吧,就答應了,中間半個小時,跟作業室的同學吹了會牛逼、給一面面試官發了封感謝信、搜了一下一面沒答上來的題目,然后就等二面了,
二面的面試官聽聲音感覺是個牛逼的大佬,估計應該是個leader吧,一開始開了個小玩笑,因為我在簡歷上寫了996無壓力,然后二面正好是晚上九點多快十點了,然后面試官說了句:“看來確實996無壓力”,感覺兩輪面試官都特別友好,一開始會稍微放松一下,也僅僅是一開始,

二面面試官說一面面試官給了我很高的分數,這一下讓我有點有點懵,感覺我是菜雞我不配,果然,二面就被技術大佬制裁了,還是那句話,寫在簡歷中的專案一定要足夠熟悉,二面挑了個我最近剛做的專案,LSTM+PPO做量化交易策略,估計是這個專案正好跟部門業務掛鉤吧,但是,555,這個專案實際上是我還在邊學邊做的,沒有Yolo那個專案掌握的那么熟練,早知道就不寫了,LSTM方面的答的還行,主要原理講了一下,重點在輸入門、遺忘門和輸出門這里,到了PPO,直接死亡現場,簡單介紹還行,但是涉及更深的層次就拉垮了,尤其是在策略更新時的截斷操作,胡言亂語不知道自己在說什么,重要的事情說三遍:寫在簡歷中的專案一定要掌握!寫在簡歷中的專案一定要掌握!!寫在簡歷中的專案一定要掌握!!!
簡歷中的專案問完了之后給了一道業務題,怎么判斷要不要給一個人開通白條?一開始有點懵,稍微整理了一下思路之后,主要還是根據一個人消費歷史評估一個消費能力,然后要求用戶實名認證獲得經濟水平,最后要求提供經濟收入證明保證用戶具有還款能力,綜合考量各方面的指標最后做一個分類問題,用SVM也好,邏輯回歸也好,結合多個模型最后給出一個判斷,
二面最后給了一個演算法題,有兩個檔案,A檔案里面是大量的key,B檔案里面是大量的key-value,篩選出B中所有key在A中的key-value,檔案都很大,不可能全部讀到記憶體中,這題一開始答的不好,后來在面試官的引導下逐漸答出來了,將A中的檔案按照某種共同屬性,比如具有同樣的前綴分塊存盤,然后讀取B的檔案內容,根據key的屬性去不同的塊中查找,
總得來說,這次面試還算順利,前幾天剛跟面試官聯系,說已經開始申請offer了,大概兩到三周可以完成,期待~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/272884.html
標籤:其他
