刷題有訣竅,這裡移動端字節跳動高工面試題錦幫你避雷


刷題有訣竅,這裡移動端字節跳動高工面試題錦幫你避雷

Android

開發職位或許沒有之前如此火爆,但是隻要你有真才實學,找個較好的工作還是比較容易的。如果你是985,211,如果你是碩士學歷,那找個滿意的offer更是不再話下;即使不是上面的條件,只要你好好努力的學習,把每一項的技術點攻破了,同樣可以達到甚至超越上面條件的同學。

我隔一段時間都會出去面試一次,面試的目的不是為了找到好的工作,而是知道自己的優缺點是什麼?知道市場需要什麼樣的人?同樣,面試你的也是同行,這樣也能夠碰撞出不同的思想。當然,遇到好的機會那是再好不過了。試想?如果你一直待在一家公司,都不知道外面的情況如何的話,那是很可怕的,至少我這麼認為。如果您同意這樣的觀點,不妨接著往下看,讓我們一起研究面試過程中需要具備的知識。下面是我親生經歷的一次面試,這裡寫出來給大家分享,更多的是總結面試中遇到的問題以及以後學習過程中的方向。只有這樣才能和社會接上軌跡。

一面:

這一面側重考察基本的計算及原理和Android基礎機制,以及對做過項目的個人探索和理解深度;具體涉及的方面如下(有些我感覺隨口就能答上的忘記了- -)吧:

1.自我介紹:

我具體怎麼答的略過,總之注意幾個點:說簡歷上沒有的、有亮點的、跳槽原因等,從各個點上盡力彰顯自己優勢、技術特長

2.手寫代碼:

計算View樹上所有view的數量,參數ViewGroup,補全空方法返回view數量→本質就是數據結構多叉樹遞歸層序遍歷+Android View基本api調用

3.Android相關:

主線程Looper一直循環查消息為何沒卡主線程?RecyclerView相對ListView區別?好像還有Bitmap resize相關,就是設置option,然後decode→這裡還有些我基本都是隨口答對的,已然忘了反正都是中級(或稍偏高級)Android工程師必掌握原理機制~

4.項目相關:

用MultiDex解決何事?其根本原因在於?Dex如何優化?主Dex放哪些東西?主Dex和其他Dex調用、關聯?Odex優化點在於啥?Dalvik和Art虛擬機區別?多渠道打包如何實現(Flavor、Dimension應用)?從母包生出渠道包實現方法?渠道標識替換原理?

  • Android打包哪些類型文件不能混淆?
  • Retrofit主要實現機制?
  • 動態代理靜態代理區別?

→上面這坨都是從我做過的項目或用過的開源庫引申出的問題,而且挑的都是不太偏業務且技術性強一些的,這其實要求日常在把事兒做成的基礎上還得再多看下原理順帶自己動手探索下,明晰人家每一步是怎麼互相關聯推動直至最終搞定的,而不是加個dependency或copy下別人代碼就完事兒嘞~

5.思維、架構

模塊化怎麼做的?怎麼設計的?接口發現暴露怎麼做?基於什麼思想?MVC、MVP、MVVM應用和彼此本質區別?

→因為這不是那種確定性答案的問題,只能多實戰+戰後總結並深入思考才能出真知啦,

二面:

真是要了我半條命,耗時近2小時……

這面上來大概介紹了下自己,然後問了點我用過的東西比如Glide緩存特點?隨後:你擅長Android中哪個方向呢?這問題我其實是按Android UI動畫方面和移動端後臺交互方案制定來預想過的,然鵝說完他挑了Android UI,噩夢就開始嘞- -直接他出效果我來想方案做。

第一個問題前他說,這個問題我問過很多人沒幾個能答出來的,你試試?

:呵呵:你看我這手機上這個launcher裡應用抽屜(就是很多ROM都有的把很多APP管理歸類的二級菜單功能)他在這ROM前一版是有個毛玻璃效果背景的,從系統ROM角度說下怎麼做吧?

刷題有訣竅,這裡移動端字節跳動高工面試題錦幫你避雷

→這100%是我一點沒做過的,面試官八成也知道,也是很多人在面試裡會遇到的情況,這時候別慌,我們可以從知道的東西里去推,哪怕只把把思路展示出來也OK;比如這個肯定是FrameWork做系統統一渲染那裡要做些事,那系統渲染是誰管呢,SurfaceFlinger呀,它怎麼工作的呢?它哪一步改動一下是不是可能就達到這效果了呢?這種思考過程是一個高工所要必備的,也是需要日常在面對很多問題時要培養自己去練就的思考方法~ 事實證明,雖然有些細節我確實沒涉及過,但至少思路策略以及知識遷移解決問題能力都得到了面試官的認可~

後面還有的UI相關的依舊是類似這種的兩個大問題:實時的水面倒影效果怎麼做?這裡面實時更新的UI性能如何保證?→我所處情形和思路同上

再到後面是偏UI基礎的考察:Measure、Layout、draw大流程、繪製順序,基於這些說下TagLayout(FlowLayout)怎麼寫?

接著是算法題:倆線程分別持續打印奇數和偶數,實現倆線程的交替打印(從小到大)→計算機操作系統線程相關基本題目,你要覺得難只能說明基礎瘸腿,趕緊補吧;操作系統+編譯原理也是我面試別人過程中發現的大多數人的弱項

最後也是模塊化、工程架構思想相關更細緻的盤問,確實有些我之前沒意識的問題被問及不過還是老方案:能想出來的就給方案,不能的就給思考過程。

三面:

整個Android端負責人面,可能是二面太太要命了,這面相比之下感覺在休息…..

上來還是互相介紹,然後有個算法題解決個實際問題,因為我很快用知識遷移的思想把生產者消費者問題的解法用過來,講的也很透徹,手寫代碼就省了,隨後還是問問偏思想性的東西工程架構、之前提到的接口暴露又老生常談,不過之前答的不太好我突然還是用知識遷移想了個好辦法解決,對方也聽後看似比較滿意;

再然後還是擅長方向,因為二面真是被虐慘了,另外考慮到三面負責人的身份更關注一個人思想性、系統性的東西,所以毫不猶豫說了定移動端架構解決方案、前後臺接口涉及那套,這個應該是很少有面試者會說的一點,我發現我說完面試官眼前放光

隨即問題就是設計個IM客戶端以及數據庫架構吧,類似微信,偏上層業務部分的會話、聯繫人、通知、公眾號如何存、分幾張表,架構每一層都是啥,互相怎麼交互工作?

還有是提個公司旗下產品做的不好的點,吐槽一下(有理由根據說服對方即可,最好是人難以意識到的點)。最終基本就是了解公司情況嘞,全聊完他都沒商量就直接告知hr來跟我談了,到這裡基本可以知道就是穩了,國內公司hr很少有掛掉人的,尤其對於ByteDance這種缺人的地方,移動端又是稀缺中的稀缺~

刷題有訣竅,這裡移動端字節跳動高工面試題錦幫你避雷

hr面:

這面就是偏閒聊了,問問跳槽原因、個人愛好、個人職業規劃、目前薪酬、跳槽薪酬要求,福利同步一下;這面稍微注意一個點吧,就是你首先

要真誠,然後基於此儘量展示給對方的是你有活力、有上進心、對自己有想法也有期待、對於你來面試的地方也有興趣;你給她的好感會幫助你在定薪過程中讓她為你多多美言,當然主要還得看技術面,但這些小技巧也是有助力的,最終驗證也是符合這點的,總的算起來我的薪資漲幅超過60%,二期要求最高直到40%,另外我還被賦予了選組的權力和期權,我感覺這裡面或多或少都和我展示給hr以及前幾輪面試官的我的精神面貌有關,有些認可是在面試過程中很多小細節(身體姿勢、不經意的點頭、微笑、手勢、話語聲調突變等)能看出來的~

!!!備註下,因為隔得時間略久,有些面試內容和考察點已然忘記的也就沒往上寫,整體的面試題量還是大過上述這些的!!!

最後的最後,再獻上我個人面試別人經驗以及這次被面試經歷的一點要領總結吧:

對於社招,面試技術方向的,除了人工智能、算法那些其他真的不太看重學歷,很多時候大家所認為的學歷敲門磚本質上是企業為了節省面試成本所額外加入的坎,社招更多還是看工作經歷和你的成長,這行業有句老話叫:從不看你起點在哪兒,而是看你能跑多塊,那些還在為這點擔心的更多是你自己還跑得不夠快或跑錯了方向,這是前提;

然後是方法,技術開發無論哪個方向都避不開的是計算機本源原理,有些很簡單的情形就是本源原理的縮影,網絡的分層,計算機體系結構上的分功用部件,你可能想過其中的聯繫?

ByteDance相對於BAT使更多高手的聚集地,他們對於這一點和從這點上發散出來的能力的考察只會比BAT有多無少,所以無論是何方向,內力的修煉永遠排在第一位,具體的方向指示以一種具體招式將內力轉化為傷害輸出出來,很多人認為基礎便是內力,其實也不全是,基礎很多時候是那些死的知識,這些只是修煉內力的原料,要練成得把他們活用起來轉化自己認識其他內容的基礎、形成適用於自己修煉、探尋、思考的方法論,以一種獨有的方式把這套知識體系灌輸於自身,才能算是真正的內力,待你練成這點,哪怕真的遇見功力更深厚的高手依舊能應對自如,正如我二面遇到的面試官,HR和我介紹說他在Android領域的深度和廣度在北京能排上前幾名,現在他是我的leader

最後

面試結果不重要,重要的是過程。只要你有實力,就別擔心。如果不好好學習,就算背了面試題,又能如何?一樣會在面試中PASS。所以說,平時寫代碼的時候需要多多思考,不一定用到才去Google,對於一些新的技術,要不斷追求同時別忘記了基礎很重要,基礎,基礎,基礎,重要的事說3遍。

不管怎麼樣,不論是什麼樣的大小面試,要想不被面試官虐的不要不要的,只有刷爆面試題題做好全面的準備,當然除了這個還需要在平時把自己的基礎打紮實,這樣不論面試官怎麼樣一個知識點裡往死裡鑿,你也能應付如流啊~

最後在這裡小編分享一份自己收錄整理上述技術體系圖相關的幾十套騰訊、頭條、阿里、美團等公司19年的面試題,把技術點整理成了視頻和PDF(實際上比預期多花了不少精力),包含知識脈絡 + 諸多細節,由於篇幅有限,這裡以圖片的形式給大家展示一部分。

還有 高級架構技術進階腦圖、Android開發面試專題資料,高級進階架構資料 幫助大家學習提升進階,也節省大家在網上搜索資料的時間來學習,也可以分享給身邊好友一起學習。

【Android開發核心知識點筆記】

刷題有訣竅,這裡移動端字節跳動高工面試題錦幫你避雷

【Android思維腦圖(技能樹)】

刷題有訣竅,這裡移動端字節跳動高工面試題錦幫你避雷

【Android核心高級技術PDF文檔,BAT大廠面試真題解析】

刷題有訣竅,這裡移動端字節跳動高工面試題錦幫你避雷

【Android高級架構視頻學習資源】

Android精講視頻領取學習後更加是如虎添翼!進軍BATJ大廠等(備戰)!現在都說互聯網寒冬,其實無非就是你上錯了車,且穿的少(技能),要是你上對車,自身技術能力夠強,公司換掉的代價大,怎麼可能會被裁掉,都是淘汰末端的業務Curd而已!現如今市場上初級程序員氾濫,這套教程針對Android開發工程師1-6年的人員、正處於瓶頸期,想要年後突破自己漲薪的,進階Android中高級、架構師對你更是如魚得水,趕快領取吧!

【Android進階學習視頻】、【全套Android面試秘籍PDF】、【Android開發核心知識點筆記】可以 私信我【安卓】免費獲取!


分享到:


相關文章: