很多人覺得現在本科人滿爲患,碩士爛大街,還全是名校,感覺自己一個普通末流雙非院校的小人物根本沒有機會進大廠。
我覺得這個是妄自菲薄了,只要做足準備,好好複習,準備技術和項目,相信大家也能像我一樣拿到心儀的大廠offer。
下面是我的面試準備,分享給大家,希望對大家的學習和工作有所幫助。
一、前言
最早在看了網上的校園宣講會的時候,我就關注到了字節跳動。這個公司無論是從理念、願景、還是薪酬福利,都是我們年輕人心目中渴望的充滿活力的樣子。
但是出身雙非院校的我,心裏還是沒有什麼信心。網上各個渠道投了字節不少簡歷,但是一直沒有收到面試通知,剛好有一個學長在字節,就聯繫了學長幫忙內推。
我和那些“offer收割機”一樣的大佬不一樣,我沒拿那麼多的大廠offer,從簡歷的優化到面試準備,我的目標一直都是字節跳動的Android研發崗。不過應該也是功夫不負有心人,從面試到實習,再到轉正,一切都進行的挺順利。
下面是我的面試準備經驗,希望對大家有幫助。
我的面試準備也一直是針對字節跳動的Android崗,當然,大廠的面試有很多共通之處,大家可以借鑑參考。
二、面試準備
(一)簡歷篇
簡歷的優化是非常重要的,特別是像我這樣的雙非院校,在校期間也沒什麼拿得出手的大項目,老實說,簡歷上面非常尷尬,很可能連面試通知電話都收不到。
下面和大家分析一下,能一眼讓HR注意到的簡歷到底長什麼樣。
我有一個多年大廠招人經驗的朋友跟我說:大廠招人,一般不會不要求應聘者全能,但是必須在某一項有專精技術。
所以,這裏建議大家簡歷的第一頁上半頁,或者前三行,務必表明自己的技術棧。這裏稍加註意:描述時,可以針對自己的技術能力進行一些吹的操作,但是切記不可瞎吹,也不可吹過頭,不然,你的面試問題難度也會提升,同時,你的人品也會遭受質疑。
下面的這是一個比較好的簡歷模板。
1.在寫簡歷的時候要有側重點,面試官的時間是很緊張的,沒空看廢話,對你的流水賬日記不感興趣(再強調一遍,第一頁上半頁,或者前三行,務必表明自己的技術棧)。
2.個人經歷的描述儘量往工作和崗位相關的方向靠攏,少提不相關的內容干擾他們提煉重點信息。
3.項目短板的,告訴大家一個技巧,儘量挑選項目中自己熟悉的領域以及項目的亮點,要突出自己的貢獻,是添加了哪些功能,還是優化了那些性能指數,最後再說說受益怎麼樣,例如這個功能被多少人使用,例如性能提升了多少倍。(最好按照崗位的要求,向上靠一靠)
4.切記不要“優化”過度,謹慎使用“精通”兩字,拿不準的絕對不要寫在簡歷上,不然你就是在給自己挖坑。(面試會根據你簡歷上寫得技術從淺再到深入原理的提問。)
這裏給大家推薦一篇文章,大家可以作爲參考。
(二)修煉篇
搞Android這行的,大家都是靠技術喫飯的,一般都是,你是什麼水平就開什麼價。所以自身的技術修煉也是最重要的一部分,哪怕你的簡歷粉飾的再好,一到面試,是騾子是馬,一遛就知。
20年校招季,我參加的大大小小的面試不低於40家。雖然我的主要目標是字節跳動,但是我一向認爲,把雞蛋放在一個籃子裏的人都是傻瓜(咳,主要是不自信,怕失手後一無所獲)。所以其他的面試也沒放過(大公司沒拿到幾個,小公司很多都拒掉了)。
下面的分析適用於所有公司。
1.公司的人才需求簡析
根據我豐富的面試經驗,市場上的公司一般可以分成兩種:大公司和小公司。小公司注重實踐能力,大公司看中綜合能力。
小公司面試會比較集中安卓開發這一塊,關注的點主要是
有沒有類似的項目經驗
有沒有遇到過他們差不多的問題
所以,面試準備中,除了基本的一些知識點還需要關注一些安卓開發實際中經常遇到的一些問題,諸如圖片緩存,常見的開源框架等等。
大公司面試比較在意你的綜合能力還有基礎知識,下面我會列舉一下比較重要的知識點
2.進入大廠需要掌握哪些知識?
進小廠的難度不大,這裏就不再詳說了,這裏主要說一下進大廠需要掌握的知識點(大廠都能進了,小廠不在話下)。
數據結構與算法
java
安卓
計算機網絡
操作系統
…… (以上按重要程度排序)
上面的幾大模塊的內容都非常重要,我看網上有大佬針對這些模塊進行了歸納整理,這裏就不在贅言了。
指路:https://blog.csdn.net/m0_46962786/article/details/112361198
這裏主要是根據我自己的面試經歷還有在牛客網等刷的字節跳動、美團等廠高頻面試題整理出來的大廠高頻面試題合集(含參考答案和解析)。
大家可以看看自己能不能全部完美的回答出來吧。如果可以,那你的基礎知識掌握的應該就很棒了,可以加入我們的技術交流羣找我內推。
937659705 (這是q 裙 number)
3.重要知識點整理(高頻面試真題)
-
圖片相關
圖片庫對比 LRUCache 原理 圖片加載原理 實現圖片庫 Glide 源碼解析 Glide 緩存 ……
-
網絡和安全機制
網絡框架對比和源碼分析 自己去設計網絡請求框架 網絡請求緩存處理,pokhttp 如何處理網絡緩存 從網絡加載一個 M 10M 的圖片,需要注意的事項 TCP 的 3 次握手和四次揮手 TCP 與 PUDP 的區別、應用 …… -
數據庫
Sqlite 升級,增加字段的語句 數據庫框架對比和源碼分析 數據庫的優化 數據庫數據遷移問題 Sqlite 常見異常 ……
-
插件化、模塊化、組 件化、熱修復、增量更新、Gradle
對熱修復和插件化的理解 插件化原理分析 …… -
架構和設計模式
MVC、MVP、MVVM 原理和區別 你所知道的設計模式有哪些 項目中常用的設計模式 手寫生產者/ / 消費者模式 觀察者模式 適配器模式,裝飾者模式,外觀模式的異同 用到的一些開源框架 , 介紹一個看過源碼的 , 內部 實現過程 RxJava相關 Binder 機制及底層實現
-
……內容過多,鑑於文章的長度,這裏就不一一展示了,需要的可以點擊下方藍色字體獲取完整版
以上的問題都是精心整理過的,每個問題都是一篇長文,大家一定要好好理清楚,因爲面試官都喜歡深挖和追問,大家在某一塊知識點必須有深入研究,能夠回答面試官4到5個追加問題(加油)。
4.數據結構和算法(重中之重)
一般來說,最後出場的都是壓軸角色。
數據結構和算法非常重要!尤其是在字節跳動公司(美團,百度,愛奇藝也是一樣的)。這個知識點是考驗一個程序員技術水平最快的方法,尤其是對我們這些畢業不久的學生。
衆所周知,國內互聯網面試的流程逐漸在向國外靠攏,像字節跳動、BAT 等大廠,手撕算法題
已經成爲了必選動作。
數據結構與算法這個知識點的準備需要的時間比較長,要儘早準備,多刷一些leetcode或是其他類似的題。我個人的算法能力一開始也很差,但是經過我自己安排的算法專項訓練,效果還是十分顯著的。下面我把自己的複習方法分享給大家。
下面是數據結構和算法的面試核心知識點,大家可以參考學習,逐個擊破。
棧與隊列:先進先出、後進先出
線性鏈表
查找:順序查找、二分查找
排序:交換類、插入類、選擇類
樹、二叉樹、圖:深度優先(DFS)、廣度優先(BFS)
遞歸
分治
滑窗
三大牛逼算法:回溯、貪心、動態規劃(DP)
在刷題之前我建議你看一些書:
《漫畫算法之旅》
如果你之前沒有任何算法基礎,這邊書很適合你,可以補充數據結構和算法的基礎知識,像什麼是時間複雜度空間複雜度、查找、排序等。 如果你有了一定基礎了,建議你直接跳到最後面的算法實戰部分。
《劍指 offer》
非常經典的一本書,學算法的人必刷。但是要注意了,這邊書裏面的題目是用 C++寫的,如果你是 Java 開發人員可能會有點影響。但是要記住學習算法最關鍵的還是解題思路和方法,用什麼語言實現是其次的,如果你時間比較多我是建議你用 Java 語言再實現一遍。
《labuladong的算法小抄》
非常推薦!這是一本很新的書,寫書前作者在 Github 開源了一個項目,主要講解 LeetCode 解題套路,Start 總數排名前40。在書的開頭講解了學習算法的基本思維和套路,建議看這邊書的同時再配合 leetcode 刷題,療效非常棒!
《算法導論》
要是不推薦這本書是不是顯得我有點 low 了,這是一本科班出身的同學必看必學的經典大部頭。國外大佬寫的,國內翻譯的經典之作,雖然是經典但是不建議剛入門算法的同學看,因爲看了這本書你可能要放棄算法了,比較難看懂。建議有了一定基礎再入手這邊書。
如果你覺得看書比較枯燥,可以推薦你看一些極客時間的專欄,不過是收費,但是質量非常高。 《數據結構與算法之美》
這個專欄是文字+語音,作者是王爭,前 Google 工程師。他採用最適合工程師的學習方式,不拘泥於某一特定編程語言,從實際開發場景出發,由淺入深教你學習數據結構與算法的方法,幫你搞懂基本概念和核心理論,深入理解算法精髓,幫你提升使用數據結構和算法思維解決問題的能力。
《算法面試通關40講》
這個專欄是視頻,作者是覃超,前Facebook工程師。作者會用白板帶你一步一步解題,層層深入一環扣一環,每一題還會用多種解題方法。我基本看完了,收穫頗多。
leetcode、書和極客專欄可以並行,學練結合,不要光看不練。
最後
我把自己這段時間整理的Android最重要最熱門的學習方向資料放在了我的GitHub,裏面還有不同方向的自學編程路線、面試題集合/面經、及系列技術文章等。
資源持續更新中,歡迎大家一起學習和探討。