今天已經(jīng)是11月初了,找工作的階段已經(jīng)進(jìn)入尾聲?;叵脒@半年的時(shí)間,充滿苦澀與艱辛,有幸拿到了幾個(gè)offer,騰訊和滴滴的SP,還有百度和華為的offer,秋招之路也畫上了一個(gè)圓滿的句號(hào)。下面分享一下自己這兩年的學(xué)習(xí)與近半年的求職路上的一些經(jīng)驗(yàn)與心得,供后來人參考,不一定是最好的方法,但是大家可以借鑒一下,結(jié)合自身情況,找出最適合自己的方法。
先說一下樓主的情況,本科普通一本,碩士西南985。研究生期間走上了機(jī)器學(xué)習(xí)算法學(xué)習(xí)之路。參加過天池幾個(gè)比賽,拿到的成績(jī)一般,有幾個(gè)前20的比賽。本篇文章我只想把我學(xué)習(xí)與求職路上最干貨的東西分享給大家,那些很細(xì)致的學(xué)習(xí)路線或者求職面經(jīng)有很多大神已經(jīng)分享啦,大家可以去看一看~~~。
寫在前面的話:你是否真的決定走算法這條路。
我當(dāng)時(shí)想法很簡(jiǎn)單,確實(shí)認(rèn)為算法,AI(機(jī)器學(xué)習(xí),深度學(xué)習(xí))這方面以后會(huì)有前途,也結(jié)合自身情況覺得可以去學(xué)一學(xué),當(dāng)真正走在路上時(shí)發(fā)現(xiàn)困難重重,曾經(jīng)一度認(rèn)為自己是不是不適合算法,但是沒有后悔,也沒有放棄,最后的結(jié)果還不錯(cuò)。但是在今天這一個(gè)時(shí)間節(jié)點(diǎn)上,很多人都想學(xué)算法,找算法的工作,我們就要重新審視這一個(gè)問題了,你真的適合嗎,你真的有能力做到全國(guó)競(jìng)爭(zhēng)者中的前百分之一嗎。如果對(duì)自己有信心,也覺得自己很有執(zhí)行力,并且能拿出每天8小時(shí),持續(xù)12個(gè)月以上的學(xué)習(xí)時(shí)間,那就去做。但是我們不得不承認(rèn)的一個(gè)事實(shí)就是現(xiàn)在想做算法的人實(shí)在太多,未來一段時(shí)間各個(gè)公司能給出算法崗位HC至少不會(huì)比今年少,但是競(jìng)爭(zhēng)人數(shù)會(huì)呈爆炸式增長(zhǎng),所以競(jìng)爭(zhēng)必然會(huì)增大。
以下的部分分為兩個(gè)部分:學(xué)習(xí)與求職路上的心得和經(jīng)驗(yàn)以及踩過的坑。
學(xué)習(xí)心得和經(jīng)驗(yàn)
一、理論知識(shí)要扎實(shí)
既然是走算法之路,最基本的算法理論都必須要熟悉,最常見的要做到如數(shù)家珍。常見的分類,聚類,優(yōu)化算法,深度學(xué)習(xí)等等的算法最好能推導(dǎo)(要想面試表現(xiàn)做到前百分之一必須要會(huì)推導(dǎo),是加分項(xiàng))。要融會(huì)貫通,對(duì)這些算法有自己的理解,面試的時(shí)候能說出自己與某某算法的一些心得和理解。比如面試官讓你講講XGB原理和優(yōu)缺點(diǎn),你可以對(duì)比著GBDT或者LightGBM講,說說自己在使用的時(shí)候有什么trick。另外的算法就是數(shù)據(jù)結(jié)構(gòu)算法要掌握常見的題目。這部分也可以作為coding能力考查,最基本是看完《劍指offer》,《leetcode》,自己練習(xí)的時(shí)候可以手寫練一下,最后要達(dá)到能熟練手寫的程度。推薦在??途W(wǎng)上的在線編程刷題,有精力的可以再看看《編程之美》和《程序員面試寶典》的內(nèi)容。
二、coding能力要過關(guān)
算法的同學(xué)coding能力是在面試中必須要考察的。所以自己的coding能力必須多練練,推薦在牛客網(wǎng)的在線編程多多敲代碼。掌握類似leetcode medium程度的題目就可以了,hard程度的可以不用掌握。面試中一般會(huì)出幾道題目,要求手寫,能順利寫出的都是加分項(xiàng)。語(yǔ)言要掌握一大兩小三門語(yǔ)言,大語(yǔ)言是Java或者Cpp,小語(yǔ)言掌握python,SQL。有時(shí)間精力可以將常見的算法用python實(shí)現(xiàn)一下。語(yǔ)言不必掌握很深,但是要做到能熟練用Python或者SQL處理數(shù)據(jù),算法用Python也要掌握差不多。對(duì)于大語(yǔ)言來說基本語(yǔ)法和一些基本概念都要熟練掌握。
三、項(xiàng)目比賽經(jīng)歷
單單有理論的code能力是不夠的,最好能參加一兩個(gè)有含金量的比賽或者項(xiàng)目,盡力做一做,拿一個(gè)好名次,拿不到的話也要根據(jù)前幾名隊(duì)伍的答辯思路好好總結(jié)一下,用到什么算法,自己在項(xiàng)目比賽中負(fù)責(zé)什么工作,有什么創(chuàng)新點(diǎn),自己有什么收獲等等,一定要好好總結(jié),因?yàn)檫@可能是面試官和你聊的最多的東西,所以提前一定要下功夫總結(jié)整理好。
四、實(shí)際工程trick
雖然我們都是在校生,但是面試官可能會(huì)問我們他在工作中遇到的實(shí)際工程問題,所以這部分也需要我們?nèi)ヌ崆傲私鈱W(xué)習(xí),最好的方法就是看別人的面經(jīng)進(jìn)行總結(jié),下面我也會(huì)貼出自己遇到的問題,供大家參考。
五、所謂的智力題
這部分的問題最不好準(zhǔn)備,常見的一些問題可以準(zhǔn)備一下,但是不常見的問題就靠自己臨場(chǎng)發(fā)揮了,不過大家在平時(shí)多多留意一下。
求職心得和經(jīng)驗(yàn)
一、關(guān)于每年3,4月份的實(shí)習(xí)
樓主在這個(gè)期間只投了阿里,在最后的HR面之后被掛。雖然沒去實(shí)習(xí),但是在這4-5場(chǎng)的面試中學(xué)習(xí)到很多。技術(shù)面一開始也很緊張,慢慢的查找自己的漏洞,然后在后面查漏補(bǔ)缺。所以推薦大家在3,4月份去投著試一試,雖然可能當(dāng)時(shí)的能力達(dá)不到公司要求,但是可以去增長(zhǎng)一下經(jīng)驗(yàn)。
二、簡(jiǎn)歷
簡(jiǎn)歷最好一頁(yè),將最能代表自己能力的寫清楚,最好簡(jiǎn)潔扼要。自己獲得的獎(jiǎng)勵(lì)最好都寫上,但是盡量寫與崗位和公司match的,如獲得天池名次,國(guó)獎(jiǎng)之類的。馬拉松獲得第幾之類的就可以不寫。
三、面試技巧
1. 面試通過=50%實(shí)力+30%運(yùn)氣+20%技巧。
2. 首先要告訴自己,這不是一場(chǎng)面試,而是一場(chǎng)與自己未來同事之間的交流探討。盡量消除緊張心理,完全不緊張也是不可能的,但是還是要盡可能穩(wěn)下來。面試過程中盡量幽默,能做到和面試官談笑風(fēng)生你就贏了。在脈脈上看到的有人說做了面試官之后才發(fā)現(xiàn)其實(shí)你技術(shù)差不多就行,決定你過不過的就是看你順不順眼,所以最好能讓面試官在短短幾十分鐘里喜歡上你!
3. 在準(zhǔn)備面試的時(shí)候看過一個(gè)公眾號(hào)的文章,文章意思就是比如你的實(shí)力是80,那么你在面試中的表現(xiàn)一般是在60-100之間,如果你整場(chǎng)面試都表現(xiàn)平平,那么面試官對(duì)你的評(píng)分可能是60-80,但是如果你偶爾有一兩個(gè)問題沒回答好,但是另外的一兩個(gè)問題答的很完美,那么你很可能就是80-100分。面試官最后決定錄不錄用此人,更大程度上是根據(jù)面試者的最佳表現(xiàn)和結(jié)束時(shí)表現(xiàn)。所以要反復(fù)演練自己的最佳亮點(diǎn)和如何結(jié)束面試。
4. 電話面試的話要注意語(yǔ)速吐字,現(xiàn)場(chǎng)面試也要注意語(yǔ)速,可以用在草稿紙上寫一寫的方式幫助解釋。
5. 面試中遇到?jīng)]理解的問題要盡可能與面試官溝通,說不定他就在考你的溝通能力呢。
6. 在面試中遇到不會(huì)的或者完全不會(huì)的問題要在面試之前想好策略。我的策略一般是允許自己對(duì)于最多兩個(gè)問題直接說我不會(huì),此策略一般是對(duì)于自己完全沒有把握的問題,讓面試官換另一個(gè)問題。如果你強(qiáng)答這個(gè)題的話只能是勉勉強(qiáng)強(qiáng)的回答一下。在一場(chǎng)面試中有1,2個(gè)問題說不會(huì)的沒有多大問題,但是對(duì)于其他的問題要盡量做到完美作答,這樣才有把握。
7. 關(guān)于HR面,樓主在面阿里實(shí)習(xí)生是第一次HR面,當(dāng)時(shí)聊的比較嗨,掛了,事后想想應(yīng)該是自己表現(xiàn)的太有個(gè)性和想法了,所以各位在HR面的時(shí)候盡量表現(xiàn)的老實(shí)規(guī)矩一點(diǎn)吧,這樣最好。。。
四、面試遇到的代表性問題
1. 比賽項(xiàng)目展開的問題
1.1 比賽中特征設(shè)計(jì)思路,為什么這么設(shè)計(jì)。
1.2 模型融合有什么創(chuàng)新點(diǎn),為什么這么做。
1.3 針對(duì)大數(shù)據(jù)量,有什么處理方法,具體怎么做。
1.4 業(yè)界開源的分布式訓(xùn)練框架。
1.5 給出一個(gè)集群框架,每一個(gè)集群包括CPU,存儲(chǔ),時(shí)序等等變量,運(yùn)用什么算法或者策略使得總的效率最高。
1.6 對(duì)于某一個(gè)地區(qū)中的車輛和乘客怎樣合理安排司機(jī)-乘客使得滴滴總的收益最大(主要考慮距離)。
1.7 滴滴的拼車功能的拼車價(jià)怎么定,使用什么策略或者算法。
2. 算法理論方面
2.1 LR,SVM,KNN,GBDT,XGB推導(dǎo),算法細(xì)節(jié)(LR為何是sigmod,理論推導(dǎo)出sigmod,KNN距離度量方式,XGBoost為什么要用二階信息不用一階,LR和SVM對(duì)比,GBDT和XGB和LightGBM對(duì)比)。
2.2 CNN DNN RNN 細(xì)節(jié)以及相關(guān)問題(poll層,激活函數(shù),梯度消失彌散問題,LSTM結(jié)構(gòu)圖,深度網(wǎng)絡(luò)優(yōu)勢(shì)及缺點(diǎn))。
2.3 常見排序算法的復(fù)雜度和一些細(xì)節(jié)以及改進(jìn)優(yōu)化。
2.4 樹模型建模過程。
2.5 特征選擇方法。
2.6 模型訓(xùn)練停止方法。
2.7 正則化作用。
2.8 模型效果評(píng)價(jià)指標(biāo)。
2.9 AUC理解和計(jì)算方法。
2.10 Hadoop,Hive,Spark相關(guān)理論。
2.11 L_BFGS,DFP推導(dǎo)。
2.12 弱分類器組合成強(qiáng)分類器的理論證明。
2.13 FM,F(xiàn)MM,Rank_SVM算法細(xì)節(jié)。
2.14 map_reduce基本概念以及常見處理代碼。
2.15 過擬合的解決方法。
2.16 各個(gè)損失函數(shù)之間區(qū)別。
2.17 L1,L2正則化相關(guān)問題。
3. Coding
3.1 SQL查詢相關(guān)業(yè)務(wù)題目。
3.2 Java基礎(chǔ)(GC,死鎖,多線程,重載重寫等)。
3.3 Python基礎(chǔ)(常見數(shù)據(jù)結(jié)構(gòu)用法,類繼承,內(nèi)存管理)。
3.4 Linux處理文本日志相關(guān)常見命令。
3.5 給定n,螺旋打印矩陣。
3.6 Z字形打印樹。
3.7 基礎(chǔ)的數(shù)組,鏈表操作。
3.8 大巴車求陰影(至今沒明白什么意思)。
3.9 在一個(gè)一維坐標(biāo)軸中,給定 n 個(gè)線段起止點(diǎn)(ai,bi) (ai、bi 的取值在 double 范圍內(nèi)), 如何計(jì)算所有線段覆蓋的總長(zhǎng)度,請(qǐng)編程實(shí)現(xiàn)。
3.10 。一個(gè)數(shù)組A[1,。..,n](n≥3),滿足A[1]≥A[2], A[n] ≥ A[n-1](第一個(gè)數(shù)比第二個(gè)數(shù)大,最后一個(gè)數(shù)比倒數(shù)第二個(gè)數(shù)大,其他位置不保證大小關(guān)系)。用最快的辦法找到一個(gè)i, 滿足A[i-1]≥A[i] ≤ A[i+1],并給復(fù)雜度。
3.11 輸入:兩個(gè)等長(zhǎng)的數(shù)組a,b (a、b元素都不小于0),每次可對(duì)a數(shù)組做如下兩種改動(dòng)中的一種
1)選取a數(shù)組中任意一個(gè)元素,將其值增加1;
2)將a數(shù)組中任取若干個(gè)元素,將其值都乘以2;
輸出:最少需要操作次數(shù),將a數(shù)組轉(zhuǎn)化成和b數(shù)組完全一樣;如果做不到,輸出-1,請(qǐng)編程實(shí)現(xiàn)。
3.12 數(shù)組里面連續(xù)值的和為S的區(qū)間,給出邊界。
4. 智力題/開放題
4.1 淘寶有1億總量的商品數(shù)量,你作為一個(gè)用戶通過什么辦法得到京東的商品總量。
4.2 連續(xù)遞增的數(shù)據(jù),拿出兩個(gè),打亂順序,求拿出的兩個(gè)。
4.3 n個(gè)人圍城一圈握手問題,不能交叉,不能落單,求一共有多少種握手?jǐn)?shù)目(卡特蘭數(shù)推導(dǎo))。
4.4 54張撲克,抽去大小王,均分給4個(gè)人,問紅桃A和黑桃A在同一個(gè)人手中的概率。
4.5 對(duì)于一個(gè)query,”時(shí)效性” query的判斷,運(yùn)用什么算法。
-
算法工程師
+關(guān)注
關(guān)注
2文章
31瀏覽量
6246
發(fā)布評(píng)論請(qǐng)先 登錄
工程師避坑指南:減少PCBA返工的實(shí)用經(jīng)驗(yàn)
如何成為一名合格的KaihongOS南向驅(qū)動(dòng)開發(fā)工程師
如何成為一名合格的KaihongOS北向應(yīng)用開發(fā)工程師
工程師經(jīng)驗(yàn)分享:社區(qū)之星 趙云 沉著穩(wěn)定才能做好技術(shù)

如何成為一名嵌入式軟件工程師?
長(zhǎng)沙怎么這么難招硬件工程師呀
如何成為嵌入式開發(fā)工程師?
電子工程師的電源設(shè)計(jì)經(jīng)驗(yàn)分享
電子工程師的PCB設(shè)計(jì)經(jīng)驗(yàn)
電子工程師的電源設(shè)計(jì)經(jīng)驗(yàn)
電子工程師的電路設(shè)計(jì)經(jīng)驗(yàn)分享
電子工程師的經(jīng)驗(yàn)分享
如何成為一名合格的北向應(yīng)用開發(fā)工程師
KiCon 演講回顧(十三):嵌入工程師的硬件夢(mèng)之 KiCad 經(jīng)驗(yàn)和項(xiàng)目分享

評(píng)論