
背景
一個廣州非985/211普通本科生,計算機科學與技術專業,以前老是夢想能考一個厲害一點的學府,學習物理專業(因為初中和高中對物理比較有興趣),無奈高考考得不盡人意,來到了計算機專業,才知道有C語言這玩意,
大二的時候跟著作業室開始做專案,前后差不多完成了5個Android方向的專案,主做的有3個,這一年,邊學習Java邊學習Android開發
大二到大三那段時間投了很多家公司,讓我記憶最深刻的就是阿里的求職之路了,一共面試了六次!
有時候選擇真的是非常重要了,
應屆生坎坷的阿里求職路
阿里內推實習招聘(第一次)
由于過年在家那段時間,作業室的師兄幫我們內推了阿里巴巴春招崗位,自己對部分不熟悉就寫了淘寶和UC,后來內推名額滿了,一個研究生師兄幫我內推到yunOS事業部,現在看來,我更推薦學Android的朋友選擇支付寶和淘寶,
阿里一面:
第一次打電話給我的時候我正在等CVTE的第二面,所以和面試官說等會再面試,第二次打電話給我的時候已經很晚,那時候在地鐵上清不清楚面試官說話,說等會我出地鐵再面試,出地鐵的那一刻好緊張,CVTE的面試瞬間給我拋到九霄之外,具體的面試內容我大致只記得談談負責的專案;為什么會喜歡做安卓;安卓的系統啟動機制;安卓應用的優化還有socket的應用,后來問提問環節問了面試官的作業地點和我面試崗位的作業后,發現是在杭州,請求面試官能不能幫我轉到廣州后,他說可以,
阿里二面:
大概在一面過了一個星期后打過來,主要面了Java基礎;執行緒同步;集合機制;安卓專案中用到的技術;還有一些不太記得了,最后談談規劃后發現這個崗位還是在杭州,所以又請求面試官能不能轉到廣州崗位,他說可以后結束面試,二面過后,官網發現自己的狀態變成拒絕后重新多了一個簡歷評估的狀態,
阿里三面:
大概距二面過了15天,我本來以為阿里已經拒了我了,三面面試官打來的時候是我正要去看校辯論賽開場表演賽,剛出門就接到面試官電話,談了一下Java技術和Android技術后覺得我OK,說了是yunOS事業部的,問我有沒有興趣還有以后的職業規劃后,提問環節問了還有沒有面試,面試官說沒有了,官網狀態瞬間變成3面通過,
阿里四面:
在看比賽程序中,接到總監電話,表明了是yunOS事業部是否想參與實習,表明我通過事業部面試,問我家庭情況,個人性格及其在校活動,職業規劃等,并和我說了入職時間和會有人后續聯系實習事宜,
結果:阿里內推通過,選擇阿里巴巴yunOS事業部實習
阿里實習面試(第二次)
因為知道事業部今年實習生基本都沒有轉正機會,身邊很多實習的研究生師兄自己在阿里平臺上聯系其他事業群,無奈我還天真的以為事業部會安排我們面試其他事業部,然而并沒有〒_〒,讓我感覺到巨坑,后來自己在阿里平臺上搜了做Andoird作業的很多工程師后,有一個主管愿意接納我,面試了一些內容后,在后續面試程序中由于崗位需要在北京作業,而且可能需要轉前端,不符合自己的發展意愿,所以就明確說了,也很感謝這位大哥給我機會,
阿里(第三次)
實際上從HRG在杭州告知我回來后會有一個終面部門交叉面,結果在騰訊失利的第二天,直接電話說“對不起......”我直接說理解后掛了電話,
在面試匯豐過后,一段時間,差不多到了11月末,面試了阿里健康,得知從集團簡歷池中選了我之后安排面試,談了轉正待遇后安排面試,兩面都視頻面試,
一面:
安卓基礎;專案技術;性能優化;學習目標;Java基礎及其記憶體回收等
二面:
專案技術;安卓Framework知識點;性能優化;開源框架知識;提問環節問了所做業務等
結果:過了,資薪待遇談了也清楚了,因為實習時間及所在地點時間與自身情況沖突,也不是自己最想要去的部門就拒絕了,

被迫考慮機會
在面試阿里以及騰訊三四次的程序中,雖然有識訓到其他 offer ,但并不是我大學時期心儀的 offer,所以到最后,還想去網易搏一搏,結果這一搏,就一直待到了將近一年,
真的,很多時候未來發生什么你都不知道!(預言家 =,=), 我也不會預想到我作業快一年的部門因為公司架構調整而需要被迫考慮重新找作業,
后來是之前的同事朋友幫忙搞得內推,和公司請了假,本來擔心狀態不好,不過一想到自己以后要做的事,立馬就飛了!不要慫,就是干!
阿里(第四次)社招一面
我還以為要筆試,結果直接進入正題面試,有點措手不及,不過先自我介紹,所以我調整了一下情緒和思路,面試官很帥氣啊,是一個很年輕但是應該有蠻長經驗的面試官,問得問題主要有:
- 推送sdk底層實作
- socket相關實作
- mvc mvp mvvm區別與專案使用情況
- 網路層相關設計,volley底層實作,快取相關
- 自定義view相關
- 下載模塊涉及,成功率相關
- 彈幕與播放器相關
- 跨行程通訊手段與注意點,webview相關
- EventBus相關
- 性能優化經驗及手段
- 為什么想要換作業
- 興趣愛好,作業室情況,如何協調作業室與辯論隊
- 平時學習習慣和安排
上述的點可能有一些遺漏或者記得不太清楚,不過整體面試官給人的感覺真的很好,大廠的環境也贊!除了前面聊技術外,也聊興趣愛好,平時一些習慣等,整體來說氛圍很輕松,
阿里(第四次)社招二面
二面是一個臉色紅潤,很和藹的一個面試官負責,想了一下,除了和大學廖老師溝通有這種感覺之外,這位面試官給我一種導師的感覺哈,面試的問題主要有:
- 網路請求涉及,如何設計快取
- 性能優化手段,場景
- dp的設計
- 熟悉的底層原始碼,廣播底層實作,這一點自己確實還了解不夠,不過自己講了哦從wsm->activity->view的事件傳遞程序
- 聊之前阿里的實習
- 為什么想要換作業
- 職業規劃
- 短視頻行業,Bolo相關及一些競品,因為平時也會留意自己開發的軟體及競拍,行業情況,所以有一些自己的見解
- 聊興趣愛好
- 聊王者榮耀產品相關
整個程序面試官給人印象很深,除了互相交流得開外,他的問題也很有深度,不過如果真的答不上就請教下就好,最后面試官問了是否有哪些問題提問咨詢:
- 從剛才所述的職業規劃,希望面試官給出意見和建議
- 如果有后續面試,會在什么時候安排
還是到之前的面試辦公室,10樓的環境給人的感覺很清新,自由,
阿里(第四次)社招 leader 面
面試官很年輕,讓人感覺很有干勁,其實今天一整天都昏昏沉沉的,人狀態很差,但是和面試官聊天,能說到的都是內心的一些想法,所以聊起來很舒服,他的一些建議也很值得我思考反省,
- 自我介紹
- 崗位要求
- 實習內容
- 作業負責內容
- 換作業原因
- 優缺點
- 學校經驗
- 家庭情況
- 個人現狀
面試的問題可能記不太清楚,但是有兩個點我很深刻, 第一個是自己現階段要穩下心沉得住氣,幾位面試官都和我說到了這一點,確實是這樣,我很看重職業生涯前幾年的學習積累與心態沉淀,也明白了當前自己最需要做的事是什么, 沉得住氣,我自己的理解是:
- 心態不要浮躁,相信自己的規劃和按照自己的規劃走
- 學習新知識,要學會從宏觀上懂得一個知識牽扯出的知識網,更要耐得住心去一句一句代碼debug每個細節
- 清楚地看清自己的技術現狀,虛心地取長補短
那天結束之后,用新的心態去學習retrofit原始碼,記得大學的時候看imageloader,volley的時候,會沒有太多的耐心去深挖,雖然知道流程和某些細節,但是對底層原理其實沒有足夠的掌握,很奇怪,今天越挖,發現自己對Android越無知,我第一次感到自己無知時,確實開心的,當我向我之前同事說某個原始碼細節的邏輯和我們專案所用到的邏輯有偏差時,他去調式之后發現“是專案用錯了!”,感覺心里還是美滋滋的,
第二個是自己表述不夠精簡,有時會用辯論的方式來解釋一大堆東西,會讓聽眾感覺很羅嗦,這也是我的問題,改!應該嘗試先下結論后再根據情況做分析,
面試完走出辦公室,還看到面試官拿著筆記本,打了個招呼,感覺心暖,感謝這次機會,
阿里(第四次)社招HR 面
hr面應該是我最緊張的一面,可能是最后一面,也很看重這次的面試,擔心自己說得不好,程序中自己也因為喉嚨的原因喝了多次水,思維中斷了好多,不過,面試官是一位比較有親和力的姐姐,無論的問問題的方式還是追問一些細節,都讓人挺舒服的,不會感受到太大的壓力,
- 入職半年多,為什么選擇換作業
- 現在事業部狀況
- 負責的專案作業
- 最困難的事是什么
- 職業規劃
- 堅持最久的事
- 最有成就感的事
- 薪水相關
總的來說,今天面試的表現,自己給自己的評價是一般,最后溝通的時候因為薪資問題最后黃了,
不甘落敗嘗試螞蟻金服
螞蟻金服的面試機會是那時候在看機會的時候,在脈脈認識的一位螞蟻金服的面試官那里爭取的,在溝通過后,對其部門的意愿挺大的,所以就嘗試下把簡歷給了面試官,過了幾天,沒想到收到了其部門HR的面試邀約,剛好那時候公司部門架構調整到了尾部,我們可能被合并到一個新的部門中開展新的作業,可能大學實習給我留下非常好的印象,很喜歡阿里的技術部門,加上 之前UC 的面試沒有如意,所以就毅然進行面試,
阿里(第五次)社招一面
- 介紹自己
- 介紹簡歷上的專案
- 高性能串列實作,重點圍繞 recyclerview 展開,如何復用,如何快取
- 性能難點如何攻克
- 性能優化方面專案中做了哪些作業
- 熱修復原理,類冷啟動修復原理,類熱修復原理,classLoader雙親機制
- 換膚原理
- 設計一個圖片框架,我考慮的是如何加載,如何編解碼,如何快取,api的易用性,大部分參考 glide 思路
- 在很多數中找出前n個最小
- 自己的方向是什么? 想做業務,還是想做專點的技術,如何理解專案架構,
- 反提問:“自己技術性回答得怎樣,有哪些改進,”
面試官給的建議是:技識訓不錯,但是介紹部門業務和自己的切合度時需要 “表述要簡潔,邏輯要清晰”,
阿里(第六次)社招 leader 面
- 介紹自己情況,學android,實習經驗
- 介紹網易經驗,哪個專案最大,專案規模,專案人員分布
- 擅長哪一方面,這個問題非常致命,一定要選你足夠理解的,我那時候講的是性能優化,但是感覺講的不好
- android 虛擬機區別,編譯區別,dex區別
- 熱修復流程,原理是什么,業界有哪些方案,對比如何
- 打包流程是怎樣的
- 應用啟動相關流程,從范訓行程到MainActivity#onResume繪制整個流程
- 新版本android特性
- 手勢滑動事件分發
- view繪制流程
- gradle執行流程
- apk安裝底層細節
- 最后留了一道演算法題,我做了兩天之后發給面試官
阿里(第六次)社招 交叉面
- 介紹自己
- 專案經驗,團隊情況
- 對網路是否熟悉,一次http請求,https整體實作
- 以后想做什么,如何規劃自己技術
- 開源貢獻,博客記錄相關的開放性問題
- 反問:后面是否還有技術面試,得到的答案是基本不會有了,等 HR 面試就好
阿里(第六次)社招 HR面
- 介紹自己
- 專案經驗,團隊情況,學習情況,薪資待遇
- 未來技術規劃,是否考慮杭州,未來家庭規劃
- 反問:大概多久會有答復,得到的答案是當周周五前,

“選擇” > "努力"
當周周四收到了人生中第一個阿里的正式 offer,還是我最心儀的螞蟻金服的技術部門的 offer,技術方向和薪資待遇都大大超過我的預期,HR 讓我考慮一周之后給答復,
過了一周,我決定放棄這個 offer,并開始自己新的技術規劃,在新的部門好好干,一干,就干到了現在,
如果到現在問我,“當時放棄螞蟻金服的 offer 后悔嗎?”
我會說 “說真的有點遺憾,但我無法比較孰好孰壞,我現在就挺好的,”
如果你剛開始出來面試,那么就要用心去準備,去模擬,把每個機會都抓住,
如果你已經面試了幾家但是都還不理想,哪怕是疫情背景下,你不要將就,我一直都覺得做技術的不要將就,可能是我的性格,
那么繼續嘗試,把你每一次的面試的經歷都記錄下來,面試題是什么,你是怎么回答的,甚至你可以在面試的時候把自己的回答錄音下來,回去好好聽好好修正,一次會比一次好,
如果你有幾個offer在選擇上出現了分歧,建議要開始規劃從職業規劃來考慮offer,如果你打算未來深耕音視頻,那么短視頻技術offer則大于非短視頻技術offer,如果你打算考慮往技術經理/技術團隊管理,那么能帶團隊的offer > 不能帶團隊的offer,參與技術選型,技術架構搭建的offer > 負責某一塊業務的開發 offer 等等,
這幾年下來,我發現 “選擇” 和 “努力” 在不同時期有不同的側重,
- 畢業時期,“選擇” > "努力",好的平臺能帶給你更多的機會,更好的薪資待遇,讓你的視野更廣;
- 畢業前5年,“努力” > “選擇",當你有一個好的平臺之后,你要懂得利用平臺資源去學習,比如各種內網,公司技術福利等,并借著平臺專案的實踐機會去野蠻生長;
- 后幾年,“選擇” > "努力",這是因為前幾年為了積累的專業優勢或更高的視野讓你看清你以后要干什么,如果說選擇的是平臺,那么這個選擇就是未來要嘗試突破的方向,
當然,這些想法受限于我的經歷,難免難以茍同,
面試前充分準備
有些晦澀的點,或許它只活在面試當中,實際作業當中你壓根不會用到它,但是你要知道它是什么東西,
面試:如果不準備充分的面試,完全是浪費時間,更是對自己的不負責!
很多人在剛接觸這個行業的時候或者是在遇到瓶頸期的時候,總會遇到一些問題,比如學了一段時間感覺沒有方向感,不知道該從那里入手去學習,對此我針對Android程式員,我這邊給大家整理了一套學習寶典!
- Android學習路線圖
首先,對于沒有學習方向,知識不體系的人,我把我作業幾年整理的學習路線分享給大家,做一個借鑒作用,還不知道怎么學習的人可以直接照著我這個學習路線一個個的去學習,知識不體系的人可以參考下我整理路線的方式,總之希望能夠幫到你們!

- 模塊化學習資源
接下來是每個模塊我整理出來的檔案學習資料,幫助大家更細致化的學習,
《Android匯總復習資料—Java》

《Android匯總復習資料—Android》

《Android匯總復習資料—Android擴展》

《Android匯總復習資料—Kotlin》

《Android匯總復習資料—Flutter》

《Android匯總復習資料—演算法》

除了上面的學習路線,還可以額外的配合以下方式學習,效果翻倍~
①看視頻進行系統學習
前幾年的Crud經歷,讓我明白自己真的算是菜雞中的戰斗機,也正因為Crud,導致自己技術比較零散,也不夠深入不夠系統,所以重新進行學習是很有必要的,我差的是系統知識,差的結構框架和思路,所以通過視頻來學習,效果更好,也更全面,關于視頻學習,個人可以推薦去B站進行學習,B站上有很多學習視頻,唯一的缺點就是免費的容易過時,
另外,我自己也珍藏了好幾套視頻,有需要的我也可以分享給你,
②讀原始碼,看實戰筆記,學習大神思路
“編程語言是程式員的表達的方式,而架構是程式員對世界的認知”,所以,程式員要想快速認知并學習架構,讀原始碼是必不可少的,閱讀原始碼,是解決問題 + 理解事物,更重要的:看到原始碼背后的想法;程式員說:讀萬行原始碼,行萬種實踐,
主要內含微信 MMKV 原始碼、AsyncTask 原始碼、Volley 原始碼、Retrofit原始碼、OkHttp 原始碼等等,

③面試前夕,刷題沖刺
面試的前一周時間內,就可以開始刷題沖刺了,請記住,刷題的時候,技術的優先,演算法的看些基本的,比如排序等即可,而智力題,除非是校招,否則一般不怎么會問,
關于面試刷題,我個人也準備了一套系統的面試題,幫助你舉一反三:

④2020大廠面試高頻知識點
- 圖片
- 網路和安全機制
- 資料庫
- 插件化、模塊化、組件化、熱修復、增量更新、Gradle
- 架構設計和設計模式
- 性能優化
- Android Framework
- Android優秀三方庫原始碼

以上這些內容均免費分享給大家,需要完整版的朋友,點這里可以看到全部內容,或者點擊 【這里】 查看獲取方式,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/286914.html
標籤:其他
上一篇:十年自學編程成才(編程小白必看)
