僅三個月!從零基礎的生物轉碼,到直接拿到5個大廠offer

個人背景介紹

樓主985本科半科班,為啥說是半科班呢,是因為我大一一整年是讀生物的,在實驗室養了一年寄生蟲,大二轉到了軟體,實際上大二一年也沒學啥計算機的東西,無非就是離散數學,數電那些東西。起這個標題也算是有點標題黨了,哈哈哈哈,應該算是生物轉碼吧?

我是從大三上學期開學的時候開始學的Java後端(我那時候對Java後端的內卷程度毫無概念),也就是去年的9月中旬,那時候算是0基礎,就只會一半的Java語法(反射,註解啥的全不會),也就寫寫for迴圈的程度。然後在12月初的時候出來面試日常實習,拿到了百度搜索架構部,百度商業平臺研發部門(先面的這個,再面的搜尋),美團優選事業部,滴滴國際化部門,還有快手一個我忘記是啥部門的offer,後來去美團實習到了現在,今天阿里的hr面過了,感覺我春招也就結束了,所以就寫個春招總結吧。

面試準備

我認為面試的話主要是分為三個部分,一個是八股文的準備,一個是演算法題的準備,還有就是專案。我開始學習的時候,嘗試去看了看書,然後發現我的理解能力屬實捉急,於是就選擇了看培訓班網課來學,不得不說B站的網課質量屬實高,我之前都沒想到程式設計課程還能教的這麼好。9月中到12月初大概看了JavaSE+JavaWeb+SSM+SpringBoot+Redis+資料庫+計算機網路+JVM+Java併發程式設計,具體哪一個影片的話,我基本就是搜尋下技術棧,然後按播放量排序,選擇最高的那一個。

在學習的時候有一些要注意的點吧,也可能是我個人學習的一些習慣,就是我把學習分為以下幾個步驟,知識的獲取,知識的整理,知識的記憶。知識的獲取沒啥好說的,其實就是一邊看影片一邊記筆記,主要是知識的整理和記憶,最初版本的筆記,實際上知識點具有散亂性和無思考性(我生造的詞),所謂的散亂性指的是,知識點之間可能有的是並列關係,有的是父子關係,如果單純的記錄的話,這樣散亂的知識點,就好像從沙灘上抓沙子,雖然每次都能抓起來一把,但是總有漏下去的。我的方法就是在老生常談的思維導圖上做了一個小升級,首先是把知識點拼成思維導圖,然後每個節點都以問題的形式儲存,問題和答案之間相當於是一個鍵值對的關係,這也就是為啥我說原始知識點具有無思考性,可能原始的知識點是Redis的AOF方式持久化存在如下問題,是一個陳述句,如果改造成問題的形式,就是Redis的AOF方式持久化存在什麼問題?使用問題的方式儲存知識點有一個好處是,你看到一個問題的時候本能的會去想它的答案,而看到一個陳述句,比如xxx的概念,xxx的性質,xxx的常用API。感覺腦子就一片空白有沒有,哈哈哈

然後是知識的記憶,我會在思維導圖的兄弟節點或者父子節點之間新增一些承上啟下的語句,比如父節點是InnoDB後臺執行緒的有什麼作用?承上啟下的語句是InnoDB的後臺執行緒的事實上分為4種,子節點是IO Thread有什麼作用,Purge Thread有什麼作用,Page Cleaner Thread有什麼作用,Master Thread有什麼作用?這樣做有什麼好處呢?或者是這樣做為啥能幫助記憶呢?因為這樣做就把所有知識點都串起來了,你在回想知識點的過程,實際上就是在給思維導圖這個多叉樹做DFS的過程,而這些承上啟下的語句,相當於就是節點的指標,指向子節點或者兄弟節點,每次把一個節點入棧,然後回想答案(想象在給別人解釋這個問題),想到承上啟下的語句(相當於透過指標找到了有哪些子節點),子節點入棧,回想答案,直到回想到葉子節點,彈棧,回溯。最後你能夠把整個大的知識樹DFS一遍,這塊的知識你也就掌握了。

這樣做還有一個好處,那就是你面試的時候,面試題能夠說的更多,並且這樣的說的更多不會讓面試官感覺你在拉著他強行輸出,而是自然而然

說出承上啟下的語句,等你把這個知識節點DFS一遍之後,甚至可以橫行擴充套件的說同層節點的知識,也不會讓人感覺突兀。最後給面試官留下的印象就是你這部分知識掌握

很紮實

還有就是演算法題吧,我演算法是真的不太行,著實想不出怎麼做,所以我這邊經驗可能沒啥參考價值,我大概刷了350題左右,每道題平均5遍(提交次數/刷題數量),最後就是硬默寫下來的。

最後再發些去年12月的面經吧,有的面經沒記錄,就把記錄了的發發

面經

猿輔導

自我介紹

1。Java中建立執行緒的方式

2。執行緒中能不能丟擲異常

3。JVM記憶體分割槽

4。mvcc

5。threadloacl

6。為什麼使用B+樹作為索引

7。執行緒池7大引數,4大拒絕策略

8。執行緒池核心執行緒能被回收嗎?救急執行緒怎麼回收的

9。有a,b,c覆蓋索引,查詢的時候怎麼使用索引,查詢b>3,a=1,c=5,使用到了那個索引?

10。SpringIOC,AOP好處

11。Spring迴圈依賴

12。Java集合框架

13。獲取ConcurrentHashMap長度的時候要不要加鎖

14。HashMap擴容,1。7和1。8區別

演算法:判斷迴文連結串列

美團優選

1。自我介紹

2。聊專案

3。專案安全校驗怎麼實現

4。專案中redis怎麼用的

5。專案中資料庫表的設計

6。mysql事務隔離級別和實現原理(mvcc)

7。mysql聚簇索引和非聚簇索引

8。B+樹特點和作為索引的好處

9。redis持久化方式

10。redis主從複製(全量複製和部分複製)

11。redis哨兵機制(心跳機制和選舉機制)

12。redis腦裂解決方案

13。演算法:Z字型遍歷二叉樹

2020年12月16日 週三 位元組跳動

1。自我介紹

2。輸入一個URL之後發生了什麼

3。DNS,TCP分別是什麼層的協議

4。OSI七層參考模型

5。資料鏈路層和物理層瞭解哪些協議

6。TCP三次握手建立連線之後,客戶端如果突然垮了,咋辦

7。Redis持久化方式(RDB,AOF)

8。Zset底層資料結構

9。ziplist和skiplist

10。什麼時候是ziplist

11。執行緒程序區別

12。程序通訊方式

13。演算法題 山谷找山峰,我先說了個O(N),然後又最佳化到O(logN)大概做了8分鐘

14。反問:業務,面試表現

位元組跳動

自我介紹

如果發現伺服器有大量的close_wait狀態連線,發生了啥

HTTP狀態碼301,302,304,403,404,500,501,503

HTTPS協議如何實現安全

HTTPS是對稱加密還是非對稱加密

HTTPS協議中隨機數的作用

聚集索引和非聚集索引區別

InnoDB中輔助索引查詢過程

mysql事務隔離級別

mysql如何在不可重複讀級別上解決的幻讀

mysql中的間隙鎖是啥

TSL和SSL的區別

演算法題 摺疊連結串列

演算法題 LC124

智力題 兩個人玩拋硬幣,A先拋勝利機率

2020年12月17日 週四 快手 一面二面

三次握手四次揮手

影片通話如何實現

職業規劃

寫sql

智力題,3個桶容量3,7,10,其中10是滿的,如何兩等分

演算法題,括號匹配

演算法題,單詞翻轉

演算法題,最長公共子串

滴滴 一面

專案的分層架構

專案中Mybatis的用法

Arraylist底層資料結構,擴容機制,初始容量

HashMap底層資料結構,擴容機制,初始容量,負載因子,雜湊計算公式

Redis分散式鎖

Redis基本資料結構

演算法:氣泡排序(在紙上寫)

2020年12月17日 週四 滴滴 二面

介紹專案

Redis分散式鎖

volatile

記憶體屏障底層實現

ReentrantLock內部類Sync,AQS相關

synchronized(重量級鎖,輕量級鎖,偏向鎖,鎖升級,鎖膨脹,鎖自旋)

資料隔離級別

資料隔離級別怎麼實現(mvcc)

啥時候來實習

家是哪裡的

百度 一面

介紹專案

專案中redis怎麼用的

專案中併發量

專案中怎麼保證的同步

mysql能否保證執行緒安全

抽象類和介面的區別

Java中的反射

SpringBoot如何整合Mybatis

什麼是多型

字串怎麼比較相等(equals)

可以用==判斷相等嗎?

演算法題:輸入四則運算字串輸出結果(口述即可)

追問,如何判斷是數字(正則表示式)

智力題:三個貼錯標籤的箱子,蘋果,梨,蘋果和梨。拿一個水果重貼標籤

現在手上幾個offer

百度給你發offer你會來嗎

百度給你開什麼條件你會比較想來呢?你比較看重哪個方面

反問:部門業務

百度 二面

介紹專案

如果專案的併發量增加,怎麼改善架構(一直追問如果再增加呢?分散式快取,反向代理,讀寫分離,CDN加速)

專案中遇到的困難

專案中如何排錯

Java中用到了什麼設計模式

演算法題 LC4

反問:上下班時間

最後面試官說:我就明說了吧,我這邊和一面面試官給你的評價都是來面試的人中最高的,我們就招一個實習生,基本確定能給你一個offer,你來不來的話儘快答覆。

總結

人與人存在很大的不同,我們都擁有各自的目標,在一線城市漂泊的我偶爾也會羨慕在老家踏踏實實開開心心養老的人,但是我深刻知道自己想要的是一年比一年有進步。

在文章的最後作者為大家整理了很多資料!包括java核心知識點+全套架構師學習資料和影片+一線大廠面試寶典+面試簡歷模板+阿里美團網易騰訊小米愛奇藝快手嗶哩嗶哩面試題+Spring原始碼合集+Java架構實戰電子書等等!

全部免費分享給大家,只希望你給作者點個贊!

資料獲取方式:轉發和評論這篇文章,然後關注小編,後臺私信【java】即可打包帶走所有資料~

僅三個月!從零基礎的生物轉碼,到直接拿到5個大廠offer

僅三個月!從零基礎的生物轉碼,到直接拿到5個大廠offer