非科班,自學兩年,覆盤兩個月,僥倖拿到頭條、阿里offer

“lz”是非科班自學的java,畢業後進入卡中心,現在是2年開發經驗。20年年初先後面了頭條、拼多多和阿里(淘寶和支付寶),併成功拿到阿里和頭條兩家的offer。

面試前我主要是不斷的刷題且看了很多大牛的面經進行查漏補缺,所以面試完後也想記錄下來,權當給大家提供點信息吧。(面試過了一週了,記憶也有點混亂,爭取想到多少就記下來多少)。

順便提一下面試體驗:頭條 > 阿里 > pdd
拼多多最垃圾的面試體驗,沒有之一。我約的視頻面,結果面試官說有事給我打電話面,然後給我一個文檔,是一個算法。我在寫算法的時候沒察覺到電話信號不好斷掉了。然後我回撥過去,面試官來了一句:你不要故意掛斷電話去查答案。我%@#¥@#%@5,保持微笑解釋信號不好。後來爲了信號好一點我去陽臺面試,凍的瑟瑟發抖,這個時候心態已經炸了,又冷又緊張,算法題有思路但是一直被這個人否定,最後掛了。

頭條

最開始面的頭條遊戲中臺,當時是第一次面試,沒有經驗,導致算法題雖然有思路,但是沒有寫出最優解,直接掛了。後來又被撈起來,因爲此時已有阿里的offer,所以膽子也大起來了,收拾心情開始面頭條。

頭條的面試特點基本就是一個套路:【自我介紹】->【項目介紹】->【手撕算法】->【基礎知識】,屢試不爽。

  • 自我介紹:我是xxx,來自xxx,畢業後在xxx幾年,期間負責xxx。
  • 項目介紹:xxxxx。項目的時候面試官會問你難點和解決方案,同時會給你提出場景,問你更優化的思路。
  • 手撕算法:多刷題,也可以看看別人面過的算法題,可能會重複。
  • 基礎知識:針對簡歷寫的東西問,我被問的較多的是一些中間價,Redis、MySQL、Kafka、ElasticSearch,Java基本沒問,因爲頭條這邊使用Go。

一面

  1. Two Sum
  2. 給定m個不重複的字符 [a, b, c, d],以及一個長度爲n的字符串tbcacbdata,問能否在這個字符串中找到一個長度爲m的連續子串,使得這個子串剛好由上面m個字符組成,順序無所謂,返回任意滿足條件的一個子串的起始位置,未找到返回-1。比如上面這個例子,acbd,3。給定m個可能重複的字符[a, b, d, d]呢?
  3. 提供一個整型數組以及一個整數s,如果該數組中存在n個連續元素,且元素相加之和大於等於s,則返回滿足該條件的連續元素的最小長度;否則返回0
  4. MySQL集羣。假如集羣出現延遲怎麼處理。
  5. Redis的zset實現延時任務
  6. 設計題:如何設計tiny url
  7. 爲什麼要四次揮手
  8. HTTPS

第二天收到hr小姐姐的電話,約了面試時間。

二面

  1. 自我介紹
  2. 項目介紹
  3. K Group反轉鏈表。寫了棧和迭代兩種實現方式,鏈表的題寫起來很痛苦,很容易邊界出錯。
  4. Redis的持久化機制
  5. MySQL的隔離級別
  6. MySQL索引,聚簇索引和二級索引
  7. Redis高可用方案
  8. 介紹一些Kafka的一些概念
  9. Kafka如何保證消息有序
    ...忘了

過了一天又收到hr小姐姐的電話,開心。

三面

  1. 自我介紹
  2. 項目介紹
  3. 第K大的數
  4. 設計題:秒殺系統
  5. MySql的索引優化
  6. HTTPS
    ...忘了

三面完了正好是週五,忐忑的等到了週一,以爲掛了。結果下午收到hr加微信,約了hr面。

hr面

  1. 爲啥離職,怎麼想的
  2. 介紹項目
  3. 怎麼和團隊的人溝通,和成員出現衝突時怎麼解決。
  4. 期望薪資,你現在的薪資

三個工作日收到了offer,頭條面試體驗還是很棒的。

找朋友內推的螞蟻金融核心,結果第二天就被拒了,杭州淘寶給我來電話,說我被撈起來了。確認了一下,確實如此,那就面吧。

阿里

還是很想去阿里的,所以也很忐忑,淘寶一共經歷了4輪技術+1輪筆試+hr面,流程很長,面的我壓力山大。
阿里的面試特點:【自我介紹】->【項目介紹】->【場景解決】->【基礎知識】,阿里面試除了基礎以外,也很看重候選人的解決問題的思維。還是需要候選人有點積累的,假如你寫的項目不是自己的,很容易就被問出來。

一面

  1. 自我介紹
  2. 項目難度介紹
  3. 如何實現延時任務
  4. 如何實現限流
  5. 線程池的參數
  6. 能不能自己實現一個java.lang.String並加載
  7. Redis爲什麼這麼快
  8. epoll和poll的區別
  9. 進程同步的方式

二面

  1. MySQL的索引機制
  2. 如何自己實現內存分配和管理?不太懂,然後說了jvm的垃圾回收機制
  3. 你們公司內部的RPC框架,介紹一下
  4. Redis的key過期策略
  5. 緩存穿透和緩存雪崩
  6. 分佈式鎖
  7. 如何實現全局的id生成策略
  8. 悲觀鎖和樂觀鎖
  9. 紅黑樹瞭解麼

三面

  1. 如何實現羣消息已讀
  2. 消息推送如何保證不重複
  3. Kafka如何保證消息的可靠性
  4. RPC是什麼,和http調用有什麼區別
  5. 說一說你項目的架構
  6. GC
  7. MySQL的索引原理,給了一個場景,如何優化
    ...忘了

面完3面後居然又來了一個筆試題

筆試

  1. producer-consumer
  2. 兩線程交替打印
  3. 多線程模擬100分錢隨機分給20個人,每個人最少分配到2分錢

四面

  1. 寫個producer-consumer吧,我說上次寫過了。。傻了。。不該說的,然後面試官換了一道題,還好比較簡單,寫個二分查找,2分鐘寫完完事。
  2. 項目難點
  3. MVCC
  4. HTTPS
  5. ElasticSearch的查詢過程
  6. Kafka如何保證高可用
  7. Reids的集羣和選主
  8. 知道什麼分佈式一致性算法
  9. 如何實現定時關單
    ...忘了

HR面

阿里的hr面真是讓我難忘。

  1. 說說看,假如你是部門技術經理,線上商戶數據丟失怎麼辦
  2. 怎麼將一個產品推薦給其他的團隊,怎麼界定邊界
  3. 怎麼樣協調關係
    (我才2年啊喂,到這裏我已經快冒汗了,生怕最後一關斃掉了)
  4. 你和同事相處的情況怎麼樣,說說你幫助同事的一次經歷
  5. 薪資

阿里的面試流程很長,而且一個部門掛了以後,會被另一個部門撈起來,不停的面。總之來說,阿里的面試體驗也還不錯,就是經常被放鴿子。
支付寶的面試經驗其實也大同小異,我就不貼了。

覆盤經歷

1、衆所周知,面試這些大廠算法和底層是必不可少的一部分、所以刷題也是圍繞着這方面進行,押題大神左程雲的《程序員算法面試指南》對我幫助特別大,學習起算法來也是通俗易懂。(532頁,幾百道算法題)

2、刷題終究是必不可少的,籌備了好幾本面試寶典和一份Java核心知識寶典,共計有上千道面試題,抽空就刷題複查,其中技術點概況了:java基礎、jvm、多線程、高併發、分佈式、Redis、spring全家桶系列、dobbo、mysql、網絡協議、mybatis、ZK、nginx、kafka等等

3、Java面經,總結他人之長處彌補自身的不足,來自一羣大牛的面試經歷親述,有面試美團、騰訊、阿里等等。

整理分享不易,對個人覆盤面試資料、面經等等感興趣的朋友們可以點贊+關注,點擊這裏免費領取

祝大家在今年金九銀十能拿到心儀的offer!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章