6面螞蟻,面試官被我唬住,竟然開36K,面試怎麼忽然簡單起來

螞蟻金服-面試前

螞蟻的面試挺獨特,每輪面試都沒有 HR 約時間,通常是晚上 8 點左右面試官來一個電話,問是否能面試,能的話開始面,不能就約一個其它時間。java

全程 6 面,前五面技術面,電話面試,最後一面是 HR 面,現場面。大佬說技術這方面確定要掌握好,其實面試題也能夠背一背,要是他提早有時間就看一下面試題說不定有些問題就能夠回答得更好,能夠起個抱佛腳的做用。golang

一面

  • 介紹一下本身
  • 問項目經歷, 聊"數據同步"
  • 接着聊上了 K8S 的項目
  • 有沒有什麼鑽研得比較深得技術?(大佬:kubernetes, golang, prometheus, java)
  • kubernetes 的架構是怎麼樣的?
  • 這個問題很大,拆成 apiserver、controller、kubelet、scheduler 講了一下
  • golang 與 java 的比較
  • 這個問題又很大,當時主要對比了 vm、協程支持、面向對象和泛型的區別、以及本身對各自使用場景的一些理解
  • golang 的 gc 算法
  • 知道是三色標記,不過細節說不上來
  • 從無限的字符流中, 隨機選出 10 個字符
  • 沒見過也沒想出來,查了一下是蓄水池採樣算法,經典面試題,沒刷題吃虧了
  • 怎麼擴展 kubernetes scheduler, 讓它能 handle 大規模的節點調度
  • 單節點提速:優選階段隨機取部分節點進行優選;水平擴展 scheduler 節點,pod 作一致性 hash 來決定由哪一個scheduler 調度
  • 你有什麼想問個人?

一面其實有點僵,大佬本身徹底沒放開,面試官對大佬的回答沒有什麼反饋和深刻,都是"哦好的"而後就過了。因此大佬當時面完以爲本身其實已經掛了(要是對候選人不感興趣,有時候也就問完問題走個過場溜了),後來收到二面電話着實吃驚了一下。面試

二面

  • 先聊了聊項目
  • 給 Prometheus 作了哪些改動?
  • 自研配置中心, 具體作了哪些內容?
  • 有用過 MySQL 的什麼高級特性嗎?
  • 這不太理解,我問什麼算高級特性,面試官就切換到了下一個問題
  • 配置中心的核心數據表是怎麼設計的?
  • 爲何在業務裏用 Redis, Redis 有什麼優勢?
  • 單線程:併發安全;高性能;原語與數據結構豐富;採用普遍,踩坑成本低
  • 對 Redis 裏數據結構的實現熟悉嗎?
  • 說了一個 zset 跳錶
  • 用過 Redis 的哪些數據結構, 分別用在什麼場景?
  • Java 初始化一個線程池有哪些參數能夠配置, 分別是什麼做用?
  • 本身寫的 Java 應用調優過哪些 JVM 參數, 爲何這麼調優?(這個問住了,大佬只知道最大堆最小堆,開 G1,開 GC 日誌以及 OOM dumper 這些基本的)
  • 用 Jetty 的時候有沒有配什麼參數, 爲何這麼配?
  • Jetty QTP 等待隊列配置成無限的話, 你以爲好嗎? 會有什麼問題嗎?
  • 用過 Linux Bash 裏的哪些命令, 分別用它們幹嗎?

一道筆試題: 須要在給的連接中做答, 不能 google, 不能跳出, 不能用 IDE: 算法

題目是這樣的: docker

啓動兩個線程, 一個輸出 1,3,5,7…99, 另外一個輸出 2,4,6,8…100 最後 STDOUT 中按序輸出 1,2,3,4,5…100 api

大佬:用 Go 實現吧 面試官:不能夠,用 Java 的 notify 機制實現 大佬::(還沒意識到問題的嚴峻) 那用 Java BlockingQueue 面試官:說不能夠, 要求用 Java 的 wait + notify 機制來實現 數組

由於徹底沒寫過 wait + notify,只能表示不會, 面試官說那行吧你能夠用 go 寫 安全

最後用 go channel 實現了一版, 不過給的網頁上不能運行代碼,也不知道寫得對不對,而後面試結束。 數據結構

這一輪面試官延續了一面的風格,問完一題就趕緊下一題了,彷佛沒有表現出對個人回答有興趣或承認。所以這輪面完,他以爲本身可能又掛了…架構

三面

  • 依然先聊項目
  • 對監控警報的項目很感興趣, 問了挺多細節,。最後問了一個問題::如今要你實現一個語義不弱於 PromQL 的查詢語言, 你能實現嗎?(這裏雖然看過一些 Prometheus 的代碼,但其實對 PromQL 的 lexer 和 parser 部分沒有細看,還好以前由於數據同步項目裏想寫聲明式 Stream SQL 研究過一點 ANTLR,用 ANTLR 寫語法 + AST 遍歷塞查詢邏輯給糊弄過去了。)
  • 以爲作得最深刻的項目是什麼(固然是數據同步)
  • 聊數據同步項目
  • 問 Linux 掌握得怎麼樣?(沒有系統學習過,基本上是本身運維踩坑積累的)
  • 問 Golang 掌握得怎麼樣?(用了半年, 看過 effective go)
  • 問算法掌握得怎麼樣?(到圖爲止均可以)
  • 問最短路算法(只記得 dijkstra 了,描述了代碼流程)
  • k8s 掌握得怎麼樣?(沒有本身寫過 controller 和 scheduler,可是對概念都很熟悉,看過 xxx 這幾部分的源碼)
  • k8s 的 exec 是怎麼實現的?(這個問題正中下懷,以前寫了 PingCAP 的小做業正好對這塊特別熟悉)

這輪聊得順暢多了。同時發現螞蟻的面試官彷佛挺喜歡讓你本身評價:「你以爲本身 xxx 掌握得怎麼樣?」(只有五位面試官,樣本不夠大,不能做數哦),這類問題其實我慌得要死,怕吹過頭了答不上來,面試掛了事小,丟了面子事大。早知道就預習一下怎麼吹噓了。

四面

  • 介紹一下本身
  • 以爲本身基礎知識掌握怎麼樣
  • 平時通常會用到哪些數據結構?
  • 鏈表和數組相比, 有什麼優劣?
  • 如何判斷兩個無環單鏈表有沒有交叉點
  • 如何判斷兩個有環單鏈表有沒有交叉點
  • 如何判斷一個單鏈表有沒有環, 並找出入環點
  • TCP 和 UDP 有什麼區別?
  • 描述一下 TCP 四次揮手的過程當中
  • TCP 有哪些狀態
  • TCP 的 LISTEN 狀態是什麼
  • TCP 的 CLOSE\_WAIT 狀態是什麼
  • 創建一個 socket 鏈接要通過哪些步驟
  • 常見的 HTTP 狀態碼有哪些
  • 301和302有什麼區別
  • 504和500有什麼區別
  • HTTPS 和 HTTP 有什麼區別
  • 寫一個算法題: 手寫快排

這一輪全程問的基礎知識,基礎紮實的話就沒問題了,不過大佬感受有一點像校招的問法。

五面

  • 介紹一下本身
  • 在 k8s 上作過哪些二次開發?
  • 本身用 Helm 構建過 chart 嗎?有哪些?
  • 有沒有考慮過本身封裝一個面向研發的 PaaS 平臺?
  • 配置中心作了什麼?
  • 爲何不用 zookeeper?
  • 配置中心如何保證一致性?
  • Spring 裏用了單例 Bean, 怎麼保證訪問 Bean 字段時的併發安全?
  • 用併發安全的數據結構,好比 ConcurrentHashMap;或者加互斥鎖
  • 假如我還想隔離兩個線程的數據, 怎麼辦?
  • ThreadLocal,而後舉了個例子
  • Golang 裏的逃逸分析是什麼?怎麼避免內存逃逸?
  • 這個不知道,認慫了
  • 對比一下 Golang 和 Java 的 GC
  • 答了一下 CMS、G1和三色標記,我對比的點是 JVM 有分代回收,Go 的 Runtime 沒有,沒能深刻地講
  • Golang 的 GC 觸發時機是什麼
  • 閾值觸發;主動觸發;兩分鐘定時觸發;
  • 有沒有寫過 k8s 的 Operator 或 Controller?(大佬:沒有寫過)
  • 談一談你對微服務架構的理解
  • 大致思路"微服務本質是人員組織架構演進與關注點分離"
  • 談一談你對 Serveless 的理解
  • 大致思路"Serveless 是繼 docker 與容器編排以後的又一次應用開發與基礎設施提供方之間的邊界劃分"
  • 你認爲 Serveless 是將來嗎? 爲何?
  • 大致思路"是雲服務的將來,把蛋糕從企業的IT、運維與中間件部門切走,造成規模效應,作得越多賺得越多;公司內的話 servless可以幫助加速前臺業務迭代,但對中後臺的收益還看不到,將來可能會有比 servless 更適合中後臺的架構"

面試官:最後你有什麼要問個人?

大佬:爲何足足安排了五輪技術面,並且其中有兩輪彷佛和 k8s 沒有關係啊?

面試官:咱們以爲你作過的東西挺多的,各個方向都想讓你嘗試一下

我:那這輪是最後一輪技術面嗎?

面試官:不必定

後續還問了面試官一些業務相關的問題,就不贅述了

五面最後的三個吹水問題大佬說還挺感興趣,惋惜面試官只是聽他講,沒有跟他討論。還有就是問了面試官才知道,二面四面的面試官是 PaaS 平臺那邊的,所以主要問 Java 沒有涉及到 k8s 和 go。

六面(HR 面)

  • 以前據說過阿里系的 HR 是來"聞味道的"(看你是否適合阿里的風格),並且有一票否決權。因此仍是挺有壓力的。
  • 問經歷
  • 爲何要考慮出來看看呢?
  • 金句:「如今本身的技術成長有點碰到瓶頸,加上一直對您公司欽慕有加relaxed」"
  • 如今公司的主營業務是什麼?(這塊往技術上問了不少,感受是想考察我解釋複雜問題的能力)
  • 如今帶人嗎?report 層級是怎樣的?
  • 對本身這幾年的經歷滿意嗎?
  • 以爲本身有什麼缺點?
  • 碰到過什麼很挫敗的事情嗎?
  • 將來的職業規劃是怎樣的?
  • 看機會的時候,主要考慮的是待遇、平臺、人員仍是什麼其餘因素?
  • 如今的待遇如何
  • 有什麼想問個人?

總體聊了 40 多分鐘,話題挺廣的,面試官也說了系統部這邊壓力挺大的,優秀的人才才能留下來。

大佬以爲 HR 面裏除了談薪酬的部分沒有什麼可準備的,想說什麼直說就行。由於到了 HR 面至少證實你的技術沒什麼問題,直說出來方便 HR 判斷兩邊的價值觀是否合拍,假如真的不合拍,那其實在 HR 這一面掛了比起進去以後再後悔又跳槽要好不少,畢竟你們都不喜歡頻繁跳槽的簡歷。

小結

完過後問了一些主觀評價:

面試難度:正常

面試體驗:還不錯,感受沒這麼難。(反正我是酸了)

問題偏向:基礎知識,開發常識,技術看法

螞蟻的面試風格比較"高冷",面試官給大佬的一致感覺就是很強,臥虎藏龍。面試內容上在基礎知識部分相對考察得多一些,沒有偏門和獵奇的問題,基礎知識紮實的同窗能夠大膽投投看螞蟻。 

圖片

相關文章
相關標籤/搜索