記一次菜鳥網路的面試經歷

来源:https://www.cnblogs.com/zhaoguhong/archive/2019/10/29/11762116.html
-Advertisement-
Play Games

我是一個不太愛折騰的人,因此在一個公司待久了,就不太會輕易跳槽。正因為如此,我在上家公司待了整整三年,在這裡,認識了一群可愛的人,便更不捨得離去。 但因為公司屬於傳統企業,技術上並沒有太大挑戰,個人也逐漸遇到了職業瓶頸,我也漸漸體會到了溫水煮青蛙的感覺,看似自己已經成為團隊的主程,其實與同齡人的差距 ...


我是一個不太愛折騰的人,因此在一個公司待久了,就不太會輕易跳槽。正因為如此,我在上家公司待了整整三年,在這裡,認識了一群可愛的人,便更不捨得離去。

但因為公司屬於傳統企業,技術上並沒有太大挑戰,個人也逐漸遇到了職業瓶頸,我也漸漸體會到了溫水煮青蛙的感覺,看似自己已經成為團隊的主程,其實與同齡人的差距越拉越大,於是依然決定換個環境。

阿裡巴巴作為國內最大的互聯網公司,是無數程式員的夢想,於是在七月份便投了阿裡旗下菜鳥網路的簡歷,一個菜鳥便開始了菜鳥網路的面試之旅。

一面

接到菜鳥的面試電話時,還是很激動的,因為之前從來沒有面試大廠的經驗,便在忐忑不安中開始了面試。

面試官先讓我聊了聊最近的項目,我便把項目講了下,面試官便以此為切入點,問了一下相關的知識

http 協議 轉 dubbo 協議 怎麼做的
dubbo 的架構設計說一下
mq 通知時,消費者沒消費到怎麼辦
redis 是單線程了嗎?有什麼好處
一般設置過期時間嗎,業務場景有哪些,過期策略有哪些
redis 持久化瞭解不,你們線上怎麼用的
你們線上為什麼這麼用?只用AOF行不行
你有什麼想問的?

一面大概用了半個小時,整體沒有太大難度,更多是聊了一些項目上的東西,做了一個初步瞭解。

二面

沒想到二面來的如此之快,一面結束的第二天,電話就打來了,當時我還在公交車上,便在車停站時趕緊下車,當時還下著矇矇細雨,我也顧不上那麼多了,找個了稍微安靜的角落就開始了面試。

二面問的技術面比較廣,先讓我聊了最近做的項目,以及讓我講了下項目中用到的單點登錄的流程,接著就是java基礎了

抽象類和介面你傾向用哪個?什麼場景下用抽象類
如何更好的實現一個單例
synchronized 和 lock 區別
公平鎖和非公平鎖
怎麼實現自定註解
類載入機制
如何實現自己的classloader
如何動態載入類
如何觸發full gc
用jvm命令如何觸發

最後聊了一些開放性的問題

瞭解過netty嗎
微服務瞭解過嗎,Service Mesh呢
五億數據,找出數量top100
10G數據,在記憶體小於10G如何分片
分片處理完如何彙總
分佈在多個節點上如何彙總
哈希取模如何哈希?哈希衝突怎麼辦?能完全解決哈希衝突嗎
資料庫樂觀鎖和悲觀鎖
秒殺系統如何設計?
redis分散式鎖如何玩?超時時間如何設置
zk的監聽原理,你來實現你怎麼做
主動推送怎麼實現

整個面試聊下來,感覺還算不錯,基本都回答出來了。

三面

大概又過來一周,hr通知要到現場面,約的是上午十點,為了能準時趕到,我提前一天去了杭州。

第二天早早的就起來了來到了面試地點,因為來的比較早,就坐在菜鳥大樓的外面等。七月的杭州似乎格外的熱,看著菜鳥大廈的人進進出出,每個人似乎都很忙,我不由的想,自己今後是否有幸也能成為他們中的一員。

三面的形式完全出乎我意料,來了兩個面試官,先做了自我介紹,便開始了面試。

整個面試過程都讓我在黑板上畫圖講解,他們會不間斷的提問並做記錄。

先是讓我畫了項目的架構圖,面試官指出了我項目中存在的一些問題問我如何解決,然後穿插著對項目中用到的一些技術進行提問

消息如何保證一定被消費,如何沒有消費到怎麼辦
Redis 怎麼保證不丟數據,能不能保證嚴格意義的一定不會丟
Redis 集群,生產環境Redis 如何做數據遷移
一致性hash演算法
資料庫是怎麼保證一定不會丟失數據的
瀏覽器敲入一個功能變數名稱,儘可能詳情的說下接下來網路協議層面發生了什麼
瞭解過哪些鎖,volatile 說下

三面持續了大概一個小時,面的不太好,主要是網路協議那一塊,我回答的太爛了

四面

四面是一個看起來非常平易近人的大叔,全程微笑和我聊天,沒有一點架子,應該是 Team Leader

整個過程沒有聊技術細節,主要聊了一些技術的方向,業務的理解,過往的經歷。整個過程還是聊的很愉快的。

復盤

整個面試過程問的知識點並不算難,也沒有很偏的題,很多都是開放性的問題。

例如redis在生產環境做數據遷移,一個只看過幾篇博客的人和一個確實親身經歷過這種場景的人,回答的絕對有差別,而正是這種問題,才能看出來差距。

遺憾的是最後還是沒通過面試,我覺得原因主要如下

  1. 面試阿裡過於匆忙,沒有做好準備,也沒有先拿小公司練手
  2. 基礎知識仍有欠缺,例如網路協議和演算法一直都是我的弱項
  3. 因為一直在傳統企業,缺乏互聯網項目實戰經驗,雖然自己看過許多這方面的知識,知識廣度還算可以,但更多是紙上談兵,缺乏實踐
  4. 四面時自己犯了一個嚴重的錯誤,因為面試官屬於比較和氣且聊得來的類型,導致我在聊天的過程中過於隨意,說話沒有做到有的放矢,該說的不該說的都說了,給人一種過於浮躁的感覺。

面試要註意什麼

在我看來,面試不僅僅是實力加運氣,個人發揮也很重要,有的人面試經常能發揮百分之一百二的實力,我總結了幾點

  1. 不卑不亢,面試是一個互相認同的過程,既不能狂妄自大,也不要妄自菲薄。
  2. 講話要有邏輯,做到條理清晰,層次分明。我身邊有同事技術明明不差,但講問題時卻抓不到重點,聽他說話總讓人有種一頭霧水的感覺。
  3. 個人外在情緒展現可以隨著面試官情緒稍作調整,這樣易於拉近和麵試官的關係。但你的內在情緒不應該受影響,自信,沉穩應該一直保持。
  4. 遇到不是特別清楚的,可以講一下自己的思路,或者在征求面試官同意的情況下,講一下類似問題的解決方案。
  5. 如果問題實在不會,不要強答,直接說不會,要及時止損,避免越陷越深。
  6. 面試有一定的運氣成分,但可以引導面試官到自己擅長的方向上去,但不要強行帶節奏。

寫在最後

雖然沒能進阿裡,但我並不沮喪,只是有些遺憾。畢竟在這條路上,我一直在努力,過程已經足夠豐富多彩,結果已然沒那麼重要,順其自然就好。

生活本就是一個不可預知的過程,只要朝著更好的方向前進就好。況且,塞翁失馬焉知非福,現在我入職了一家很不錯的互聯網公司,做的是自己喜歡的中間件研發,而且又遇到了一群可愛又有趣的人。這樣的結果,我已然滿足。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、多態的語法 1.關於多態中涉及到幾個概念 (1)向上轉型(upcasting) 子類型轉換為父類型,又被稱為自動類型轉換 (2)向下轉型(downcasting) 父類型轉換為子類型,又被稱為強制類型轉換(需要加強制類型轉換符) (3)無論是向上轉型還是向下轉型,它們之間都必須有繼承關係,否則編 ...
  • 微服務架構 網關:路由用戶請求到指定服務,轉發前端 Cookie 中包含的 Session 信息; 用戶服務:用戶登錄認證(Authentication),用戶授權(Authority),用戶管理(Redis Session Management) 其他服務:依賴 Redis 中用戶信息進行介面請求 ...
  • 從 MariaDB 一張表內讀 10 萬條記錄,經處理後寫到 MongoDB 。 Batch 任務模型 具體實現 1、新建 Spring Boot 應用,依賴如下: 2、創建一張表,並生成 10 萬條數據 3、創建 Person 類 4、創建一個中間處理器 5、創建 ,用戶資料庫映射 6、創建任務完 ...
  • 微服務是什麼? Spring Cloud是什麼? Spring Cloud版本命名方式? Spring Cloud版本選擇? ...
  • 方法一:下載Pycharm與安裝 下載地址:https://www.jetbrains.com/pycharm/ Pycharm專業版和社區版對大多數人來說差別不大,區別如下: 我們下載Linux的社區版: 右擊安裝包 -> Extract here 生成一個Pycharm的文件夾 cd到該文件夾的 ...
  • 1、首先創建一個抽象父類: 2、創建兩個列印類繼承抽象父類: 3、在創建一個properties配置文件,文件名為pro.properties 4、利用反射和多態調用列印類中的方法 測試得到結果 結論: 利用好java反射和多態機制,可以在不改變代碼的情況下,根據鍵值創建對應的類對象,通過多態方式執 ...
  • 今天進行了SSM框架的整合,遇到了很多的錯誤,但所幸都有解決,以下為基礎的整合步驟,後續待完善 1.SSM整合所需要: spring的jar(包含tx)、springmvc的jar、mybatis.jar、mybatis-spring.jar、tomcat、commons-dbcp.jar等 2.創 ...
  • __new__方法 創建實例的方法 __new__方法是在類創建實例的時候自動調用的 實例是通過類裡面的__new__方法創建出來的 先調用__new__方法創建實例,再調用 __init__方法初始化實例 __new__方法,後面括弧里的cls代表的是類本身 必須有返回值 父類名.__new__( ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...