1. 課程簡介
本課程的核心內(nèi)容可以分為三個部分,分別是需要理解記憶的計算機底層基礎(chǔ),后端通用組件以及需要不斷編碼練習的數(shù)據(jù)結(jié)構(gòu)和算法。
計算機底層基礎(chǔ)可以包含計算機網(wǎng)絡(luò)、操作系統(tǒng)、編譯原理、計算機組成原理,后兩者在面試中出現(xiàn)的頻率很少,課程主要關(guān)注網(wǎng)絡(luò)和系統(tǒng)兩個模塊,計算機網(wǎng)絡(luò)模塊主要介紹了常見的 TCP 協(xié)議、HTTP/HTTPS 協(xié)議,操作系統(tǒng)模塊主要介紹了操作系統(tǒng)的進程和線程、內(nèi)存管理的頁面置換算法等高頻題。
后端通用組件主要分為存儲持久化數(shù)據(jù)的數(shù)據(jù)庫,存儲臨時數(shù)據(jù)的緩存以及通信中間件。常用的支持持久化存儲的數(shù)據(jù)庫有 Oracle Database、SQLite 以及 MySQL,其中 MysQL 已經(jīng)是后端必備的數(shù)據(jù)庫技能。常用的緩存方案有 memcached、guava cache、Redis,其中 Redis 是目前大型應(yīng)用系統(tǒng)首選的緩存組件,課程介紹了 Redis 的數(shù)據(jù)結(jié)構(gòu)和應(yīng)用問題。通信中間件則介紹了 RabbitMQ 的常見應(yīng)用問題。
數(shù)據(jù)結(jié)構(gòu)和算法部分最能提現(xiàn)候選人的編程基本功以及邏輯思考能力,課程主要介紹了最常見的算法案例,例如快排、鏈表、二叉樹、動態(tài)規(guī)劃。
課程總體上是面向工作 3 年內(nèi)的初中級程序員以及準備面試后端崗位的應(yīng)屆生,因為篇幅原因并不能涵蓋所有的面試題,候選人需要做到舉一反三,例如能夠通過對于二叉樹的各種遍歷操作總結(jié)得到解決二叉樹問題的遞歸算法模板,這也是本課程的最終目的。
2. 為什么要做這門面試教程?提升面試能力與了解市場現(xiàn)狀
就業(yè)市場和所有的市場相同,影響就業(yè)指標的關(guān)鍵就是供需關(guān)系。在互聯(lián)網(wǎng)行業(yè),供需主要分為兩類,需求方是作為招聘方的互聯(lián)網(wǎng)公司,供給方則是作為候選人的程序員。如果互聯(lián)網(wǎng)公司對于程序員的需求大于市場上流動的人員數(shù)量,此時求職的程序員就會有更大的議價能力,這種情況一般發(fā)生在每年的金三銀四時間段。如果程序員數(shù)量過剩,互聯(lián)網(wǎng)公司則會普遍提高選拔指標,嘗試篩選出更符合條件的候選人。
從供給側(cè)來看,根據(jù) 2021 年高考填報志愿的統(tǒng)計數(shù)據(jù),計算機和金融已經(jīng)明顯成為兩大金磚專業(yè),越來越多的高水平學(xué)生流入到計算機專業(yè),以及觀察考研數(shù)據(jù),可以發(fā)現(xiàn)計算機已經(jīng)是最受歡迎的目標專業(yè)。
從需求側(cè)來看,國內(nèi)互聯(lián)網(wǎng)經(jīng)歷了 2010 年之后的移動互聯(lián)網(wǎng)流量大爆炸時期,增速已經(jīng)逐漸放緩,各種大廠的競爭也從尋找增量的用戶轉(zhuǎn)為到存量市場博弈,例如在電商領(lǐng)域繼淘寶和京東之后出現(xiàn)的拼多多、唯品會等各種細分應(yīng)用,或者從企業(yè)微信、阿里釘釘以及字節(jié)跳動飛書的辦公軟件領(lǐng)域的競爭都可以看出存量市場競爭的激烈。蛋糕已經(jīng)很難做大,所以大家都開始花精力研究如何分到更多的蛋糕。
所以未來的趨勢很明顯,互聯(lián)網(wǎng)的供給增速飛快,但是需求增速放緩,作為找工作的一方,不管是應(yīng)屆在校生還是工作時間不長的程序員,都需要提高自己的核心專業(yè)素養(yǎng)。