位元組跳動1面Too simple2面懷疑人生,宅家修煉“65天”終獲,含淚拿下華為,小米等7份年薪45w+的Offer!

Android725發表於2020-11-08

個人近期面試情況

今年二月以來,我的面試除了一個用友的,基本其他都被斃了,可以說是非常殘酷的。其中有很多自己覺得還面的不錯的崗位,比如百度、跟誰學、位元組跳動等公司。說實話,打擊比較大。

情況基本上是從三月開始好起來的,這個時間點,可能疫情快過去了,國家也開啟了接近40萬億的基礎建設計劃,在這個時間段,面試的幾個代表性的公司,包括騰訊、餓了麼、寶寶樹、曠世科技等等,基本都成了。

最終,就在前段時間,華為給我確認了16的級別年薪53w+13薪。也算自己到了另一個奮鬥的階段了。對自己的經歷,做一個面試總結。

位元組一面:

  • Activity生命週期,每個回撥方法的作用是什麼
  • 事件的分發機制
  • 記憶體洩漏
  • 遇到過滑動衝突嗎?滑動衝突的解決方法
  • Hashmap原理
  • Hashmap擴容機制
  • 手撕雙重校驗鎖,volatile的作用
  • synchronized和volatile的區別
  • 執行緒池的引數
  • 異常機制
  • synchronized修飾static 方法和修飾普通方法有什麼區別
  • 雙親委派模型,為什麼要這樣
  • sharedPreferences的原理,多程式下是否可以使用,apply和commit 有什麼區別
    演算法題:每k個反轉連結串列

簡單到懷疑人生。。。雖然雙重校驗鎖卡殼了。。

第二天收到了二面通知

位元組跳動二面:

  • 四大基本元件和作用

  • Activity生命週期,啟動模式,taskAffinity,橫豎屏轉換,onNewIntent

  • Service兩種啟動模式,有什麼區別。

  • 廣播,廣播分類。普通廣播、非同步廣播、有序廣播

  • view的繪製流程

  • Framelayout wrap_content    TextView match_parent  怎麼顯示

  • 約束佈局和RelativeLayout的區別

  • 佈局優化

  • include、viewStub、merge 的使用和區別

  • mvp、 mvc、mvvm

  • 如何建立一個viewModel

  • Handler

  • ThreadLocal

  • 怎麼獲取view的寬高,如何確定值是準確的,說了view.post(),補充viewTreeObserverOnGlobalLayoutListener

  • 場景題:頭條列表有多個不同的card,使用RecyclerView怎麼解耦getViewType,獲得不同的card
    說了用個管理類對映,面試官說用註解、反射,依賴注入(我??我太菜了嗚嗚嗚)

java:

  • 迭代器,迭代器怎麼刪除一個元素
  • 說一下集合框架(Set、list、map
  • Hashmap 原理,紅黑樹如何自平衡(不會hashmap的Concurrentmodification 異常(不會
    雙親委派模型)
  • 根類載入器載入什麼類(jre包下的類
  • GC分代演算法
  • GCRoots種類
  • 四種引用

演算法題:二叉樹查詢,將這條路上的結點儲存

  • 反問評價,面試官說不喜歡回答這個問題

  • 問技術棧,kotlin

  • 問跨平臺技術,說是在別的地方也有用

  • 問教育業務規劃,說的很詳細

  • 問對位元組的評價, 面試官說這是一家有方法有效率的公司,它的發展有目共睹,在這裡工作能學到很多

  • 問我怎麼選擇客戶端開發,以及看待客戶端的發展。

過了幾天沒有收到三面的通知,看boss上就顯示,已結束面試!


一般技術面到後面,面試官都是leader或者是部門老大,他們其實很關心你的職業規劃、對待工作的態度、團隊合作的能力、自我價值實現方面的思考,當然還有專案實現的能力,過往專案經驗和深度。所以最好自己先想想怎麼用簡短的話表述清楚。注意圍繞關鍵詞去說。

寫給看到最後碼友的話

這些算是我作為過來人對於應屆畢業生和剛工作不久的同學的一些小小建議吧。

(1)一定要緊跟技術前進的腳步,尤其是大資料相關的技術,在技術更迭的時候一定要學習熟悉新技術,看原始碼,哪怕自己在工作中用不到也一定要學。因為這是你下一份工作的敲門磚。

我作為一個老兵,在上一家公司工作4年,我沒有逼迫自己學習新技術。

結果現在面試碰壁,其實大部分原因就是人家用的都是主流技術,你不會你就被淘汰。

(2)不要給自己設定舒適區,這個就是說,一個公司待久了不要懶惰,不能荒廢自己,始終要保持清醒的頭腦和進取心,不斷學習,不斷完善自己的技術,架構設計能力,專案管理能力,交付能力等。

一定要及時從專案中總結經驗和不足,最好落實到日記本中,最後通過不斷思考,形成自己的做事方法論。

(3)對自己的職業生涯要有一個規劃,以後要做哪一塊一定要有自己的想法,確定了就要從這個方向完善自己,多學多練。

目前大資料這一塊,有資料中臺架構的公司不是很多,除了演算法崗外,大多數人在團隊中都是1專多能的角色,今天干幹ETL,明天搞數倉,後天又給BI出資料,可能又搞排程系統、報表系統、標籤系統、反作弊平臺等平臺。

沒有人會專一做某一塊,但是自己一定要想好哪一塊是自己以後要走的方向,那麼這一個方向確定了就要深入的學習這一塊的知識,多看原始碼,多做練習,如果接觸到具體專案,要在專案中沉澱自己,最後形成自己的知識體系。

**(4)做事情要有擔當,不要根據OKR給自己設定界限,有能力有空閒多做一定要多做,這也是別人認可你的最佳途徑之一。**網際網路圈子很小,大家認可你,以後去大廠,換個好工作,也許就更容易。

最後

我見過很多技術leader在面試的時候,遇到處於迷茫期的大齡程式設計師,比面試官年齡都大。這些人有一些共同特徵:可能工作了7、8年,還是每天重複給業務部門寫程式碼,工作內容的重複性比較高,沒有什麼技術含量的工作。問到這些人的職業規劃時,他們也沒有太多想法。

其實30歲到40歲是一個人職業發展的黃金階段,一定要在業務範圍內的擴張,技術廣度和深度提升上有自己的計劃,才有助於在職業發展上有持續的發展路徑,而不至於停滯不前。

不斷奔跑,你就知道學習的意義所在!


演算法與資料結構突擊手冊


Android核心技術筆記

Android面試神技

Android三方庫學習筆記

在我的GitHub裡面有自己蒐集整理的一套,進階Android高階工程師系統學習資料可以免費分享給大家,需要完整版的朋友,【點這裡可以看到全部內容。】

如果需要PDF版本可以在群資料夾裡,自行領取!

整理不易,覺得有幫助的朋友可以幫忙點贊分享支援一下小編~

你的支援,我的動力;祝各位前程似錦,offer不斷!!!

相關文章