字節Android 崗五面都過,盡被刷了,原因是……😭

作者:蝦皮球

前言

本人從事Android 開發已有3年了,畢業於某二本學院,在學校學的專業是計算機應用專業,剛畢業從來是做的Java開發,因自己一直對Android 感興趣,於是從中就開始轉行做起了Android 開發。我這次給大家分享的一段字節跳動的面經。

溫馨提示:面試時最好不要虛報工資。

本來字節跳動是很想去的,幾輪面試也通過了,最後沒offer,自己只想到原因是:一是自己虛報工資,比實際高30%;二是他們有找到了更好的人選,這個可能性不大;想知道答案請往下看吧。

面試流程:

一面

1.okhttp支持HTTP2?http2的功能有哪些?tcp方面擁塞控制?tsl的握手和具體的非對稱加密算法。非對稱名稱
2.handler的post(Runnable)如何實現的。callback,runnable,msg的執行優先級。
3.插件化。啓動activity的hook方式。taskAffity。
4.阻塞是怎麼實現的?爲什麼不會阻塞主線程?
5.206含義,未修改資源是哪個,302含義,301含義
6.多進程通信問題。binder優勢。aidl生成的java類細節。多進程遇到哪些問題?
7.動態代理傳入的參數都有哪些?非接口的類能實現動態代理嗎?ASM的原理
8.Application和Activity在Context的繼承樹上有何區別?二者使用上有何不同?
9.求二叉樹中兩個節點之間的最大距離。
10.任意一顆二叉樹,求最大節點距離

二面

1.內存泄露的分類。怎麼查看內存泄露的問題
2.組件化的問題。module和app之間的區別。moduler通信是如何實現的。
3.設計一個日誌系統。
4.native奔潰的日誌採集,怎麼處理?
5.touch事件源碼問題。
6.註解實現一個提示功能:如果int的值大於了3需要提示。

三面

1.組件化介紹一下。
2.介紹下flutter與weex的區別
3.介紹下flutter的啓動流程
4.介紹下flutter_boost的原理
5.webview中與js通信的手段有哪些?

四面

1.適配器和裝飾模式各自特點和使用場景
2.視頻編解碼是怎麼做的
3.三色球排序

HR面

1.瞭解職位需求嗎?
2.詢問了除字節跳動以外,還在看其他工作機會麼?分別是什麼
3.字節、XXX公司、XXX公司,你的優先級是什麼,爲什麼?
4.之前薪資待遇是多少?你期望的薪資是多少?
5.平時有什麼愛好?
6.有沒有想問的?

這是我在某論壇看到的故事,我知道很多程序員都有一個大廠夢,但如何針對大廠進行面試準備,如何和 HR 聊天,比如談錢等等,很多程序員就顯得手足無措了。本文就根據自己一些見解談談這些問題。

什麼是合適的備選者

在介紹如何面試之前,這裏先從公司的角度來分析:”到底什麼樣的備選者是公司所需要的技術人才?“就我在現在這家公司的一些面試官經驗來說,一個具有如下特徵的Android程序員是我們所需要的:

1.具有本科及以上學歷(名校更好)
2.具有2年及以上的工作經驗(名企更好)
3.技術紮實,有技術追求和工作激情
4.良好的溝通和協作

在這四條中,其中第3條是最爲重要的,技術是決定能否通過面試的最重要最直接的原因。一般來說,越是大公司,其對技術的要求就越高,儘管部分崗位並不需要那麼好的技術,但是爲了對備選者做出區分,其面試過程仍然會面試一些稍微深入的話題,相信大家都有所體會。

除了技術以外,良好的溝通和協作能力也是比較重要的。也許很多人覺得這個比較抽象,心裏會想:”你怎麼知道我有沒有良好的溝通和協作能力呢“?其實這個問題並不難,面試過程就是一次溝通過程,如果不能和麪試官很好地溝通,這就說明候選者的溝通有問題。如何很好地和麪試官溝通呢?給如下幾點建議:

  • 禮貌和尊重。
  • 聽懂面試官的問題並直接回答。
  • 謙虛謹慎、態度友好。

下面對學歷和工作經驗做一些說明,學歷並不是一個硬性要求,即使候選者學校不怎麼好也是有可能通過面試的,這就要求候選者技術非常紮實。而工作經驗,之所以是2年以上,這是因爲社會招聘的對象一般都是有一定工作經驗的,而1年工作經驗略短了點,拿百度來說,社招的最低級別一般爲T4,差不多剛好就是2年經驗左右。

這裏做下總結,理想的候選者應該是這樣的:

1.紮實的技術功底,有技術追求(必須)
2.態度、溝通和爲人都很好(必須)
3.2年左右工作經驗(基本必須)
4.名校、名企、高學歷(非必須,加分項)

基本來說,滿足1和2就能通過面試,3和4都是次要條件,但是一般來說不滿足3就很難滿足1,不要說特例,木有參考意義。

由此可見,技術是面試結果的決定因素。那麼到底技術掌握到什麼程度才能比較輕鬆地通過面試呢?說了那麼多,好像和Android沒有一點關係,下面就開始以Android爲例來分析下面試過程所需的技術。

知識點梳理目錄

下面的所有技術知識點詳細內容都整理在了開源項目【GitHub】,有需要的可以自取。

1.Java 知識點彙總

2. Android 知識點彙總

3. Android 擴展知識點彙總

4.開源庫源碼分析

5. 設計模式彙總

6. Gradle知識點彙總

7.計算機網絡基礎

8. C++知識點彙總

常見面試算法題彙總

所有的知識點都整理在了開源項目【GitHub】,有需要的朋友可以自取。

如何和 HR 聊天,比如談錢等等

首先你面到 HR 了,說明你基本已經成爲備選人之一了。這時候 HR 會和你聊很多問題,這些問題都是爲了瞭解你的一些個人情況的。比如說性格啦、反應能力、情商等等。另外大部分公司的 HR 並沒有一票否決權,面試沒有成功多半是有更好的備選人而不是因爲 HR 把你卡掉了。

然後說到談錢的一個問題。首先以最少的工資招到需要的人肯定是 HR 的考覈之一,所以壓價是很正常的一個事情。並且上家公司的薪資也是一個很重要的參考,一般來說漲薪幅度在 30% 以上是很牛逼的事情了,通常都在 20% 左右。

你的開價一般就是 offer 的上限了,考慮到壓價的情況,你可以在原本期望薪水上上浮 1K 左右,然後可以根據面試的情況來有選擇性的開價。

  • 面的不錯,本來想要 16K 的,那麼就多要個 1-2K 沒啥問題
  • 面的一般,那就報 16 K 吧
  • 面的一般或者不大好,但是又很想進這家公司,可以酌情下降 1-2K,這個主要還是看自己
  • 不怎麼想去這家公司,隨意開價

結語

如果你想去一家不錯的公司,但是目前的硬實力又不到,我覺得還是有必要去努力一下的,技術能力的高低能決定你走多遠,平臺的高低,能決定你的高度。

如果你通過努力成功進入到了心儀的公司,一定不要懈怠放鬆,職場成長和新技術學習一樣,不進則退。

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