久久影视这里只有精品国产,激情五月婷婷在线,久久免费视频二区,最新99国产小视频

        • 回答數(shù)

          4

        • 瀏覽數(shù)

          104

        木匠森林
        首頁(yè) > 工程師考試 > 算法工程師面試培訓(xùn)

        4個(gè)回答 默認(rèn)排序
        • 默認(rèn)排序
        • 按時(shí)間排序

        木木停留

        已采納

        集靈臺(tái)二首·其一(張祜)

        算法工程師面試培訓(xùn)

        80 評(píng)論(15)

        梧桐無(wú)羽

        說(shuō)到算法崗位,現(xiàn)在網(wǎng)上的第一反應(yīng)可能就是內(nèi)卷,算法崗位也號(hào)稱(chēng)是內(nèi)卷最嚴(yán)重的崗位。針對(duì)這個(gè)問(wèn)題,其實(shí)之前我也有寫(xiě)過(guò)相關(guān)的文章。這個(gè)崗位競(jìng)爭(zhēng)激烈不假,但我個(gè)人覺(jué)得稱(chēng)作內(nèi)卷有些過(guò)了。就我個(gè)人的感覺(jué),這幾年的一個(gè)大趨勢(shì)是從迷茫走向清晰。

        早在2015年我在阿里媽媽實(shí)習(xí)的時(shí)候,那個(gè)時(shí)候我覺(jué)得其實(shí)對(duì)于算法工程師這個(gè)崗位的招聘要求甚至包括工作內(nèi)容其實(shí)業(yè)內(nèi)是沒(méi)有一個(gè)統(tǒng)一的標(biāo)準(zhǔn)的??梢哉J(rèn)為包括各大公司其實(shí)對(duì)這個(gè)崗位具體的工作內(nèi)容以及需要的候選人的能力要求都不太一致,不同的面試官有不同的風(fēng)格,也有不同的標(biāo)準(zhǔn)。

        我舉幾個(gè)例子,第一個(gè)例子是我當(dāng)初實(shí)習(xí)面試的時(shí)候,因?yàn)槭潜究粕拇_對(duì)機(jī)器學(xué)習(xí)這個(gè)領(lǐng)域了解非常非常少,可以說(shuō)是幾乎沒(méi)有。但是我依然通過(guò)了,通過(guò)的原因也很簡(jiǎn)單,因?yàn)橛衋cm的獲獎(jiǎng)背景,面試的過(guò)程當(dāng)中主要也都是一些算法題,都還算是答得不錯(cuò)。但是在交叉面試的時(shí)候,一位另一個(gè)部門(mén)的總監(jiān)就問(wèn)我有沒(méi)有這塊的經(jīng)驗(yàn)?我很明確地說(shuō)了,沒(méi)有,但是我愿意學(xué)。

        接著他告訴我,算法工程師的工作內(nèi)容主要和機(jī)器學(xué)習(xí)相關(guān),因此機(jī)器學(xué)習(xí)是基本的。當(dāng)時(shí)我就覺(jué)得我涼了,然而很意外地是還是通過(guò)了面試。

        另外一個(gè)例子是當(dāng)時(shí)的一個(gè)小伙伴,他在最后轉(zhuǎn)正面試的時(shí)候被要求用R語(yǔ)言寫(xiě)了一個(gè)樹(shù)模型。具體是什么模型我不記得了,我只知道當(dāng)時(shí)我還不會(huì),所以沒(méi)記住名字。但是了解行情的都知道,現(xiàn)在工業(yè)界應(yīng)該已經(jīng)基本上沒(méi)有使用R語(yǔ)言的了。不論是當(dāng)時(shí)的面試官對(duì)R語(yǔ)言比較熟悉,還是當(dāng)時(shí)他的團(tuán)隊(duì)里用的都是R語(yǔ)言,都可以說(shuō)明其實(shí)整個(gè)阿里內(nèi)部當(dāng)時(shí)對(duì)于算法工程師是沒(méi)有統(tǒng)一標(biāo)準(zhǔn)的。實(shí)際上也的確如此,當(dāng)時(shí)還有很多算法工程師和數(shù)據(jù)挖掘工程師的title混為一談的現(xiàn)象。

        我不太清楚現(xiàn)在校招算法崗位會(huì)問(wèn)一些什么,但是就我的了解,機(jī)器學(xué)習(xí)的模型原理以及之前的一些使用經(jīng)驗(yàn)肯定是跑不了的。這兩塊的技能沒(méi)有,只靠acm的獎(jiǎng)項(xiàng)以及算法能力想要通過(guò)面試估計(jì)很難,更不要說(shuō)是阿里媽媽這樣的核心部門(mén)了。

        從這兩個(gè)例子可以看出來(lái),5年之前業(yè)內(nèi)還是比較迷茫的,但是現(xiàn)在越來(lái)越清楚了,這個(gè)崗位究竟是做什么的,需要工程師有什么樣的能力。并且我覺(jué)得以后應(yīng)該會(huì)越來(lái)越清晰,現(xiàn)在可能還是會(huì)有一些個(gè)別的部門(mén)或者是上層的架構(gòu)師對(duì)算法這塊不是非常了解。比如工程出身的tech leader帶算法團(tuán)隊(duì)這樣的例子還不少見(jiàn),但以后應(yīng)該會(huì)越來(lái)越少。

        所謂沒(méi)有985,沒(méi)有名校碩士,沒(méi)有paper去面試大公司的算法崗位就是炮灰就是送的說(shuō)法,有一定的道理。但是我們不能只看現(xiàn)象胡亂總結(jié),仔細(xì)分析背后的原因其實(shí)是對(duì)算法工程師的要求越來(lái)越明確。但是要求雖然清晰,也還有問(wèn)題,問(wèn)題就是這些能力不是非常方便在面試當(dāng)中體現(xiàn),對(duì)于校招社招都有這樣的問(wèn)題。

        社招這個(gè)問(wèn)題會(huì)好些,看之前的經(jīng)歷就看得出來(lái),校招這個(gè)問(wèn)題相對(duì)比較嚴(yán)重,我們?cè)趺粗滥銛?shù)據(jù)處理能力怎么樣?你對(duì)模型的細(xì)節(jié)了解多少?怎么樣判斷你來(lái)了之后能不能hold住這一塊事情?

        正因?yàn)橛辛诉@樣的問(wèn)題,所以很多面試官或者是hr才不得不抬高硬性要求。招一些基礎(chǔ)好、背景出色人聰明的學(xué)生進(jìn)來(lái)總沒(méi)錯(cuò),即使不對(duì)口,也可以現(xiàn)學(xué)。

        招聘邏輯

        接下來(lái)和大家聊聊各種公司的招聘邏輯,這里面我也發(fā)現(xiàn)了一些規(guī)律。

        這里面的規(guī)律就是越是小廠越務(wù)實(shí),越是大廠越虛。這其實(shí)也很好理解,因?yàn)樾S的資金和預(yù)算都有限,所有崗位的人頭都要精打細(xì)算,能不多招絕不多招。一旦招了一定是有具體的用處的,比如某一塊事情人手不夠,或者是某個(gè)問(wèn)題沒(méi)有人解決,必須要招人。在這種情況下,小廠的要求非常明確,就是技術(shù)棧越匹配越好。也就是你會(huì)的東西和他們用的東西越匹配越好,越匹配你上手和學(xué)習(xí)的成本越低,來(lái)了直接能干活的最好。

        大廠則不然,越大的廠越不然。原因也簡(jiǎn)單,大廠招聘的目的除了滿(mǎn)足人力需求之外,還有其他的意義就是人才儲(chǔ)備。比如清華姚班一年畢業(yè)30人,這30人如果都去了騰訊,會(huì)給騰訊的發(fā)展起到多大的幫助?如果你是老馬你能接受這樣的事情嗎?肯定不行,因?yàn)閮?yōu)秀的人才的數(shù)量是有限的,雖然競(jìng)爭(zhēng)的人多,但是頭部用戶(hù)一直就那么多。其他公司多招走了一些,留給你們公司的就少一些。身為大公司肯定是會(huì)努力爭(zhēng)取的,包括招聘實(shí)習(xí)生什么的,其實(shí)本質(zhì)上的目的都是招聘人才進(jìn)行儲(chǔ)備。

        某種程度上來(lái)說(shuō),大公司把一個(gè)優(yōu)秀的學(xué)生培養(yǎng)成優(yōu)秀工程師花費(fèi)的代價(jià)要小于去市場(chǎng)上招聘一個(gè)同樣優(yōu)秀的工程師的代價(jià)。算法崗位當(dāng)中至少有80%以上的頂級(jí)人才都在大公司手里攥著,廣大二線、三線的小公司爭(zhēng)搶剩下的20%。大公司想要在市場(chǎng)上招聘一個(gè)優(yōu)秀的工程師是非常難的,遠(yuǎn)遠(yuǎn)比大家想的要難。這樣的人手里往往不缺offer,加上大公司里層級(jí)以及待遇的限制,想要搶得過(guò)那些財(cái)大氣粗的二線公司真的不容易。

        所以面試小公司的核心邏輯就是對(duì)口,他們需要的能力你有,他們需要的技術(shù)你會(huì),就行了,你搞出很多花里胡哨的東西來(lái)其實(shí)沒(méi)什么用。有些小公司的面試官連acm是什么都不知道,你和他說(shuō)你是亞洲區(qū)的銀牌有用么?

        大公司的招聘要求就比較瑣碎了,一般來(lái)說(shuō)比較看重基礎(chǔ)。這里的基礎(chǔ)并不僅僅是基礎(chǔ)知識(shí),準(zhǔn)確地說(shuō)是基礎(chǔ)能力。比如數(shù)據(jù)結(jié)構(gòu)和算法的能力,比如思維的靈活度,也就是給你出個(gè)算法題,看你能不能靈活地做出來(lái)。再比如機(jī)器學(xué)習(xí)的基礎(chǔ),模型的一些基礎(chǔ)原理等等。

        除了基礎(chǔ)之外另外一個(gè)很重要的是你的軟實(shí)力,比如你的表達(dá)能力,你的情商,遇到困難的時(shí)候的反應(yīng)。比如遇到難題你有沒(méi)有一個(gè)清晰的思考過(guò)程,簡(jiǎn)單嘗試了一下就放棄了還是愿意不停地努力。還有你的性格,比如你是服從性的還是比較有主見(jiàn)的,如果你很有個(gè)性,老板可能會(huì)覺(jué)得你比較難管,用術(shù)語(yǔ)來(lái)說(shuō)就是管理成本有點(diǎn)高,這也會(huì)讓面試官打退堂鼓。

        還有一點(diǎn)常說(shuō)的是潛力,潛力這是一個(gè)很虛的概念,完全是面試官的主觀感受,很難有實(shí)際的支撐。根據(jù)我的理解大概是這么幾個(gè)方面,一個(gè)是智商,聰明的人學(xué)東西快,潛力高,這個(gè)是毋庸置疑的。即使你很多東西不會(huì),如果你能讓面試官覺(jué)得你能很快學(xué)會(huì),這些不是問(wèn)題,那么這就不是一個(gè)減分項(xiàng)。

        還有年齡,比如中間經(jīng)過(guò)了一些曲折浪費(fèi)了幾年比其他應(yīng)聘者年長(zhǎng)很多(兩歲以上),可能會(huì)讓面試官覺(jué)得你潛力折損。再比如你過(guò)去的一些經(jīng)歷,比如你在某個(gè)領(lǐng)域堅(jiān)韌不拔從0做起,成長(zhǎng)迅速,也會(huì)讓面試官覺(jué)得你潛力不錯(cuò)。

        這樣說(shuō)起來(lái)實(shí)踐的能力反而是加分項(xiàng)而不是主要的了,這也有一定的道理。因?yàn)閷?duì)于大公司而言,整個(gè)技術(shù)架構(gòu)往往都是自己獨(dú)立建的,和外面的都不一樣。也就是說(shuō)除非之前在里面待過(guò)的,否則幾乎找不到技術(shù)棧完全懂的。再加上校招生原本實(shí)戰(zhàn)經(jīng)驗(yàn)就要少一些,相比于招一個(gè)立即能上手的,更加傾向于能夠快速學(xué)會(huì)的。

        核心能力

        由于我已經(jīng)很久沒(méi)有接觸校招了,所以也很難說(shuō)校招面試應(yīng)該怎么樣準(zhǔn)備,只能說(shuō)說(shuō)如果是我來(lái)招聘,我會(huì)喜歡什么樣的學(xué)生。也可以理解成我理解的一個(gè)合格優(yōu)秀的算法工程師應(yīng)該有的能力。

        模型理解

        算法工程師和模型打交道,那么理解模型是必須的。其實(shí)不用說(shuō)每一個(gè)模型都精通,這沒(méi)有必要,面試的時(shí)候問(wèn)的模型也不一定用得到。但更多地是看重這個(gè)人在學(xué)習(xí)的時(shí)候的習(xí)慣,他是淺嘗輒止呢,還是會(huì)刨根究底,究竟能夠?qū)W到怎樣的地步。

        在實(shí)際的工作當(dāng)中我們可能會(huì)面臨各種各樣的情況,比如說(shuō)新加了特征但是沒(méi)有效果,比如升級(jí)了模型效果反而變差了等等,這些情況都是有可能發(fā)生的。當(dāng)我們遇到這些情況之后,需要我們根據(jù)已知的信息來(lái)推理和猜測(cè)導(dǎo)致的原因從而針對(duì)性的采取相應(yīng)的手段。因此這就需要我們對(duì)當(dāng)前的模型有比較深入地了解,否則推導(dǎo)原因做出改進(jìn)也就無(wú)從談起。

        所以面試的時(shí)候問(wèn)起哪個(gè)模型都不重要,重要的是你能不能體現(xiàn)出你有過(guò)深入的研究和理解。

        數(shù)據(jù)分析

        算法工程師一直和數(shù)據(jù)打交道,那么分析數(shù)據(jù)、清洗數(shù)據(jù)、做數(shù)據(jù)的能力也必不可少。說(shuō)起來(lái)簡(jiǎn)單的數(shù)據(jù)分析,這當(dāng)中其實(shí)牽扯很多,簡(jiǎn)單來(lái)說(shuō)至少有兩個(gè)關(guān)鍵點(diǎn)。

        第一個(gè)關(guān)鍵點(diǎn)是處理數(shù)據(jù)的能力,比如SQL、hive、spark、MapReduce這些常用的數(shù)據(jù)處理的工具會(huì)不會(huì),會(huì)多少?是一個(gè)都不會(huì)呢,還是至少會(huì)一點(diǎn)。由于各個(gè)公司的技術(shù)棧不同,一般不會(huì)抱著候選人必須剛好會(huì)和我們一樣的期待去招人,但是候選人如果一無(wú)所知肯定也是不行的。由于學(xué)生時(shí)代其實(shí)很少接觸這種實(shí)踐的內(nèi)容,很多人對(duì)這些都一無(wú)所知,如果你會(huì)一兩個(gè),其實(shí)就是加分項(xiàng)。

        第二個(gè)關(guān)鍵點(diǎn)是對(duì)數(shù)據(jù)的理解力,舉個(gè)簡(jiǎn)單的例子,比如說(shuō)現(xiàn)在的樣本訓(xùn)練了模型之后效果不好,我們要分析它的原因,你該怎么下手?這個(gè)問(wèn)題日常當(dāng)中經(jīng)常遇到,也非常考驗(yàn)算法工程師對(duì)數(shù)據(jù)的分析能力以及他的經(jīng)驗(yàn)。數(shù)據(jù)是水,模型是船,我們要把船駛向遠(yuǎn)方,只懂船只構(gòu)造是不行的,還需要對(duì)水文、天象也有了解。這樣才能從數(shù)據(jù)當(dāng)中捕捉到trick,對(duì)一些現(xiàn)象有更深入的看法和理解。

        工程能力

        雖然是算法工程師,但是并不代表工程能力不重要,相反工程能力也很重要。當(dāng)然這往往不會(huì)成為招聘的硬性指標(biāo), 比如考察你之前做過(guò)什么工程項(xiàng)目之類(lèi)的。但是會(huì)在你的代碼測(cè)試環(huán)節(jié)有所體現(xiàn),你的代碼風(fēng)格,你的編碼能力都是你面試的考察點(diǎn)之一。

        并不只是在面試當(dāng)中如此,在實(shí)際工作當(dāng)中,工程能力也很關(guān)鍵。往小了說(shuō)可以開(kāi)發(fā)一些工具、腳本方便自己或者是團(tuán)隊(duì)當(dāng)中其他人的日常工作,往大了說(shuō),你也可以成為團(tuán)隊(duì)當(dāng)中的開(kāi)發(fā)擔(dān)當(dāng),負(fù)責(zé)其團(tuán)隊(duì)當(dāng)中最工程的工作。比如說(shuō)復(fù)現(xiàn)一篇paper,或者是從頭擼一個(gè)模型。這其實(shí)也是一種差異化競(jìng)爭(zhēng)的手段,你合理地負(fù)擔(dān)起別人負(fù)擔(dān)不了的工作,那么自然就會(huì)成為你的業(yè)績(jī)。

        時(shí)代在變化,行業(yè)在發(fā)展,如今的校招會(huì)問(wèn)些什么早已經(jīng)和當(dāng)年不同了。但不管怎么說(shuō),這個(gè)崗位以及面試官對(duì)于人才的核心訴求幾乎是沒(méi)有變過(guò)的,我們從核心出發(fā)去構(gòu)建簡(jiǎn)歷、準(zhǔn)備面試,相信一定可以有所收獲。

        274 評(píng)論(10)

        A田欣團(tuán)隊(duì)

        那你得有各種專(zhuān)業(yè)的證書(shū),然后再去面試的話,會(huì)成功率大

        356 評(píng)論(14)

        粉紅豬大大

        算法是比較復(fù)雜又基礎(chǔ)的學(xué)科,每個(gè)學(xué)編程的人都會(huì)學(xué)習(xí)大量的算法。而根據(jù)統(tǒng)計(jì),以下這18個(gè)問(wèn)題是面試中最容易遇到的,本文給出了一些基本答案,供算法方向工程師或?qū)Υ烁信d趣的程序員參考。1)請(qǐng)簡(jiǎn)單解釋算法是什么?算法是一個(gè)定義良好的計(jì)算過(guò)程,它將一些值作為輸入并產(chǎn)生相應(yīng)的輸出值。簡(jiǎn)單來(lái)說(shuō),它是將輸入轉(zhuǎn)換為輸出的一系列計(jì)算步驟。2)解釋什么是快速排序算法?快速排序算法能夠快速排序列表或查詢(xún)。它基于分割交換排序的原則,這種類(lèi)型的算法占用空間較小,它將待排序列表分為三個(gè)主要部分:·小于Pivot的元素·樞軸元素Pivot(選定的比較值)·大于Pivot的元素3)解釋算法的時(shí)間復(fù)雜度?算法的時(shí)間復(fù)雜度表示程序運(yùn)行完成所需的總時(shí)間,它通常用大O表示法來(lái)表示。4)請(qǐng)問(wèn)用于時(shí)間復(fù)雜度的符號(hào)類(lèi)型是什么?用于時(shí)間復(fù)雜度的符號(hào)類(lèi)型包括:·Big Oh:它表示小于或等于目標(biāo)多項(xiàng)式·Big Omega:它表示大于或等于目標(biāo)多項(xiàng)式·Big Theta:它表示與目標(biāo)多項(xiàng)式相等·Little Oh:它表示小于目標(biāo)多項(xiàng)式·Little Omega:它表示大于目標(biāo)多項(xiàng)式5)解釋二分法檢索如何工作?在二分法檢索中,我們先確定數(shù)組的中間位置,然后將要查找的值與數(shù)組中間位置的值進(jìn)行比較,若小于數(shù)組中間值,則要查找的值應(yīng)位于該中間值之前,依此類(lèi)推,不斷縮小查找范圍,直至得到最終結(jié)果。6)解釋是否可以使用二分法檢索鏈表?由于隨機(jī)訪問(wèn)在鏈表中是不可接受的,所以不可能到達(dá)O(1)時(shí)間的中間元素。因此,對(duì)于鏈表來(lái)說(shuō),二分法檢索是不可以的(對(duì)順序鏈表或排序后的鏈表是可以用的)。7)解釋什么是堆排序?堆排序可以看成是選擇排序的改進(jìn),它可以定義為基于比較的排序算法。它將其輸入劃分為未排序和排序的區(qū)域,通過(guò)不斷消除最小元素并將其移動(dòng)到排序區(qū)域來(lái)收縮未排序區(qū)域。8)說(shuō)明什么是Skip list?Skip list數(shù)據(jù)結(jié)構(gòu)化的方法,它允許算法在符號(hào)表或字典中搜索、刪除和插入元素。在Skip list中,每個(gè)元素由一個(gè)節(jié)點(diǎn)表示。搜索函數(shù)返回與key相關(guān)的值的內(nèi)容。插入操作將指定的鍵與新值相關(guān)聯(lián),刪除操作可刪除指定的鍵。9)解釋插入排序算法的空間復(fù)雜度是多少?插入排序是一種就地排序算法,這意味著它不需要額外的或僅需要少量的存儲(chǔ)空間。對(duì)于插入排序,它只需要將單個(gè)列表元素存儲(chǔ)在初始數(shù)據(jù)的外側(cè),從而使空間復(fù)雜度為O(1)。10)解釋什么是“哈希算法”,它們用于什么?“哈希算法”是一個(gè)哈希函數(shù),它使用任意長(zhǎng)度的字符串,并將其減少為唯一的固定長(zhǎng)度字符串。它用于密碼有效性、消息和數(shù)據(jù)完整性以及許多其他加密系統(tǒng)。11)解釋如何查找鏈表是否有循環(huán)?要知道鏈表是否有循環(huán),我們將采用兩個(gè)指針的方法。如果保留兩個(gè)指針,并且在處理兩個(gè)節(jié)點(diǎn)之后增加一個(gè)指針,并且在處理每個(gè)節(jié)點(diǎn)之后,遇到指針指向同一個(gè)節(jié)點(diǎn)的情況,這只有在鏈表有循環(huán)時(shí)才會(huì)發(fā)生。12)解釋加密算法的工作原理?加密是將明文轉(zhuǎn)換為稱(chēng)為“密文”的密碼格式的過(guò)程。要轉(zhuǎn)換文本,算法使用一系列被稱(chēng)為“鍵”的位來(lái)進(jìn)行計(jì)算。密鑰越大,創(chuàng)建密文的潛在模式數(shù)越多。大多數(shù)加密算法使用長(zhǎng)度約為64到128位的固定輸入塊,而有些則使用流方法。13)列出一些常用的加密算法?一些常用的加密算法是:·3-way·Blowfish·CAST·CMEA·GOST·DES 和Triple DES·IDEA·LOKI等等14)解釋一個(gè)算法的最佳情況和最壞情況之間有什么區(qū)別?·最佳情況:算法的最佳情況解釋為算法執(zhí)行最佳的數(shù)據(jù)排列。例如,我們進(jìn)行二分法檢索,如果目標(biāo)值位于正在搜索的數(shù)據(jù)中心,則這就是最佳情況,最佳情況時(shí)間復(fù)雜度為0?!ぷ畈钋闆r:給定算法的最差輸入?yún)⒖肌@缈焖倥判?,如果選擇關(guān)鍵值的子列表的最大或最小元素,則會(huì)導(dǎo)致最差情況出現(xiàn),這將導(dǎo)致時(shí)間復(fù)雜度快速退化到O(n2)。15)解釋什么是基數(shù)排序算法?基數(shù)排序又稱(chēng)“桶子法”,是通過(guò)比較數(shù)字將其分配到不同的“桶里”來(lái)排序元素的。它是線性排序算法之一。16)解釋什么是遞歸算法?遞歸算法是一個(gè)解決復(fù)雜問(wèn)題的方法,將問(wèn)題分解成較小的子問(wèn)題,直到分解的足夠小,可以輕松解決問(wèn)題為止。通常,它涉及一個(gè)調(diào)用自身的函數(shù)。17)提到遞歸算法的三個(gè)定律是什么?所有遞歸算法必須遵循三個(gè)規(guī)律:·遞歸算法必須有一個(gè)基點(diǎn)·遞歸算法必須有一個(gè)趨向基點(diǎn)的狀態(tài)變化過(guò)程·遞歸算法必須自我調(diào)用18)解釋什么是冒泡排序算法?冒泡排序算法也稱(chēng)為下沉排序。在這種類(lèi)型的排序中,要排序的列表的相鄰元素之間互相比較。如果它們按順序排列錯(cuò)誤,將交換值并以正確的順序排列,直到最終結(jié)果“浮”出水面。滿(mǎn)意記得采納哈

        195 評(píng)論(13)

        相關(guān)問(wèn)答