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