專科學歷,被親戚嘲笑是修電腦的,1月份逆襲 25K入職字節跳動

柳暗花明

我的個人背景非常簡單,也可以說絲毫沒有亮點。

學歷普通,計算機專業專科畢業,畢業後出來就一直在一家小公司,歲月如梭細,算了下至今從事Android開發已經5年了,也crud了五年,每天就是抄代碼,毫無新意,甚至一度的懷疑人生。

其實很久之前就已經對自己不滿了,每次都在想鼓起勇氣想去打破困境,去改變自己,然而因爲遊戲因爲玩耍一次又一次的破功;直到這次疫情,強有力的給了我當頭一棒。是的,我失業了。這時候才真正的體會到什麼叫做人無遠慮,必有近憂。

失業之後瘋狂的去找面經,去海投簡歷(都是一些小的不能再小的公司有回覆),去找老朋友,去找同學;但是在疫情這麼嚴重的當下根本不會找到合適的工作的,我也又冷靜下來了,準備好好的調整下心態,整理下自己;

在這期間也七七八八的接到一些電話面試;這時候給了我個新的啓示——可以去投一些小公司的簡歷,去面試掃盲,看看哪些東西不會,欠缺哪些知識,然後慢慢的做面試覆盤。並且通過這些面試給自己查漏補缺;

也許我的運氣沒有壞到極限吧,在惡補了三個月知識之後,我朋友給我打來了電話,說是有個字節跳動事業部的內推;

幸運女神往往會眷顧努力的人,所以當好運降臨到我頭上,我並不詫異,目前拿到了字節跳動25K的offer,下文也不說廢話,主要分享我這次“面試經歷”和“這段時間的學習方法”,希望能幫助到你們。

又一村

一面:(1hour)

  • 自我介紹

  • java泛型,反射

  • 進程間通信的方式,安卓中有哪些方式,爲什麼是基於Binder的,不用傳統的操作系統進程間通信方式呢

  • 一個app可以開啓多個進程嘛,怎麼做呢,每個進程都是在獨立的虛擬機上嘛

  • 異步消息處理流程,如果發送一個延時消息,messagequeue裏面怎麼個順序,messagequeue是個什麼數據結構

  • 廣播的種類,註冊的方式,以及不同註冊方式的生命週期。

  • 局部廣播和全局廣播的區別分別用什麼實現的。

  • activity和service的通信方式

  • 進程和線程的區別

  • 併發和並行分別是什麼意思,多線程是併發還是並行

  • 安卓10有什麼新的特性。

  • HTTPS過程。

  • DNS解析過程,如果服務器ip地址改變了,客戶端怎麼知道呢

  • 算法:二叉樹的右視圖。

二面:(1hour)

  • 介紹一下所有的map,以及他們之間的對比,適用場景。

  • 一個按鈕,手抖了連續點了兩次,會跳轉兩次頁面,怎麼讓這種情況不發生。

  • 一個商品頁一個商詳頁,點擊商詳頁的一個關注按鈕,希望回到商品頁也能夠顯示關注的狀態,怎麼做

  • 項目中定時爲什麼用AlarmManager,不用postDelayed

  • 項目中後臺網絡請求爲什麼用service不用線程

  • 也問了一些安卓的新特性。

  • 內部類會有內存泄漏問題嗎 內部類爲什麼能訪問外部類的變量,爲什麼還能訪問外部類的私有變量。

  • 算法:單鏈表判斷有無環。

三面:(35min)

  • 介紹項目用到了contentprovider,然後問ContentProvider的生命週期,application,activity,service,contentprovider他們的context有什麼區別。
  • 內存溢出和內存泄漏,提到了bitmap
  • 然後問下載一個圖片的時候直接下載了一個5g的圖片,不壓縮一定會產生OOM問題,那麼怎麼去獲取這個圖片的長寬呢,或者說這個圖片的大小在你沒下載之前如何得到。不會。
  • 實習期間遇到的最大的問題,如何解決問題。
  • 後面就是聊天,爲什麼選擇上海啊互聯網行業的信息從哪裏獲取啊什麼的。

hr面:(15分鐘左右)

  • 微信視頻,都是常規問題.
  • 看面試記錄,之前也有面過,部門不一樣面試體驗如何呢
  • 優缺點
  • 投遞過哪些公司。
  • 男朋友在哪個部門,做啥的
  • 怎麼想到學安卓的。
  • 瞭解字節跳動嘛等問題

十年寒窗,夜以繼日

文章內容中涉及到的Android面試題、源碼文檔,技術筆記等學習資料,均可以免費分享給大家學習,只需點贊+關注後私信“666”免費獲取

1、看視頻進行系統學習

這5年多的Crud經歷,讓我明白自己真的算是菜雞中的戰鬥機,也正因爲Crud,導致自己技術比較零散,也不夠深入不夠系統,所以重新進行學習是很有必要的。我差的是系統知識,差的結構框架和思路,所以通過視頻來學習,效果更好,也更全面。關於視頻學習,個人可以推薦去B站進行學習,B站上有很多學習視頻,唯一的缺點就是免費的容易過時,也不可能會有人把自己真正喫飯的傢伙完全分享出來。

另外,我自己也珍藏了好幾套視頻資料躺在網盤裏,有需要的我也可以分享給你:


2、讀源碼,看實戰筆記,學習大神思路

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

筆記特點: 條理清晰,含圖像化、代碼分析表示更加易懂。

內容概要: 微信 MMKV 源碼、阿里巴巴路由框架ARouter 源碼、AsyncTask 源碼、Volley 源碼、Retrofit、OkHttp、ButterKnife、Okio、SharedPreferences、EventBus、Android 自定義註解、View 的工作機制、Android 觸摸事件分發機制、Android 按鍵事件分發機制等等Android開發過程中相關源碼精編解析!

  • OkHttp源碼深度分析

  • Binder 源碼深入解析

  • 三方庫源碼筆記(1)-EventBus 源碼詳解

  • Android框架體系架構學習筆記

  • Flutter進階學習筆記

  • 2021版Android核心筆記


    3、面試前夕,刷題衝刺

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

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


自行學習交流直達鏈接:【點擊獲取

需要相關知識點可以查看我的【GitHub】,對於已經掌握的可以忽略以節省時間。

總結

只有技術過硬,在哪兒都不愁就業,“萬般帶不去,唯有業隨身”學習本來就不是在課堂那幾年說了算,而是在人生的旅途中不間斷的事情。

人生短暫,別稀裏糊塗的活一輩子,不要將就。在找面經的這段時間看到非常適合自己經歷的兩句話:

真正毀掉你的不僅僅是閒着,更多是忙的馬不停蹄
因爲學習的苦需要主動去喫,期間充滿了挑戰,充滿了困惑,充滿了未知......而生活的苦,你躺着不動它就來了,溫水煮青蛙那種......所以大多數人寧願喫生活的苦,也不願喫學習的苦?

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