艱辛挺過位元組Android研發崗4輪面試,收到sp offer月薪45k!揭秘位元組面試流程及考點

南方吳彥祖_藍斯發表於2021-06-01

前段時間,有個朋友又出去面試了,這次他面試目標比較清晰,面的都是業務量大、業務比較核心的部門。前前後後去了不少公司,幾家大廠裡,他說給他印象最深的是位元組。

3 輪技術面 + 1 輪 HR 面,他最終拿到了 45k*16薪 的 Offer。

第一輪主要考察 Java 基礎,二、三輪注重對應技術的掌握,以及對過往專案的業務理解。之所以令他印象深刻,是因為每輪都聊了一個半小時以上,確實讓他受益匪淺。

他最終選擇位元組,除了這是核心專案之外,還有一個原因,位元組的福利號稱業內最好,薪資也是同類公司中最高。

“薪資高、發展好、福利待遇優” 似乎已經成為位元組跳動的標籤。

而很多人覺得大廠門檻高:

“渣本雙非學歷進不了大廠!”  “工作不滿 3 年進不了大廠!”  “非科班畢業的,進不了大廠!”

可對於我這個渣本雙非畢業的朋友來說,進位元組,似乎並沒有那麼難。用他的話說,進大廠就靠一條: 技術實力。

你只要 技術實力夠好+在面試中表現得還不錯,就能拿下 Offer。

位元組跳動面試流程

今天我把透過一年多內推總結下來的 位元組求職流程寫一遍!不論你是求職老司機,還是小白萌新,期望你有所瞭解更有底氣。

位元組的整體流程: 簡歷篩選=>簡歷評估=>評估透過=>筆試中(非必須)=> 面試中=>面試已完成=>待入職=>已入職

每個流程都是hr手工處理的,任意一流程掛了都會變成已結束。

位元組1面

1.自我介紹,專案經歷,專案上的最佳化項以及原因 2.為什麼使用mmap最佳化io讀寫,mmap和傳統讀寫有什麼區別?為什麼選擇它? 3.Object 中有什麼方法? 4.Object 的equal實現?重寫equal需要注意的方面 5.synchronized 原理 6.volatile原理 7.ui最佳化 8.記憶體最佳化與LeakCanary的原始碼?以及LeakCanary的缺點和如何解決 9.演算法:陣列中有一個數字出現的次數超過陣列長度的一半,請找出這個數字(Leetcode原題)

位元組2面

1.自我介紹,專案經歷,專案上的最佳化項以及最佳化的原因 2.Rxjava原始碼原理,以及專案中你是如何將Rxjava流進行復用 3.你專案中高度自定義了DiskLRUCache。問LRUCache的實現?問LinkedHashMap的實現?問DiskLruCache的實現?問Glide中實現的DiskLruCache的運用 4.Handler的原理 5.volatile原理 6.synchronize 鎖的轉化流程 7.ReentrantLock 實現 8.ui 最佳化,首屏渲染時機最佳化 9.啟動最佳化,與AlphaManager的實現 10.插樁的原理以及運用 11.LiveData 和 ViewModel的原始碼實現 12.x2c 原始碼實現 13.DNS 原理 14.https的原理

位元組3面

1.工作軟技能的考核,以及團隊中的定位 2.如何進行io 最佳化,指標是什麼,最佳化後的結果以及引數是多少? 3.演算法:在一個單連結串列中,每k個節點進行反轉,無法被反轉的部分放在末尾

位元組跳動面試考點

Java 知識點彙總

  • 資料型別
  • String
  • 運算
  • 關鍵字
  • Object 通用方法
  • 繼承
  • 反射
  • 異常
  • 泛型
  • 註解
  • 特性
  • 容器中的設計模式
  • 原始碼分析
  • Vector
  • CopyOnWriteArrayList
  • LinkedLis
  • HashMap
  • ConcurrentHashMap
  • LinkedHashMap
  • synchronized 關鍵字
  • volatile 關鍵字
  • ThreadLocal
  • 執行緒狀態轉換
  • 使用執行緒
  • 基礎執行緒機制
  • 中斷
  • 互斥同步
  • J.U.C - AQS
  • 執行緒不安全示例
  • 記憶體模型
  • 執行緒安全
  • 鎖最佳化

Android 知識點彙總

  • Activity
  • Fragment
  • Service
  • BroadcastReceiver
  • ContentProvider
  • 資料儲存
  • View
    • MeasureSpec
    • MotionEvent
    • VelocityTracker
    • GestureDetector
    • Scroller
    • View 的滑動
    • View 的事件分發
    • 在 Activity 中獲取某個 View 的寬高
    • Draw 的基本流程
    • 自定義 View
  • 程式
    • 程式生命週期
    • 多程式
    • 程式存活
  • Parcelable 介面
  • IPC
    • IPC 方式
    • Binder
    • AIDL 通訊
    • Messenger
  • Window / WindowManager
  • Bitmap
  • 螢幕適配
  • Context
  • SharedPreferences
  • 訊息機制
  • 執行緒非同步
    • AsyncTask
    • HandlerThread
    • IntentService
    • 執行緒池
  • RecyclerView 最佳化
  • Webview

Android 擴充套件知識點

  • ART
  • Apk 包體最佳化
  • Hook
  • Proguard
  • 架構
    • MVC
    • MVP
    • MVVM
  • Jetpack
  • NDK 開發
  • 計算機網路基礎
    • 網路體系的分層結構
    • Http 相關
    • TCP/IP
    • Socket
  • 類載入器

Android 開源庫原始碼分析

  • LeakCanary
  • EventBus
  • Glide :載入、快取、LRU 演算法 (如何自己設計一個大圖載入框架) (LRUCache 原 理)
  • install
    • isInAnalyzerProcess
    • ServiceHeapDumpListener
    • RefWatcher
    • ActivityRefWatche
    • watch
    • ensureGone
    • haha
  • ARouter
  • 外掛化(不同外掛化機制原理與流派,優缺點。侷限性)
  • 熱修復
  • RXJava (RxJava 的執行緒切換原理)
  • OkHttp

設計模式彙總

  • 設計模式分類
  • 物件導向六大原則
  • 工廠模式
  • 單例模式
  • 建造者模式
  • 原型模式
  • 介面卡模式
  • 觀察者模式
  • 代理模式
  • 責任鏈模式
  • 策略模式
  • 備忘錄模式

常見面試演算法題彙總

  • 排序
  • 二叉樹
  • 連結串列
  • 棧 / 佇列
  • 二分
  • 雜湊表
  • 堆 / 優先佇列
  • 二叉搜尋樹
  • 陣列 / 雙指標
  • 貪心
  • 字串處理
  • 動態規劃
  • 矩陣
  • 二進位制 / 位運算

8個核心要點,輕鬆應對位元組跳動面試

投遞簡歷前

1、簡歷深度最佳化,HR每天翻閱上千份簡歷,平均3-10秒看一篇簡歷,怎麼讓自己的簡歷突出?合理的排版可以大幅增加成功率。除了排版,還要用關鍵詞引導Hr看到你的優勢和強項,例如“負責”、“操盤”、“資料”等等…

2、自我介紹話術,說簡單點,就是200-300字的小作文。當公司hr給你打電話時,怎麼在兩分鐘內快速介紹自己並吸引hr?私信問我

簡歷投遞中

3、梳理投遞崗位的工作內容,你真的知道你投的崗位是幹啥事情嗎?我輔導的80%求職者對崗位工作是沒有概念的。建議你去脈脈、領英、赤兔等職場app,去私信該公司的從業者,詢問目前遇到的問題或專案方向,這樣你就能在面試中過程中“不經意”的透露自己的想法和強項,讓負責人兩眼發光。

4、瞭解行業大概資訊,如果是跨行進位元組跳動,你是否對所投職能大概瞭解?網際網路產品、資訊流廣告、演算法資料、短影片內容等多職能部門,你瞭解多少?有哪些看法?

5、公司架構及所處部門等級,位元組在全國有多少分公司?分別負責產品開發?客服?稽核?內容?商業化?KA/LA/SMB,你知道自己即將去哪嗎?發展前景和部門重要級是多少?

面試時

6、基礎話術及注意事項,哪些話不能說?“我不懂但我願意學”,哪些話說出來加分?“我認為最好的解決辦法是…因為…”哪些話說了等於不說?“我覺得位元組是網際網路大廠,我想進來學習提升自己”

7、弄清四輪面試的負責人,第一輪是Hr電話面試,第二輪影片或線下面試,第三輪該小組負責人及Hr面試,第四輪部門或城市負責人面試。

8、壓力面試怎麼應對? 問到你不懂的問題應該怎麼回答?有哪些萬能口水話?怎樣高效透過第四輪面試?

面試位元組前的複習路線參考

很多人在剛接觸這個行業的時候或者是在遇到瓶頸期的時候,總會遇到一些問題,比如學了一段時間感覺沒有方向感,不知道該從那裡入手去學習,對此我針對Android程式設計師,我這邊給大家整理了一套 學習寶典

  • Android學習路線圖

首先,對於沒有學習方向,知識不體系的人,我把我工作幾年整理的學習路線分享給大家,做一個借鑑作用,還不知道怎麼學習的人可以直接照著我這個學習路線一個個的去學習,知識不體系的人可以參考下我整理路線的方式,總之希望能夠幫到你們!

  • 模組化學習資源

接下來是每個模組我整理出來的文件學習資料,幫助大家更細緻化的學習。

《Android彙總複習資料—Java》

《Android彙總複習資料—Android》

《Android彙總複習資料—Android擴充套件》

《Android彙總複習資料—Kotlin》

《Android彙總複習資料—Flutter》

《Android彙總複習資料—演算法》

除了上面的學習路線,還可以額外的配合以下方式學習,效果翻倍~

Android進階學習

①看影片進行系統學習

前幾年的Crud經歷,讓我明白自己真的算是菜雞中的戰鬥機,也正因為Crud,導致自己技術比較零散,也不夠深入不夠系統,所以重新進行學習是很有必要的。我差的是系統知識,差的結構框架和思路,所以透過影片來學習,效果更好,也更全面。關於影片學習,個人可以推薦去B站進行學習,B站上有很多學習影片,唯一的缺點就是免費的容易過時。

另外,我自己也珍藏了好幾套影片,有需要的我也可以分享給你。

②讀原始碼,看實戰筆記,學習大神思路

“程式語言是程式設計師的表達的方式,而架構是程式設計師對世界的認知”。所以,程式設計師要想快速認知並學習架構,讀原始碼是必不可少的。閱讀原始碼,是解決問題 + 理解事物,更重要的:看到原始碼背後的想法;程式設計師說:讀萬行原始碼,行萬種實踐。

主要內含微信 MMKV 原始碼、AsyncTask 原始碼、Volley 原始碼、Retrofit原始碼、OkHttp 原始碼等等。

③面試前夕,刷題衝刺

面試的前一週時間內,就可以開始刷題衝刺了。請記住,刷題的時候,技術的優先,演算法的看些基本的,比如排序等即可,而智力題,除非是校招,否則一般不怎麼會問。

關於面試刷題,我個人也準備了一套系統的面試題,幫助你舉一反三:

④2020大廠面試高頻知識點

  • 圖片
  • 網路和安全機制
  • 資料庫
  • 外掛化、模組化、元件化、熱修復、增量更新、Gradle
  • 架構設計和設計模式
  • 效能最佳化
  • Android Framework
  • Android優秀三方庫原始碼

以上這些內容均免費分享給大家,需要完整版的朋友, 。或者點選 【 】 檢視獲取方式。

最後,想對同學們說, 打好基礎,系統學習,才能從容面試。厚積薄發永遠是王道,祝大家順利!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69983917/viewspace-2774996/,如需轉載,請註明出處,否則將追究法律責任。

相關文章