首頁>科技>

前言

人人都有大廠夢,對於程式設計師來說,BAT為首的一線網際網路公司肯定是自己的心儀物件,畢竟能到這些大廠工作,不僅薪資高待遇好,而且能力技術都能夠得到提升,最關鍵的是還能夠給自己鍍上一層金,讓人瞻仰。

同樣的,我自己的個人目標也是阿里,但之前一直在一家小公司,一呆就是好幾年,現在通過不斷學習和實踐,提升了自己很多,也有了信心來阿里挑戰。下面,就是我這次面試阿里P6的一些經歷和心得。

阿里P6崗面試經歷

這次阿里的面試經歷實在太緊張+刺激+尷尬了,面試前還自信滿滿,面試後被吊打得懷疑人生。整個流程是四面,前兩面還順風順水,比較囂張,最後一輪技術面和HR面才讓我領略到,什麼是阿里?

不過好在面試最終還是順利的,目前offer已經到手,給的薪資也比較滿意,比上一份工作好多了,至於個人的具體背景,我就不一一交代了。

阿里一面:

自我介紹、說一下最近在做什麼事?可以跟我介紹下卷積神經網路嗎?(簡歷裡有寫到一個專案用到了CNN)可以說一下邏輯迴歸是什麼嗎?你覺得反向傳播和動態規劃之間有什麼樣的聯絡嗎?那你能說一下為什麼計算機會使用二進位制,而我們人類會使用 10 進位制呢?計算機是怎麼做加法的?那如何用加法代替減法?使用過 Linux 嗎?可以說下常用的 Linux 命令嗎?用什麼命令可以查詢文字中的文字?用什麼命令可以查詢磁碟儲存的容量?Vim 使用過嗎?可以說下有哪些快捷鍵嗎?我看你的部落格裡有一篇寫到了區塊鏈,你可以說下去中心化對我們的生活有什麼影響嗎?你覺得區塊鏈有價值嗎?在區塊鏈的世界中,那些資料怎麼樣會變得有效?(廣播機制、共識機制)類比打電話,兩個系統的通訊我們可以採用哪些方式?(我說了 http)說一下 HTTP 和 HTTPS 的區別HTTPS 中用了什麼加密方式,在什麼階段體現的?分散式的 CAP 理論了解過嗎?你了解的一些叢集有哪些選舉方式?公眾號裡寫了很多和 python 有關的文章,那你覺得這兩個語言使用起來有什麼差異?最近有看什麼書嗎?HashMap 為什麼執行緒不安全?是否模擬過不安全的場景?說一下 Java 的值傳遞和引用傳遞SpringBoot 和 SpringMVC 的區別說一下 Spring 中 bean 的載入過程JVM 的垃圾回收器了解嗎?垃圾回收演算法有哪些?JDK8 預設的垃圾回收器是什麼?有什麼想跟我溝通的嗎?

阿里二面:

自我介紹自己做的 app 上線了嗎?是自己做的嗎?簡單說一下學校的課程中你覺得哪一門學的最好?(都差不多)你學習了挺久的 Java,對於這門語言有什麼認識?或者和其他程式語言比起來有什麼不一樣的地方?那你在學習的過程中有什麼事情會讓你堅持做下去?開發這個 app 的動力是什麼?有參加過什麼學科競賽嗎?資料結構你覺得你學的怎麼樣?做一道程式設計題(用陣列模擬一個棧)智力題:你僱傭一個工人,他每天工作應該獲得一份金條,你有一根金條可以分成 7 份,但你只能對你的金條切 2 刀,請問怎麼保證你的工人每天都得到一份金條?你有什麼想問我的?

阿里三面:

這一輪的面試官是個架構師,目測應該是P8,整個過程瑟瑟發抖

你在專案中遇到哪些有挑戰性的點?流量在某一時刻暴漲,然後又猛跌如何應對?redis 訊息佇列如何對過期資訊/無效資訊進行刪除?講一講 redis 的持久化機制?為什麼JAVA類載入要用雙親委派?怎麼實現同步?JAVA鎖有哪幾種?兩種鎖的區別?了解過AQS嗎?場景題:給一個方法加上超時異常生產者消費者模型的作用是什麼?short s1=1;s1=s1+1;有什麼錯?short s1=1;s1+=1;有什麼錯?怎麼檢測一個執行緒是否持有物件監視器?Java程式設計寫一個會導致死鎖的程式如果你提交任務時,執行緒池佇列已滿,這時會發生什麼?Hashtable的size()方法中明明只有一條語句”return count”,為什麼還要做同步?swtich是否能作用在byte上,是否能作用在long上,是否能作用在string上?高併發、任務執行時間短的業務怎樣使用執行緒池?併發不高、任務執行時間長的業務怎樣使用執行緒池?併發高、業務執行時間長的業務怎樣使用執行緒池?

阿里HR面:

說說看,假如你是部門技術經理,線上商戶資料丟失怎麼辦?怎麼將一個產品推薦給其他的團隊,怎麼界定邊界?每天有那麼多人使用支付寶,這些資料如果給你儲存,你會怎麼設計呢?怎麼樣協調關係?你和同事相處的情況怎麼樣,說說你幫助同事的一次經歷?薪資

阿里超全面試題答案解析版:

由於文章篇幅有限,面試題的答案比較多,尤其是一些比較“刁鑽”的問題,都有非常詳細的答案解析記錄,所以都整理在了文件內,需要的可以私信我口令【要上天】免費獲取。

面試心得

關於這次面試阿里P6,只能說阿里是一個臥虎藏龍的地方,員工素質也非常高,待人也很友好,相信在阿里工作,會給自己帶了很多收穫。

提前了解好阿里的企業文化。阿里面試週期比較長,調整好心態,做好充分的準備。在崗位上要體現出一定的企圖心。除了梳理技術積累和專案經驗以外,還有對未來的業務開展有自己的思考和規劃。HR面很專業,要體現自己有能力融入阿里的文化體系。說在最後

現在很多程式設計師,都會陷入到一個怪圈:看到別人升職加薪,又覺得為啥別人運氣總是那麼好,我和他差不多時間進公司的啊!然後去跳槽,發現,現在的面試這麼難的嘛,動不動就底層原理,動不動就原始碼分析,Java不好做了,做Java的人太多了,我還是轉行吧。

歸總到一點,就是沒從自己思考,從身上找原因。無論對於程式設計師來說,還是對於其他崗位,想要漲薪升職,自己的能力肯定要跟得上,而唯一的辦法就是通過學習來提升自己。

廢話也不多說,我自己分享一下我自己的一套學習資料庫,大夥看看有沒有需要的:

Java核心知識點:

Java面試寶典:

Java基礎部分、演算法與程式設計、html&JavaScript&ajax 部分、Java web部分、資料庫部分、XML部分、流行的框架與新技術、軟體工程與設計模式、j2ee部分、EJB部分、webservice部分、其他。

學習視訊:

349

Java

Redis

最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 5G建設要花費巨資,為什麼不直接建立全國性免費wifi呢?