天天看點

如何在阿裡技術面試中脫穎而出?如何在阿裡技術面試中脫穎而出?

如何在阿裡技術面試中脫穎而出?

  • 宗心

招聘的目的

  • 當今社會,技術已經成為影響商業成功的關鍵因素,工程師成為了這些公司最寶貴的财富,沒有優秀的人組成團隊來完成商業目标,公司根本不可能有今天的成就。是以招聘,就是選擇最優秀的人。

招什麼樣的人?

  • 招優秀的人顯然是一個很模糊的概念,我們來度量的時候,個人認為三個因素是最關鍵的:
    • 技能
      • 工作項目經驗,以及解決疑難問題的能力,畢竟招來的人首先必須很好的完成工作,這是最基本的要求,注意,是很好的完成,不是僅僅完成。
    • 潛力
      • 這個概念看起來是比較模糊,其實還是比較容易評價的,對計算機相關的專業的知識體系是不是完整,基礎是不是紮實,平常是不是喜歡鑽研,對這個世界充滿好奇心,這幾年走下來,沉澱的速度如何,都是判斷一個人潛力的方式,注意我們看潛力主要是基于候選人之前的成長經曆實事求是來看,過去的優秀經曆才能給未來背書。潛力和技能的重要性一樣重要,我們不能隻看眼前,團隊是需要不斷發展和前進的,是以我們招人應該面向未來。
    • 軟實力
      • 軟實力這裡其實包含了性格,執行力,上司力等方方面面,它代表了候選人是否能夠快速融入團隊,拿到結果,帶領團隊攻城拔寨,激勵和影響身邊的人變得更加優秀等待,軟實力一般HR肯定會考察,雖然技術面不會特别去關注,但是從面試的過程中可以看出候選人的溝通能力,以及性格相關的特點,也值得我們注意。
  • 說了這麼多,其實在招人上有一個對比的标杆,就是你招的人是不是比團隊中同一等級的50%的同學優秀,如果你覺得沒有他們優秀,那不用糾結,這個候選人不要了,團隊必須不停加入更好的同學,才能變得更加強大。

面試的方法

  • 面試不要做的事情
    • 問一些知道性的問題比如問知不知道這個API幹什麼的,怎麼調用,這個指令怎麼用的,知道性的知識,google 一下或者認真看下文檔就應該知道。
    • 問一些特别複雜的問題比如問一個特别複雜的算法,問一個很抽象的大問題,短時間内很難給予回答。
    • 問一些假設性的問題假設你參與了這個項目,你覺得哪幾個地方需要優化。
  • 之是以說這些問題不應該問,我認為主要是因為這些很難考察到面試者的真實

    能力,45 分鐘的時間本來就很短,有些問題有可能比較偏,有些問題又過于龐大沒

    法一下子描述特别清楚,還有一些問題缺乏上下文,讓人摸不到頭腦,是以盡量避

    免這麼問問題,另外把握一個重要原則,不要在面試中試圖證明别人不如自己,毫

    無意義,人無完人,總有覆寫不到的地方,按照這個規則招聘,會錯過很多優秀的

    人才。

  • 面試應該做的事情
    • 問已經發生的事情:比如面試移動開發者,面試官應該認真看下其做過的App,具體的工作是什麼,準備一些相關的問題,這裡就可以看出來之前工作站的積累是什麼,有多深。
    • 問題解決思路
      • 針對項目經驗和一些學習的經驗上面,應該問拿到問題以後解決思路是什麼,在什麼場景下為什麼這麼做,這裡根據面試者的方案,分析的方法論,就可以大緻了解面試是否聰明,知識面是不是夠廣,遇到問題時會不會舉一反三。
      • 具體可以舉個簡單的例子,很多同學說自己做過架構,然後都會講自己做了一個解耦和分層的架構,其實這類架構iOS很多,外部github上就有各種方案。在阿裡内部手淘早先做的 bundle 拆分時沉澱的容器規則,天貓開源出去的 beeHive,閑魚内部的 Xframework,抑或是服務端的springmvc,其實都實作了IoC,但實作和思路上都有一些差異,到底為什麼這麼做,其實是有差別的,這裡面就可以看出知識廣度,總結和思辯能力,在關鍵路徑上的技術判斷。
      • 又比如說,我們總在強調性能穩定性怎麼做,業界也有很多方案,到底哪個方案更好呢?答案沒有絕對的對錯,取決于某個時間點和場景下哪個問題是最核心的突破點,而你的标準答案和落地的技術方案是不是合理(考慮成本,收益以及後續的風險是什麼)。一般來講,我們更傾向于用系統化的思維看待一個問題,也就是說,相比根據人的經驗去識别性能瓶頸,我們更希望能通過自動化,智能化,資料化的方式去解決問題。
    • 少問多聽
      • 一般剛開始做面試官的同學很喜歡以問為主,但因為大家的知識體系不太一樣,成長環境也不同,直接這麼問起來很難就找到面試者的優點,是以盡量讓應試者自己陳述,然後以學習和交流的心态針對陳述中存疑的地方再進行發問,會更容易讓應試者放松,也更容易讓應試者更全面的表達自己。另外,問的差不多的時候,結尾的時候可以補充一句:您覺得剛才的面試中還有哪些我沒問到的,您想再補充一下的内容?末了,再問下:我的問題問完了,您有什麼想要問我的嗎?
      • 知道了應該怎麼做,那具體的提問方法有沒有什麼技巧呢?在招聘中有一個重要的STAR原則,可以跟大家分享。
  • STAR原則
    • 處境(situation):在什麼樣的環境下
    • 任務(task):接到了什麼樣的任務
    • 行動(action):然後具體怎麼落地的
    • 結果(result):拿到了什麼結果
    • 我們盡量問清楚對方在什麼樣的環境下接到這個任務,接到以後是做了什麼事情,最後的結果是什麼樣子的。咋一聽,感覺,這不是套路嘛,是不是知道這個原則的人,隻要按照這四點編故事,就能通過面試了?當然不是,在叙述過程中,我們應該分辨出 STAR 中的真假,那下面就舉一些例子。
  • 假的STAR
    • 描述含糊不清:比如,我用這個方案解決了這個問題,效果很好,得到了大家的一緻好評。注意,效果好是哪裡好,有什麼度量的标準?一緻好評的展現是在具體 KPI 還是比如團隊有個什麼獎勵之類的。
    • 隻表達态度和看法:我覺得線上穩定性非常重要,應該重點解決和持續跟進。如果隻有這一句話,沒有後面具體認為重要的解決方案的話,這部分的經驗難以令人信服。
    • 假設式描述:如果我來做這件事情,我會1234怎麼怎麼樣。前面其實面試應該問的問題裡面有提到,我們本身就不應該問假設性的問題,那作為面試者,假設沒做過的事情,如果隻是看思路還好,但是如果說的天花亂墜,這個時候要警惕了,畢竟說和做之前的差異是很大的。對于假設的事情,面試官是沒法評估具體效果的,因為它不像過去已有的項目和工作内容,是有明顯結果的,如果對過去結果存疑,後續也可以背調了解具體的情況。
  • 鑒别方式
    • 更多的關心What/How/Why
      • 做了什麼事情,具體做的方案1234幾步,為什麼要這麼做,比如圖檔的優化,最早肯定什麼都沒有,後續加cache,cache政策又可以更新,包括cache本身的算法以及多級cache的實作,圖檔尺寸上面後來有做了什麼裁切之類的,圖檔格式上面後續又做了優化等等。
      • 每個階段不太一樣,關注的重點也不一樣,刨根問題問一問,會了解是不是真的做過這件事情,另外有一些可能項目做的很久說很多東西忘了,這裡我分享一個觀點,之前看過一句話,招聘的人中有一種人是比較好的,他總能比較清楚的記住過往項目當中的重點,這樣的人在經營沉澱的過程中肯定更快一些,當然這樣的同學肯定得歸結在聰明一類的人了,當然能記住也說明他可能喜歡總結和回顧,平常的學習習慣應該也比較好。
    • 細節!細節!細節!
      • 很多關鍵節點的細節很重要,比如網絡庫的優化。 iOS開發,一般都會知道 iOS 的網絡協定優化常采用攔截 NSURLProtocol 的方式進行,然後針對傳統的 https 協定我們會将其替換成為 spdy 協定或者 http2 協定,過程中還有一些 httpdns 等的優化。但如果你今天希望招聘一個有這部分網絡優化經驗的同學,怎麼判斷這個同學有實操的經驗呢?你可以讓他說細節上面的很多事情,比如說URLProtocol 攔截 request 以後,針對不同的case的降級政策是什麼,選擇依據是什麼?當時遇到了什麼其他的坑沒有?你自己的做法有什麼缺陷?
      • 又比如Weex的實作上面,整個渲染的流程到底是怎樣的,渲染部分還有什麼優化空間嗎?或者說這個方案本身做了哪方面的優化?它的配套工程體系上的問題是什麼,你遇到以後是怎麼解決掉的,這些在了解大概思路後,都可以往深入再問一下細節的部分,認真研讀以及修改過代碼的同學,肯定是答得出來的。

技術人如何不斷成長?

  • 招聘,教育訓練,人才選拔晉升,我認為評價标準和方法都應該有比較多的重合的部分,我們從剛才的面試經驗中,反思下,如果現在是我們去找工作,這個市場或者團隊更需要什麼樣的人?
    • 經驗豐富,知識體系完整
      • 經驗能解決實際的問題,另外知識體系可以讓你在遇到新的問題時舉一反三,當然大公司和小公司要求的知識體系又不太一樣,大公司更偏向一專多能的T型人才,小公司更喜歡全棧,是以到底要成為什麼樣的人,跟你的職業規劃很有關系,是想在大公司成就一番事業,還是出去闖蕩,那你點的技能樹肯定是不一樣的。到底應該怎麼做,我自己的經驗是,找到身邊的标杆,向更優秀的同學學習,在阿裡當然非常優秀的專業人才也好,架構師也好,都非常多,是以标杆應該也好找,業界當然也有很多成功的人,有了标杆,就努力向上吧。
    • 保持良好的習慣,不忘總結和提升
      • 當我還是一個菜鳥的時候,當時的老闆問了我一個問題,每周寫周報的時候,想想自己這一周到地收獲了什麼,這給我留下了很深的印象。我在想,既然我每次面試别人都問你最近有研究什麼新的技術或者看到什麼有趣的文章沒有的,那我自己是不是能這樣要求自己呢?不積矽步無以緻千裡,貴在堅持積累。

繼續閱讀