只要我跑的夠快,內卷它就卷不到我(高中生漲薪70%的面試總結)

前言

最近剛剛入職,確實很忙,大周末的跑到公司來研究Apollo的源碼。但是答應了群友出一篇面試的文章,所以想來想去先把文章寫了再說。

先大概說下我的面試經歷吧

筆者是從9月3號開始面試的,9月15號入職了微盟,目前是微盟基礎技術中心的一名高級開發工程師。期間一共面試了9家公司,其中4家確定了offer跟具體薪資。

兩家過了所有技術面,到HR面之後沒回應了,估計是覺得我薪資要的比較高,筆者這次跳槽薪資漲幅還是比較滿意的,月薪的話上漲了70%。

剩下還有3家,一家是在我入職後才通知我去公司做最後一輪面試,直接放棄了,其餘兩家感覺被HR刷KPI了。

這篇文章主要是分享面試的經驗,但是為什麼取這麼個標題呢?因為最近總是聽到內卷這個詞,大概就是說,程式設計師加班內卷、工資內卷等等之類的。說實話,我剛剛聽到這個詞的時候,連內卷是什麼意思都不知道,然後還特地去搜了一下,下面是百度百科的解釋

image-20200919133147429

這個解釋太抽象了,後來特地多找了找資料,內卷大概是這麼個意思

  • 在宏觀上,發展停滯不前,甚至在規模上萎縮退化。
  • 在微觀上,努力的效用停滯不前,甚至在邊際效用上萎縮退化。

把內卷這個詞放到程式設計師身上大概就是說

  1. 原來可能只要會個SSM就能拿1W一個月,現在可能連工作都找不到
  2. 原來一周工作40個小時可以拿1W一個月,現在可能一周要上50個小時,個人時薪低了

總結起來就是,個人價值被大環境拉低了。

怎麼說呢,首先,我個人覺得對任意一個充滿機遇的行業而言內卷都是一個必然的現象吧,其次的話沒有太感受到內卷,我覺得我還在享受這個行業的紅利,可能是因為我起點比較低的原因,就筆者最近的幾次跳槽而言,薪資漲幅都還比較高。其次,只要你足夠努力的話,內卷也沒關係,你進步的速度大於行業內卷的速度,那麼就可以一直走在行業的首端,每個行業都是大浪淘沙,但是分量足夠重的人是不會被淘汰的!

聊聊學歷

筆者是以高中學歷出去面試的,因為我本身是大學肄業的,我當時考在華南理工大學,後來大三的時候自己退學了,創業做了兩三年的遊戲工作室,你們可以理解為打遊戲吧,哈哈!工作室當時做遊戲代練、金幣交易等等一些東西

學歷還是比較重要的,如果你現在還是一名學生的話請一定要珍惜你現在的時光。不過哪些錯過了學生時代或者蹉跎了學生時代的朋友們也不要泄氣,因為能證明你能力的不僅僅只有學歷嘛!你可以從別的地方去給自己附加價值,作為一名程式設計師,給自己附加價值的最好方法應該就是參與開源項目了,筆者自己的話就參與了Spring的開源,給Spring提交了issue而且被採納了,除此之外,個人部落格也是一張技術名片。但是話也說回來,盡量去提升下學歷吧,筆者跟技術群里的小夥伴組建了一個自考群,有興趣的可以加我好友哈,可以一起交流一些自考的資訊(杜絕廣告)

實際上不管你有學歷或者沒學歷,請記住一句話,決定你未來的不是過去,而是當下!

所以,奮鬥吧,騷年!越努力,越幸運!

活在當下最重要,積累最重要,厚積薄發也不失為一種好的選擇

幹了上面的雞湯,我們開始進入面試的正題!

面試分享

對於一個去面試的人而言,首先要知道自己應該去準備哪些知識去面試,每個人的工作環境是不一樣的,所以每個人的知識體系也不一樣。網上很多面試的文章都是給了一副巨複雜的思維導圖,然後告訴你,把這張圖上的東西學完你就能年薪XX萬,但是可能畫圖的人自己都沒學完,因為他也學不完,東西太多了!

所以,筆者給的建議是,每個人應該根據自己現有的技術棧去準備面試。以筆者自己為例,因為近兩年使用的都是SpringCoud技術棧,所以在準備面試的時候完全放棄了Dubbo、ZK一系列的東西。如果面試官問起來,我基本就是回答:「以前用過,最近兩年沒怎麼用過了,會用,不是特別了解」

同樣的,筆者在消息中間件一直使用的RabbitMQ,對於RocketMQ、Kafka也放棄了。如果面試官問到這一塊的東西我基本就是憑著自己的一些了解一兩句帶過,因為確實沒怎麼用過,沒做太多了解。

但是如果你這麼做的話,那麼意味著你在其他通用的技術棧上要做到比一般人強。什麼叫通用的技術棧呢?比如Redis、MySQL、SSM、SpringBoot,這些東西你沒用過的話就不太合適了。所以我建議大家在這些技術應該要下些功夫,對於這些應該要做到只要面試官問到了,那麼你就要跟他聊到不想聊為止。

我的整個複習版圖如下:

面試複習版圖

要獲取這些圖的話在公眾號後台回復【2020年9月面試總結】即可獲取

接下來是一些常見面試問題,以及我在複習的時候總結的一些要點,其實就是上面的圖

Redis

常見問題

對於Redis以筆者這次面試的經驗來看,最常問的是兩方面

  1. 數據結構。
  2. Redis如何解決單點問題,其實問的就是Redis的集群

關於Redis的數據結構,一般來說提問場景如下

第一問:「你了解Redis有哪些數據結構嗎?」

Hsah、String、Set…..。第一問背一背就好了,沒什麼難度

第二問:「你們項目中是怎麼使用的?」

很多同學對這個答不好,因為可能就用過一個string結構。最好起碼要說個兩三種吧

string,一般存token

hash,做一些聚合資訊的快取,例如商品詳情頁要聚合很多資訊,要查很多表,用hash做快取

string提供的位運算功能(bitmap),統計用戶登錄次數

第三問:「如何解決Redis的單點問題?」 或者會問 「講一件Redis的集群」

這個問題我只講講思路,詳細講起碼要一篇文章。

首先,我們思考,什麼是單點問題?或者說單點有什麼問題?

問題一:單點故障,也就是說單機掛了,整個服務就不可用了

問題二:單機存儲上限,也就是說一台機器只能存這麼多東西

對於單點故障我們如何解決?———–> 主從模型

對於單機存儲上限我們如何解決 ———-> 數據分區

從這裡我們再引出Redis的集群是如何做的?Redis有兩種集群模型

  • 哨兵

  • RedisCluster

關於這兩種集群模式區別大家自行百度吧

複習要點

Redis

Redis集群

MySQL

常見問題

  1. 事務的隔離級別
  2. 什麼是幻讀?
  3. 聊聊事務的實現原理

在之前的文章中全部覆蓋到了,所以基本沒難度

複習要點

MySQL

SSM、SpringBoot、SpringCloud

也就是Spring、SpringMVC、MyBatis

  1. 問的比較多的,Spring的生命周期、AOP、事務

  2. SpringMVC的工作流程

  3. MyBatis基本沒問

  4. SpringBoot跟SpringCloud的區別

  5. SpringBoot自動裝配的原理

框架這塊因為比較了解,沒特地花時間去整理。

SpringCloud

消息中間件

我就講講RabbitMQ的工作模式、集群模式。然後講一下RocketMQ的topic跟隊列,對比下kafka的topic跟分區。

這塊沒什麼準備,所以聊的不多

消息隊列

JDK

HashMap、ConcurrentHashMap、AQS、synchronized

並發

集合這塊我複習的比較細,如果你不是面試一線大廠的話,沒必要了解這麼細,因為面試官也不會。著重了解1.8的就好了。

集合

JVM

  1. 記憶體結構
  2. GC
  3. 類是如何載入的?如何打破雙親委派?對SPI了解嗎?

JVM

基礎

基礎

分散式

分散式事務、分散式鎖、冪等性。這些是重點

分散式

分散式這塊是重點!分散式這塊是重點!分散式這塊是重點!

重要的話說三遍,一定要搞懂,必問

內推崗位

最後是一波內推崗位,有興趣的小夥伴趕緊拿簡歷砸我吧!!!

內推崗位

如果本文對你由幫助的話,記得點個贊吧!也歡迎關注我的公眾號,微信搜索:程式設計師DMZ,或者掃描下方二維碼,跟著我一起認認真真學Java,踏踏實實做一個coder。

公眾號

Tags: