聚焦校招準(zhǔn)備的“度”

今日乃實(shí)習(xí)離職首日,福毅、宏銘同學(xué)便紛紛前來尋我解惑。問道:你跟我們說了校招需要準(zhǔn)備的知識點(diǎn),我們也按照你說的用思維導(dǎo)圖整理了所有的知識點(diǎn)?可是那么多知識點(diǎn)還要研究源碼,在下可謂有心而無力,眼看時間不斷流逝且秋招即將來臨,我們真的是心力交瘁,比考研同學(xué)起得早睡得晚恐怕都難把這些問題解決通透,你說的是不是謬論?

疑問

1、在準(zhǔn)備校招基礎(chǔ)知識復(fù)習(xí)的時候,是否做到面面俱、這樣做會感覺時間不夠用呀?集合為例,抽象類、具體實(shí)現(xiàn)類他們之間的關(guān)系以及各自優(yōu)缺點(diǎn)?我們是否要每一個類都要去精讀它的源碼?新版本的JDK10的是否有必要去研究?

2、在準(zhǔn)備理解某個模塊知識的的時候,是否需要精讀一本書去解決一個版塊的學(xué)習(xí)?并發(fā)編程為例,深入研究并發(fā)編程實(shí)踐這本書直到對并發(fā)編程的每個鎖、并發(fā)容器、線程池的來龍去脈全部了解一清二楚,否則感覺掌握還是不太徹底(鉆牛角尖做法)?

3、在準(zhǔn)備校招項(xiàng)目的時候,是否要重新運(yùn)用市場上主流技術(shù)做一個完整的項(xiàng)目?感覺以前做的項(xiàng)目在技術(shù)緯度亮點(diǎn)不足,更加偏向于業(yè)務(wù)?

4、在準(zhǔn)備校招面試的時候,重點(diǎn)考察那些方面?計(jì)算機(jī)基礎(chǔ)(數(shù)據(jù)結(jié)構(gòu)/算法、計(jì)算機(jī)網(wǎng)絡(luò)、操作系統(tǒng)、數(shù)據(jù)庫)、Java基礎(chǔ)(設(shè)計(jì)模式、源碼研究)、互聯(lián)網(wǎng)技術(shù)棧(SpringBoot、Mybatis、緩存、消息隊(duì)列、RPC框架)、大并發(fā)與大數(shù)據(jù)的處理。是不是這幾個方面都研究完,我再去投簡歷、筆面試?

解決思維的共性闡述

1、世間萬物無非都分為深度和廣度。

廣度:緯度思維,它是知識面的全局把控,能夠清晰展現(xiàn)所有知識點(diǎn)的內(nèi)在聯(lián)系。對于廣度來說是一張藍(lán)圖或者目錄,而不需要care它的具體實(shí)現(xiàn),只需要了解知識點(diǎn)之間的關(guān)系。

深度:線性思維,它是知識點(diǎn)的深度挖掘,能夠清晰展示某個知識點(diǎn)的來龍去脈。對于深度來說這個不用贅述,因?yàn)槲覀儚男〉竭_(dá)刷題做數(shù)學(xué)題大家都有了解。

2、校招面試中對深度和廣度的要求是什么?該怎么去把控?

我剛剛解釋了我對于寬度與廣度的理解,從知識角度來說分為知識寬度如計(jì)算機(jī)科學(xué)、心理學(xué)、知識管理,知識深度如在計(jì)算機(jī)科學(xué)面中的分布式架構(gòu)有深入研究。

那對于校招面試中對于深度和寬度該怎么去闡述呢?
假設(shè)我畢業(yè)校招目標(biāo)應(yīng)聘的崗位是Java后臺工程師的崗位,在我另外的文章有說過需要掌握哪些知識面和知識點(diǎn)是需要我們掌握的。

從寬度來說,以Java基礎(chǔ)為例無非就是分為語言基礎(chǔ)用法、容器、IO/NIO、網(wǎng)絡(luò)、反射、JVM、并發(fā)編程。
從深度來說,以容器中的HashMap來說?我們怎么從深度解釋它原理呢?比如讓你闡述HashMap這個問題你怎么說呢?
日常回答:

HashMap是一個容器,它以key和value的形式存儲,key不能重復(fù)......。這樣回答是非常的平庸的,且顯得深度和條理極度欠缺。

深度回答:

(1)HashMap的數(shù)據(jù)結(jié)構(gòu)是什么?數(shù)據(jù)+鏈表(畫圖)
(2)Key、Value是通過什么方式存儲進(jìn)去的?解釋hashcode、取余、去重等操作。
問題:Key在HashCode取余以后,它可能全部堆積在某幾個Key對應(yīng)的鏈表上,這樣就會造成該數(shù)據(jù)結(jié)構(gòu)存儲或者查詢低效,那怎么解決呢?

拋出問題:
(3)怎么保證Key用hashcode取余以后能夠均勻分布到數(shù)組對應(yīng)的鏈表上位置?......
問題:等存儲的數(shù)據(jù)逐漸增加,那也會造成鏈表過長,導(dǎo)致查詢變慢,那怎么解決呢?

拋出問題:
(4)為什么會鏈表要變成紅黑樹,什么時候從鏈表變成紅黑樹,什么時候從紅黑樹變回鏈表?
問題:假設(shè)多個線程并發(fā)訪問,那可能造成容器更新或者操作出現(xiàn)問題,可能會說synchronized加同步鎖,有沒有其他辦法解決呢?

拋出問題:
(5)為什么采用CAS,能說一下ConcurrentHashMap的具體實(shí)現(xiàn)嗎?
不知道大家發(fā)現(xiàn)問題的共性沒有?任何事物都可以分為深度和廣度兩個方面,甚至是有條理說出HashMap的實(shí)現(xiàn),也是從廣度與深度。

橫向問題:數(shù)據(jù)結(jié)構(gòu)+算法、存儲查詢方式、存儲效率、安全性?
縱向問題:具體邏輯實(shí)現(xiàn)流程。

具體問題的解決辦法

問題1:不需要,寬度深度不可兼得,集合為例。

(1)用類圖或者思維導(dǎo)圖展示出整體輪廓、掌握集合類之間的關(guān)系。(廣度視角)
(2)通過面試題+??兔娼?jīng),洞悉集合中比較重要常問的集合,標(biāo)記重點(diǎn)研究,非重點(diǎn)了解即可。(深度視角)

問題2:需看書系統(tǒng)學(xué)習(xí),但有側(cè)重點(diǎn),以深入理解JVM為例。

這書枯燥且難懂,若想把這本書的來龍去脈精讀通透確實(shí)太難。
(1)看書目錄和粗看了解整體的知識與內(nèi)在聯(lián)系。
(2)通過看視頻+博客+面經(jīng),標(biāo)記這本書需要精讀的重要章節(jié)。
(3)系統(tǒng)讀這本書,重要的地方必須精讀直到理解為止,不重要的地方可戰(zhàn)略性放棄或者略讀。

問題3:項(xiàng)目沒有l(wèi)ow或者不low之分,應(yīng)該是思考原項(xiàng)目的不足,你該怎么去優(yōu)化,而不是推倒重新去做另一個項(xiàng)目。

(1)提取你項(xiàng)目的亮點(diǎn),你在這項(xiàng)目中獲得什么?包括業(yè)務(wù)經(jīng)驗(yàn)、代碼設(shè)計(jì),而不是就感覺就是增刪改查很low。
(2)根據(jù)你現(xiàn)在的認(rèn)知,假設(shè)讓你重新再做,你該怎么設(shè)計(jì)?系統(tǒng)健壯性、擴(kuò)展性、并發(fā)性,甚至可以添加一些新的沒有在項(xiàng)目用到的技術(shù)棧,但是你講清楚且會怎么用也可以?
(3)不需要推倒重做一個新的項(xiàng)目,而是做一個模塊或者什么去反襯你的技術(shù)棧(nginx、redis、消息隊(duì)列等)?這時候,你就應(yīng)該去做一個模塊,就如簡單的秒殺系統(tǒng),你該怎么去設(shè)計(jì)?為什么要用到這些技術(shù),每一種技術(shù)主要解決的問題是什么?

問題4:任何事情都不可能等你準(zhǔn)備齊全才行動,最好的方式就是想好了馬上行動,多嘗試與實(shí)踐,形成自己獨(dú)特面試風(fēng)格。

一般面試的要求無非就是就是基礎(chǔ)扎實(shí)(研究的深入寬度問題)、技術(shù)視野開闊(廣度問題),不用把面試弄的緊張兮兮,就是一個“約會”的經(jīng)歷,只是不能開車。

(1)面試考察:基礎(chǔ)扎實(shí)、項(xiàng)目/實(shí)習(xí)經(jīng)驗(yàn)豐富、技術(shù)視野開闊。
(2)面試期望:短時間培養(yǎng)內(nèi)能夠干活,能夠有潛力承擔(dān)更多職責(zé)。
(3)面試結(jié)果:面試官主要是引導(dǎo)你回答問題,而不是讓你把所有東西都能做到最完美,這也不可能。主要你在面試中展現(xiàn)出你1-2個特長認(rèn)為你可培養(yǎng)那么將會被錄用,例如你表現(xiàn)出基礎(chǔ)扎實(shí)算法好?項(xiàng)目/實(shí)習(xí)經(jīng)驗(yàn)豐富團(tuán)隊(duì)配合能力強(qiáng)、快速學(xué)習(xí)能力強(qiáng)?技術(shù)視野廣、發(fā)散性思維強(qiáng)、code能力強(qiáng)?

實(shí)踐案例圖

1、看容器章節(jié)總結(jié)

[圖片
容器總結(jié).png

2、讀深入理解JVM總結(jié)


深入理解JVM.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容