① 都快2021年了,演算法崗位應該怎樣准備面試
說到演算法崗位,現在網上的第一反應可能就是內卷,演算法崗位也號稱是內卷最嚴重的崗位。針對這個問題,其實之前我也有寫過相關的文章。這個崗位競爭激烈不假,但我個人覺得稱作內卷有些過了。就我個人的感覺,這幾年的一個大趨勢是從迷茫走向清晰。
早在2015年我在阿里媽媽實習的時候,那個時候我覺得其實對於演算法工程師這個崗位的招聘要求甚至包括工作內容其實業內是沒有一個統一的標準的。可以認為包括各大公司其實對這個崗位具體的工作內容以及需要的候選人的能力要求都不太一致,不同的面試官有不同的風格,也有不同的標准。
我舉幾個例子,第一個例子是我當初實習面試的時候,因為是本科生,的確對機器學習這個領域了解非常非常少,可以說是幾乎沒有。但是我依然通過了,通過的原因也很簡單,因為有acm的獲獎背景,面試的過程當中主要也都是一些演算法題,都還算是答得不錯。但是在交叉面試的時候,一位另一個部門的總監就問我有沒有這塊的經驗?我很明確地說了,沒有,但是我願意學。
接著他告訴我,演算法工程師的工作內容主要和機器學習相關,因此機器學習是基本的。當時我就覺得我涼了,然而很意外地是還是通過了面試。
核心能力
由於我已經很久沒有接觸校招了,所以也很難說校招面試應該怎麼樣准備,只能說說如果是我來招聘,我會喜歡什麼樣的學生。也可以理解成我理解的一個合格優秀的演算法工程師應該有的能力。
模型理解
演算法工程師和模型打交道,那麼理解模型是必須的。其實不用說每一個模型都精通,這沒有必要,面試的時候問的模型也不一定用得到。但更多地是看重這個人在學習的時候的習慣,他是淺嘗輒止呢,還是會刨根究底,究竟能夠學到怎樣的地步。
在實際的工作當中我們可能會面臨各種各樣的情況,比如說新加了特徵但是沒有效果,比如升級了模型效果反而變差了等等,這些情況都是有可能發生的。當我們遇到這些情況之後,需要我們根據已知的信息來推理和猜測導致的原因從而針對性的採取相應的手段。因此這就需要我們對當前的模型有比較深入地了解,否則推導原因做出改進也就無從談起。
所以面試的時候問起哪個模型都不重要,重要的是你能不能體現出你有過深入的研究和理解。
數據分析
演算法工程師一直和數據打交道,那麼分析數據、清洗數據、做數據的能力也必不可少。說起來簡單的數據分析,這當中其實牽扯很多,簡單來說至少有兩個關鍵點。
第一個關鍵點是處理數據的能力,比如SQL、hive、spark、MapRece這些常用的數據處理的工具會不會,會多少?是一個都不會呢,還是至少會一點。由於各個公司的技術棧不同,一般不會抱著候選人必須剛好會和我們一樣的期待去招人,但是候選人如果一無所知肯定也是不行的。由於學生時代其實很少接觸這種實踐的內容,很多人對這些都一無所知,如果你會一兩個,其實就是加分項。
第二個關鍵點是對數據的理解力,舉個簡單的例子,比如說現在的樣本訓練了模型之後效果不好,我們要分析它的原因,你該怎麼下手?這個問題日常當中經常遇到,也非常考驗演算法工程師對數據的分析能力以及他的經驗。數據是水,模型是船,我們要把船駛向遠方,只懂船隻構造是不行的,還需要對水文、天象也有了解。這樣才能從數據當中捕捉到trick,對一些現象有更深入的看法和理解。
工程能力
雖然是演算法工程師,但是並不代表工程能力不重要,相反工程能力也很重要。當然這往往不會成為招聘的硬性指標, 比如考察你之前做過什麼工程項目之類的。但是會在你的代碼測試環節有所體現,你的代碼風格,你的編碼能力都是你面試的考察點之一。
並不只是在面試當中如此,在實際工作當中,工程能力也很關鍵。往小了說可以開發一些工具、腳本方便自己或者是團隊當中其他人的日常工作,往大了說,你也可以成為團隊當中的開發擔當,負責其團隊當中最工程的工作。比如說復現一篇paper,或者是從頭擼一個模型。這其實也是一種差異化競爭的手段,你合理地負擔起別人負擔不了的工作,那麼自然就會成為你的業績。
時代在變化,行業在發展,如今的校招會問些什麼早已經和當年不同了。但不管怎麼說,這個崗位以及面試官對於人才的核心訴求幾乎是沒有變過的,我們從核心出發去構建簡歷、准備面試,相信一定可以有所收獲。
② 一個人能獨立開發app嗎需要學什麼
我在用APICloud,現在就是一個人在做app,現在已經開發大半了,用的語言是JS和HTML,直接調用模塊和API,現在開發過半了,完事再和你分享。有不明白的可以繼續追問或者網路搜索。
③ 如何成為一名合格的演算法工程師
BAT企業的演算法工程師是這樣工作的:問題抽象、數據採集和處理、特徵工程、建模訓練調優、模型評估、上線部署。(具體操作可以看阿里演算法專家chris老師的演算法工作流視頻演算法工作流是怎樣的?)而一個演算法工程師真正值錢的地方在於問題抽象和上線部署這兩個。