阿里技術面試中教你脫穎而出(內部資料)

更多精彩盡在原文地址

iOS開發之家

iOS開發之家

導讀:知己知彼、百戰不殆,面試也是如此。只有充分了解面試官的思路,才能更好地在面試中充分展示本身。今天,阿里高級技術專家將分享本身做爲面試官的心得與體會。若是你是面試者,能夠藉此爲鏡,對照發現本身的長處與不足,有針對性學習成長;若是你是面試官,相信也能經過他的講述,有所啓發。git

招聘是團隊管理者工做中的重要一環。本文會結合本身親身經歷以及接受的招聘培訓,綜合分析怎麼找到咱們要的人,也但願能夠經過招聘這面鏡子照亮本身,怎樣成爲一個更好的工程師。github

###招聘的目的面試

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

###招什麼樣的人?spring

招優秀的人顯然是一個很模糊的概念,咱們來度量的時候,我我的認爲三個因素是最關鍵的:編程

技能swift

工做項目經驗,以及解決疑難問題的能力,畢竟招來的人首先必須很好的完成工做,這是最基本的要求,注意,是很好的完成,不是僅僅完成。網絡

潛力數據結構

這個概念看起來比較模糊,其實仍是比較容易評價的,對計算機相關的專業的知識體系是否是完整,基礎是否是紮實,日常是否是喜歡鑽研,對這個世界充滿好奇心,這幾年走下來,沉澱的速度如何,都是判斷一我的的潛力的方式,注意咱們看潛力主要是基於候選人的以前的成長經歷實事求是來看,過去的優秀經歷才能給將來背書。潛力和技能的重要性同樣重要,咱們不能只看眼前,團隊是須要不斷髮展和前進的,因此咱們招人應該面向將來。架構

軟實力

軟實力這裏其實包含了性格,執行力,領導力等方方面面,它表明了候選人是否能快速融入團隊,拿到結果,帶領團隊攻城拔寨,激勵和影響身邊的人變得更加優秀等等,軟實力通常HR確定會考察,雖然技術面不會特別去關注,可是從面試的過程當中能夠看出候選人的溝通能力,以及性格相關的特色,也值得咱們注意。

說了這麼多,其實在招人上有一個對比的標杆,就是你招的人是否是比團隊中同一等級中50%的同窗優秀,若是你以爲沒有他們優秀,那不用糾結,這個候選人不要了,團隊必須不停加入更好的同窗,才能變得更增強大。

iOS開發之家

面試的方法

這裏結合以前的培訓以及本身的真實經歷,講解面試的一些方法。

###面試不要作的事

問一些知道性的問題好比問知不知道這個API幹什麼的,怎麼調用,這個命令怎麼用的,知道性的知識,google一下或者認真看下文檔就應該知道。

問一些特別複雜的問題好比問一個特別複雜的算法,問一個很抽象的大問題,短期內很難給予回答。

問一些假設性的問題假設你參與了這個項目,你以爲哪幾個地方須要優化。

之因此說這些問題不該該問,我認爲主要是由於這些很難考察到面試者的真實能力,45分鐘的時間原本就很短,有些問題有可能比較偏,有些問題又過於龐大無法一會兒描述特別清楚,還有一些問題缺少上下文,讓人摸不到頭腦,因此儘可能避免這麼問問題,另外把握一個重要原則,不要在面試中試圖證實別人不如本身,毫無心義,人無完人,總有覆蓋不到的地方,按照這個規則招聘,會錯過不少優秀的人才。

###面試應該作的事

問已經發生的事情

好比面試移動開發者,面試官應該認真看下其作過的App,具體的工做是什麼,準備一些相關的問題,這裏就能夠看出來以前工做中的積累是什麼,有多深。

問題解決思路

針對項目經驗和一些學習的經驗上面,應該問拿到問題之後解決思路是什麼,在什麼場景下爲何這麼作,這裏根據面試者的方案,分析的方法論,就能夠大體瞭解面試者是否聰明,知識面是否是夠廣,遇到問題時會不會觸類旁通。

具體能夠舉個簡單的例子,不少同窗說本身作過架構,而後都會講本身作了一個解耦和分層的框架,其實這類框架iOS不少,外部github上就有各類方案。在阿里內部手淘早先作的bundle拆分時沉澱的容器規則,天貓開源出去的beeHive,閒魚內部的Xframework,抑或是服務端的spring mvc,其實都實現了IoC,但實現和思路上都有一些差別,到底爲何這麼作,實際上是有區別的,這裏面就能夠看出知識廣度,總結和思辯能力,在關鍵路徑上的技術判斷。

若是你依然在編程的世界裏迷茫,不知道本身的將來規劃,小編給你們推薦一個iOS高級交流羣:458839238 裏面能夠與大神一塊兒交流並走出迷茫。小白可進羣免費領取學習資料,看看前輩們是如何在編程的世界裏傲然前行! 羣內提供數據結構與算法、底層進階、swift、逆向、整合面試題等免費資料 附上一份收集的各大廠面試題(附答案) ! 羣文件直接獲取

又好比說,咱們總在強調性能穩定性怎麼作,業界也有不少方案,到底哪一個方案更好呢?答案沒有絕對的對錯,取決於某個時間點和場景下哪一個問題是最核心的突破點,而你的選擇標準和落地的技術方案是否是合理(考慮成本,收益,以及後續的風險是什麼)。通常來說,咱們更傾向於用系統化的思惟看待一個問題,也就是說,相比根據人的經驗去識別性能瓶頸,咱們更但願能經過自動化,智能化,數據化的方式去解決問題。

少問多聽

通常剛開始作面試官的同窗很喜歡以問爲主,但由於你們的知識體系不太同樣,成長環境也不一樣,直接這麼問起來很難就找到面試者的優勢,因此儘可能讓應試者本身陳述,而後以學習和交流的心態針對陳述中存疑的地方再進行發問,會更容易讓應試者放鬆,也更容易讓應試者更全面的表達本身。另外,問的差很少的時候,結尾的時候能夠補充一句:您以爲剛纔的面試中還有哪些我沒問到的,您想再補充一下的內容?末了,再問下:個人問題問完了,您有什麼想要問個人嗎?

知道了應該怎麼作,那具體的提問方法有沒有什麼技巧呢?在招聘中有一個重要的STAR原則,能夠跟你們分享。

###STAR原則

處境(situation)

在什麼樣的環境下

任務(task)

接到了什麼樣的任務

行動(action)

而後具體怎麼落地的

結果(result)

拿到了什麼結果

咱們儘可能問清楚對方在什麼樣的環境下接到這個任務,接到之後是作了什麼事情,最後的結果是什麼樣子的。乍一聽,感受,這不是套路嘛,是否是知道這個原則的人,只要按照這四點編故事,就能經過面試了?固然不是,在敘述過程當中,咱們應該分辨出STAR中的真假,那下面就舉一些例子。

###假的STAR

描述含糊不清

好比,我用這個方案解決了這個問題,效果很好,獲得了你們的一致好評。注意,效果好是哪裏好,有什麼度量的標準?一致好評的體現是在具體KPI仍是好比團隊有個什麼獎勵之類的。

只表達態度和見解

我以爲線上穩定性很是重要,應該重點解決和持續跟進。若是隻有這一句話,沒有後面具體認爲重要的解決方案的話,這部分的經驗難以使人信服。

假設式描述

若是我來作這件事情,我會1234怎麼怎麼樣。前面其實面試應該問的問題裏面有提到,咱們自己就不該該問假設性的問題,那做爲面試者,假設沒作過的事情,若是隻是看思路還好,可是若是說的天花亂墜,這個時候要警戒了,畢竟說和作以前的差別是很大的。對於假設的事情,面試官是無法評估具體效果的,由於它不像過去已有的項目和工做內容,是有明顯結果的,若是對過去結果存疑,後續也能夠背調了解具體的狀況。

針對假的STAR,咱們要甄別分辨出來,引導其表達出真正的狀況。

iOS開發之家

###鑑別方式

更多的關心What/How/Why

作了什麼事情,具體作的方案1234幾步,爲何要這麼作,好比圖片的優化,最先確定什麼都沒有,後續加cache,cache策略又能夠升級,包括cache自己的算法以及多級cache的實現,圖片尺寸上面後來有作了什麼裁切之類的,圖片格式上面後續又作了優化等等。

每一個階段不太同樣,關注的重點也不同,刨根問題問一問,會了解是否是真的作過這件事情,另外有一些可能項目作得好久說不少東西忘了,這裏我分享一個觀點,以前看過一句話,招聘的人中有一種人是比較好的,他總能比較清楚的記住過往項目當中的重點,這樣的人在經驗沉澱的過程當中確定更快一些,固然這樣的同窗確定得歸結在聰明一類的人了,固然能記住也說明他可能喜歡總結和回顧,日常的學習習慣應該也比較好。

細節!細節!細節!

不少關鍵節點的細節很重要,好比網絡庫的優化。若是你是一個iOS開發,通常都會知道iOS的網絡協議優化常採用攔截NSURLProtocol的方式進行,而後針對傳統的https協議咱們會將其替換成爲spdy協議或者http2協議,過程當中還有一些httpdns等的優化。但若是你今天但願招聘一個有這部分網絡優化經驗的同窗,怎麼判斷這個同窗有實操的經驗呢?你可讓他說細節上面的不少事情,好比說URLProtocol攔截request之後,針對不一樣的case的降級策略是什麼,選擇依據是什麼?當時遇到了什麼其餘的坑沒有?你本身的作法有什麼缺陷?

又好比Weex的實現上面,整個渲染的流程究竟是怎樣的,渲染部分還有什麼優化空間嗎?或者說這個方案自己作了哪方面的優化?它的配套工程體系上的問題是什麼,你遇到之後是怎麼解決掉的,這些在瞭解大概思路後,均可以往深刻再問一下細節的部分,認真研讀以及修改過代碼的同窗,確定是答得出來的。

###其餘Tips

你在面試別人,別人也在選擇你

面試是雙向的,面試官是一個團隊對外的門面,不要遲到,提問和交流要尊重面試者,讓面試者感覺到咱們的真誠。

爲將來招聘而不是如今

咱們永遠應該爲將來招聘,由於招聘的人入職也是發生在將來,不能馬上就解決你眼前的問題,因此咱們招聘的時候也放長遠一點,招爲團隊將來更有好處的人。

面試是一面鏡子

以人爲鏡,優秀的面試者給咱們能帶來新的思路和新的方法,而差強人意的面試者則提升咱們看人的能力,爲後續的提高招聘效率找到更正確的人打下基礎。

###技術人如何不斷成長?

iOS開發之家

招聘,培訓,人才選拔晉升,我認爲評價標準和方法都應該有比較多的重合的部分,咱們從剛纔的面試經驗中,反思下,若是如今是咱們去找工做,這個市場或者團隊更須要什麼樣的人?

經驗豐富,知識體系完整

經驗能解決實際的問題,另外知識體系可讓你在遇到新的問題時觸類旁通,固然大公司和小公司要求的知識體系又不太同樣,大公司更偏向一專多能的T型人才,小公司更喜歡全棧,因此到底要成爲何樣的人,跟你的職業規劃頗有關係,是想在大公司成就一番事業,仍是出去闖蕩,那你點的技能樹確定是不同的。到底應該怎麼作,我本身的經驗是,找到身邊的標杆,向更優秀的同窗學習,在阿里固然很是優秀的專業人才也好,架構師也好,都很是多,因此標杆應該也好找,業界固然也有不少成功的人,有了標杆,就努力向上吧。

保持良好的習慣,不忘總結和提高

當我仍是一個菜鳥的時候,當時的老闆問了我一個問題,每週寫週報的時候,想一想本身這一週到底收穫了什麼,這給我留下了很深的印象。我在想,既然我每次面試別人都問你最近有研究什麼新的技術或者看到什麼有趣的文章沒有的,那我本身是否是能這樣要求本身呢?不積跬步無以致千里,貴在堅持積累。

推薦文章

【重磅來襲】史上最全iOS面試題及答案

相關文章
相關標籤/搜索