記人生第一次阿里巴巴技術面試被拒經歷
作為一個研發人員,我相信大家都有一個大廠夢,夢想著有一天,能夠去大廠作業,去享受那種高手如林的作業環境,去真正體會什么是真正的高并發、海量存盤、大資料,去這些大的舞臺,發揮自己的聰明才智,做一款服務千萬級用戶的產品,升職加薪,走上人生”巔峰“,沒錯,我也同樣有這樣的期待,期待加入BAT這樣的大廠,從投遞簡歷到一面被拒大概經歷了15個作業日,就程序而言,阿里的面試體驗還是不錯的,給予候選人,不管是在時間和空間上很大的自主選擇權,就結果來看,讓我意識到自己認知盲區,自己本身存在的缺點,
本次投遞的崗位資訊:
- 部門:阿里巴巴IOT事業部
- BASE:無錫
- 級別:P7
01 投遞簡歷
由于工資上漲的腳步,無法追趕上海房價上漲的步伐,本人在兩年前在無錫置業,隨著年齡的日益增長,倍感生活的壓力,從2019年伊始一直計劃著有合適機會的話,回無錫作業,一個偶然的下午 2019年9月29,出于好奇,想了解無錫互聯網相關的作業機會,通過BOSS直聘,看到阿里巴巴在無錫有HC,于是準備了一份簡歷,發給了招聘負責人,說實話,看完無錫的整體互聯網需求,心里還是有些失落,原因如下幾點:
- 機會較少,有不錯產品的公司較少,大量技術外包公司
- 薪資較上海,有比較大的差距,基本是腰斬
- 上升空間、潛力有限,在這座城市從事互聯網行業作業,比較容易出現天花板
那些在一線城市(北京、上海、深圳)作業IT從業人員,在選擇退居新一線和二線城市的時候,需要慎重,得有心理準備,
02 預約電面
在2019年10月12號從南京出差回上海的動車上,接到了一個陌生電話,顯示固話所在地 浙江-杭州 ,面試官首先會說明來意,介紹部門資訊和崗位資訊,Base情況,接下來,就是詢問,可不可以當即進行電話面試,因為火車上人來人往(毫無準備,借口拒絕),推遲到下周二(2019年10月15號),這里建議收到電話面試邀請的同學,在沒有準備充分的情況下,不要貿然答應電話面試,建議有兩種選擇:
- 拒絕本次電話面試預約,表示自己最近沒有換作業的計劃
- 順延面試時間,表示當前比較忙,將面試時間順延,充分準備
據在阿里的朋友講,之前有被拒記錄,會對后面再次面試,有較大影響,可能因為第一次被拒記錄,直接無法進入電面環節,更有甚者,在HR面因為之前被拒評價,被一票否決,言而總之,總而言之,認認真真準備,機會都是為有準備的人而準備的,
03 面試準備
從網上收集資料并整理發現,不管是深度還是廣度,阿里面試的問題涉獵方方面面,如果之前沒有準備的話,想在兩天內復習完,難度較大,第一面主要是基礎,大概的復習思路是:
- 從簡歷中挑選一個自己最熟悉,有技術亮點的專案,梳理業務流程(What、Why、How)和技術堆疊(架構設計,中間件,開發框架),梳理好這些,將有助于在面試的程序中,引導并暗示面試官進行提問,把話題的主動權權掌握在自己手中,不要被面試官牽著走,容易掉到坑里去,
- 演算法: 排序演算法(冒泡、選擇、插入、快排、希爾、歸并、堆排、計數、基數、桶排)、查找演算法(暴力查找、二分、二叉樹、哈希)、LRU、LFU、FIFO、FILO
- 資料結構: 陣列、鏈表(單向、雙向)、樹(二叉樹,完全二叉樹、查找樹、紅黑樹、多路樹、B-Tree、B+Tree)、圖
- 千年不變的JAVA基礎連環炮: JVM、Java集合、鎖、并發編程(CAS、自旋、LockSupport)、網路編程(IO/BIO/NIO)、反射、動態代理、新特性、執行緒池、ClassLoader、執行緒間通信
- Spring連環炮: IOC、AOP、Spring Bean生命周期、Spring容器初始化程序、Servlet生命周期、后知處理器、BeanFactory和FactoryBean的區別、Spring處理請求程序、Spring父子容器
- ORM框架: Mybatis原理、一級快取、二級快取、Mapper掃描程序、動態代理程序(JDK自帶與Cglib比較)
- 資料庫: B+樹、索引結構、索引的分類、樂觀鎖、悲觀鎖、共享鎖、排它鎖、MVCC、GAP、ACID特性、隔離級別、事務原理、造成資料庫死鎖的原因,如何避免資料庫死鎖、如何使用explain、什么情況下會導致索引失效、如何進行資料庫優化、建立索引需要注意什么
- 中間件: nginx、配置中心(Disconf,Diamond、阿波羅)、Zookeeper、Elastic-Job、Dubbo、cat監控、Spring Cloud、ElasticSearch、oss、mq、redis、elk、druid、drools
- Web容器: Tomcat、Netty、JBoss
- 協議: Http、Tcp/IP、UDP、Https
- 加密: Md5(加鹽)、AES、SHA1、RSA
- 工具: Maven、Git、UML(用例圖、流程圖、ER圖、時序圖)
- 分布式: CAP、BASE、分布式事務(兩階段、三階段、TCC、本地訊息表)、服務的互斥性、服務的冪等性、分布式鎖(mysql、redis、zookeeper)、資料一致性問題
- 設計模式: 結合Spring框架:單例模式、工廠方法、簡單工廠、抽象工廠、創建者、責任鏈、策略、代理、模版方法、觀察者
- 源代碼: JUC、HashMap、ConcurrentHashMap、HashTable、sync、AQS、ReentrantLock、ThreadLocal、Dubbo、Spring、Netty、NIO(epoll、selector)
- 性能調優: 代碼、資料庫、快取、NoSql、JVM、頁面靜態化、CDN
04 電話面試
經過兩天的匆忙準備,面試官非常準時地按照之前約定的時間,出現在電話的那頭,而我在這頭,
簡單寒暄,再次確認Base資訊,隨即進入面試環節:
Q1:請介紹一下給你留下印象最深刻的專案是什么,用到了哪些技術
Q2:HashMap底層實作是什么
Q3:HashMap加載因子和擴容機制是什么
Q4:HashMap既然用到了紅黑樹,那么應該重寫什么方法
Q5:ThreadLocal是如何實作的
Q6:分布式事務問題如何解決的
Q7:如何保證MQ訊息和服務的冪等性
Q8:Dubbo的底層通信原理和IO模型
Q9:Dubbo的負載均衡演算法有哪些,默認是什么
Q10:Dubbo和Spring Cloud的比較
Q11:有沒有了解過阿里開源的配置中心產品
Q12:JDK自帶的執行緒池比較
Q13:Spring AOP原理
Q14:Mybatis使用程序中,沒有寫具體的Mapper實作,是采用了什么技術
Q15:基于Jdk動態代理如何實作
Q16:JDK動態代理和Cglib比較
Q17:資料庫樂觀鎖和悲觀鎖
Q18:資料庫為什么要建立索引,需要注意什么
Q19:有沒有看過一些原始碼,并做下講解
到此,面試結束,整個電話面試時長1個小時10分,比較順暢,有幾個比較底層的問題,沒有回答上來,只能講大概,缺少全域性思維,不會的就是回答的不會,沒仔細研究過的也就是回答的沒有仔細,(以上問題僅憑記憶留存)
05 通知結果
在面試完第一面之后,整體自我感徑訓算不錯,確實有幾個底層的原理性問題,沒有回答上來,接下來就是等待面試結果的程序,整個等待面試結果的程序,大概的程序是這樣的:
自信(感徑訓可以) ---> 喜悅(還在流程中) ---> 懷疑(未收到二面通知) ---> 焦慮(是不是掛了) ---> 失落(面試被拒) ---> 釋然(思考與總結)
在不知道面試結果的情況下,繼續準備二面的內容,最近公司有兩個比較急的專案都我這邊,白天忙作業,晚上復習到2~3點,在這里,非常感謝在背后默默支持我,充當后勤部長的小高同學,在這期間,通過朋友內部查詢,面試后4天,簡歷狀態顯示一直處在流程中,哈哈哈,這里我感覺應該要二面了,大概過了一周后,還是沒有收到二面的通知,這個時候就有點坐不住了,再次讓朋友內部確認,結果慘痛,面試官給的評價是:技術深度不夠,技術熱情不足,人溝通和邏輯很好,朋友也安慰我:面試就是碰,不同的面試官看中的點不一樣,作為一位RD,自己心里最清楚(自己基礎不夠牢靠),接到結果的那一刻,心里還是有些許失落,失落之余是對自己這些年的反思和總結,也給自己在接下來的作業中,指明了方向,整個阿里面試的流程,到此結束,(吐槽一下:面試被拒,沒有收到任何郵件與短信通知,建議在招聘環節中,做到有始有終)
06 思考與總結
思考:
-
在面試環節中,哪些問題給面試官留下了,技術深度不夠的印象?
關于深度不夠,個人感覺有幾個原理性的問題,沒有回答上來,最為致命,
-
在面試環節中,哪些問題給面試官留下來,技術熱情不足的印象?
關于技術熱情,沒有做成讓面試官滿意的答案,現有在公司專案中的解決方案只停留在解決當前問題和能用就行階段,源代碼了解程度不夠,對技術只是停留在知其然階段,沒有表現出技術改變世界的決心,
總結:
- 平時忙于處理團隊的事情,對技術的深度的求知欲,逐漸降低
- 對技術原理的好奇心,逐漸喪失,只是停留在使用層面
- 準備不夠充分,在投遞簡歷之后沒有利用好簡歷篩選的時間,梳理知識點
- 其實阿里的面試,也沒有想象中的難,在深度和廣度上充分準備,相信一定可以拿到Offer
計劃:
- 開通本博客,記錄成長歷程
- 從基礎著手,深入源代碼,了解背后技術實作原理
- 保持好奇心
- 每周能夠產出一篇技術博客
- 如果還有機會的話,明年此時,再戰阿里,爭取能進二面
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/6688.html
標籤:其他
下一篇:嵌入式軟體工程師面經
