本文章來自秋招粉絲的親身經歷,秋招準備及互聯網面試找作業經歷,又是一個需要分析offer的粉絲,感謝他的走心分享
老規矩面經和學習經驗分享,剩下的就是微信回復他
17號分享
學習經歷
先說自己的經歷吧,我是本科某 211 機械跨考計算機的,運氣好進了某 985 高校
本科只接觸過 C 語言和資料庫概論,學習 java 是從去年的 8 月 24 號開始的,在 B 站找了清華大學老師的 java 課程,也算是啟蒙課程
后面就按部就班的學,每天除了上課,吃飯,睡覺,就是去圖書館狂補本科落下的知識,好在宿舍有大佬在,不會的晚上回去一起交流
看過的書(完全按照時間順序排序)
- java 基礎方面(以黑書和核心技術卷一為主,先核心技術再黑書,github 也有大佬參與翻譯 java 8 那本書,同樣可以去看看)
- 資料結構(推薦使用紅演算法那本書,java 語言寫的,很適合看)
- 計算機基礎知識(看了一個 CSAPP,其中涉及網路的可以不看)
- 設計模式(用的 head first,不全但是適合入門)
- MySQL 方面(InnoDB 存盤引擎那本書,比較晦澀,需要多看多翻)
- jvm(深入理解 jvm 那本書,寫得很棒)
- java 并發(并發編程的藝術那本書,前三章比較晦澀,需要先看 jvm 再看這本書,leetcode 有并發編程題,可以練手)
- 計算機網路(推薦圖解 http 和圖解 tcp/ip 這兩本,前者完全夠用,后者看時間可能需要看黑書補充)
- Linux(私房菜 + 練習,反正虛擬機搞壞了大不了快照處理)
- Redis(之所以不和 MySQL 放在一起,在于 MySQL 才是重中之重,先學好 MySQL,再學其他的,看的就是那本 Redis 設計與實作,看得很快,從基本結構出發,能很清楚看到具體的實作細節)
- java web(筆者是寒假在家學的,由于疫情原因,延長假期,得以將 網路編程 -> java web -> ssm -> spring boot 這個學了一遍,也看了一部分原始碼)
- Kafka ZK Dubbo(這三者放在一起,是因為筆者發現面試越來越喜歡問分布式知識了,這種東西你可以直接八股文背誦,但是事后還是需要系統學習,視頻(博客) + 官方檔案 + 書 + 原始碼)
快手一面
- 專案相關
- kafka 的訊息的順序一致性如何保證,kafka 的訊息可靠性如何保證,kafka 的 controller 選舉和 leader 選舉
- 讓 A 執行緒等待 B 執行緒有哪些措施
- ReetrantLock 和 sychronized 關鍵字區別
- 如果我有一個 http 的 api 方法,這個方法突然執行耗時較平時長,可能存在的問題,如何進行排查
- gc 中新生代有兩個 survivor 區,這兩個 survivor 起到什么作用,為什么需要兩個 survivor 區,如何調整大小
- CMS 和 G1 之間的區別
- 輸入 www.nowcoder.com 發生了什么,瀏覽器如何展示 html 頁面
- Bean 的回圈依賴如何解決
- Spring 在哪些地方用了什么設計模式
- 享元模式、代理模式、模板方法
- 演算法題:設計適用于手機 9 鍵輸入法的資料結構和演算法具體要求:鍵入一個 4,應該回傳所有以 g/h/i 開頭的字串;鍵入 43,應該回傳以 g/h/i d/e/f 兩兩組合開頭的字串
快手二面
- 專案相關
- 執行緒的狀態以及其對應的呼叫方法
- java 中的鎖有哪些及其底層實作原理
- 網卡中的資料如何被加載到記憶體中
- BIO / NIO 的區別,如果 NIO 的 channel 一直為空,cpu 是否會飆高
- redis 作為記憶體資料庫有哪些優點
- redis 的 cluster 模式如何進行通信,redis 中新增節點時的 slot 重新分配
- 100G 的資料檔案存有字串,找出出現次數最多的字串,限制記憶體使用量為 4G
- 演算法題:設計一個能產生亂數的演算法,并且產生的亂數必須是之前并沒有出現的
關于面試
從 8 月開始面試一直持續到 10 月,兩個月拿的 offer 確實對得起自己去年一整年的努力,但由于時間關系,分布式和具體的專案經驗尤為欠缺,面試中同樣會問及場景題,這個就需要自己平時多看多想,比如看視頻的時候,老師也會提到這種東西有什么好處,可以干啥干啥,這個你同樣需要留心,在面試時候說不定也能臨時救場,
分布式這種東西,面試基礎不會出現太難的問題,大多都是皮毛問題,但是這些問題你不看,你就完全不懂,但是你只要花個幾天的時間去看,你就可以速成分布式的面試問題,這個筆者在面試時經常吃虧,后面只好逼著自己學,
專案經驗這個確實是跨考生的痛苦,但是面試不在于你的專案多酷炫,在于你對專案的理解程度,這些不僅僅是各知識點的堆積組合,更要說明你為什么要用這個東西,如果實在說不出來,你完全可以說為了用而用,學習練手的專案并不會要求多合理,
面試更多要求專業的基礎知識,如果連 java 的 char 能不能存盤漢字都不知道,你卻搞一些分布式雜七雜八的,面試官只會覺得你過于浮躁,資料結構 + tcp/ip 協議書 + 作業系統 必須重點掌握,java 基礎 + 設計模式 + MySQL + Linux + 并發 + jvm + web 同樣也是重點,分布式雖說是加分項,但是計算機專業的學生內卷極其嚴重,分布式他會你不會,怎么可能要你,
希望用這些最真實案例給想學編程的萌新一些參考,學習的路上不再迷茫,
關于這位粉絲的面試題答案我也整理好了,需要的可以:點擊這里!!暗號博客園
開發手冊系列:
Java核心知識點
框架篇
原理篇
核心知識
阿里巴巴開發手冊(匯總)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/202799.html
標籤:其他
上一篇:01變數交換的三種方式
