面試從到處碰壁到受寵若驚!這種feel仍是不錯的,來梳理一下第五次找工做的經歷

此次找工做的經歷其實還好,遠不像第一次找工做是那樣的刻骨銘心。一輪下來,感受疫情之下,崗位及薪資相較於以前真的是有了很大的差異。面試機會仍是比較少的。html

背景java

旅遊行業受到疫情的衝擊很大,公司所以裁掉了整個部門。2020年6月多發生的事情。給了賠償金,因此心理還穩一點,不至於斷糧、斷貸、斷了生活。因此,休養生息了一個多月後,開始找工做。mysql

  • 學歷:成考大專
  • 工種:JAVA後端
  • 年齡:未滿31歲,差個幾百天
  • 經驗:9年多(JAVA-5年左右)
  • 面崗:高級/資深
  • 地點:福報城市-大杭州
  • 要求:平薪及以上 30w/年

剛開始心理是沒太大底的,不知道本身目前的專業知識是在什麼層次,有點忐忑。網上/現實不少人都在說今年的求職之路比較難,因此仍是心理仍是對現實的打壓有一個預估的。web


前奏面試

主要在BOSS上投遞(拉購投了幾個)。有基本的行業傾向和地域選擇,由此輻射出要投遞的公司。redis

有200次左右的打招呼,包括主動、被動。實際到達投遞簡歷環節50個左右,最終篩選經過有13次面試機會。算法

學歷這塊確實是問題,不少hr聊天過程當中明確硬性條件本科。並且不是全日制大專,也容易拿來講事!(只能說年少無知,學業不成)spring

時間:7月5日 - 8月13日最終肯定,基本上每週2-3個面試機會,沒有面試就去複習、內部消化。(其中3個是電面,其餘見面)sql

前4-5個是磨合面試狀態,及時調整自身的發揮和方式。數據庫


過程

只記錄過程當中印象深記得的問題,不是所有。關於非技術性的團隊、任務、劃分等問題沒有列出。

第一家 (醫療行業) 電面 一面掛

面試官:問、追問、細問,不作解答

  • 1.redis鎖的刪除、redis鍵的刪除?
  • 2.redis AOF方式是否只記錄了寫操做?(準確點應該包含驅逐策略及自動刪除的相關操做)
  • 3.mysql 事務隔離級別。RR、RC、RU模式下會不會產生幻讀問題。mysql中的鎖,間隙鎖、臨鍵鎖、意向鎖等的不一樣角度詢問。
  • 4.mysql添加索引的方式、索引的類型、不走索引的狀況,索引結構(聚簇索引),sql優化的幾種方式。
  • 5.線程池中的 countdownlatch的使用場景。併發包的一些介紹。
  • 6.線程的內存模型,線程內共享變量須要有什麼注意的地方。
  • 項目相關、業務相關問題

PS:沒有作準備,不少知識點屬於朦朧狀態,很倉促/語言邏輯組織有問題。40分鐘左右,當場就感受到了會掛。

第二家 (電商行業) 見面 一面掛

面試官:問、追問、對問題作解答

  • 1.arraylist 和 linkedlist的差異?
  • 2.arraylist 和 hashset的區別?
  • 3.hashmap的get方法描述?
  • 4.rocketMQ的groupid是什麼?
  • 5.oracle 和 mysql的語法區別?
  • 6.RocketMQ和 RabbitMQ的區別是什麼?
  • 7.線程死鎖的場景?
  • 8.線程池的建立邏輯及使用?
  • 9.預設場景提供解決方案!項目、業務相關問題

PS:過程比較和諧,面試官會耐心的對沒回答出來的作解釋。面完1個多小時以後,他說去和上級反饋,5-8分鐘以後,說回去等通知,就知道涼了,不抱有但願。

第三家 (電商) 見面 一面掛

面試官:問、追問

  • 1.springMVC調用過程?
  • 2.spring的啓動過程?
  • 3.springBoot、springCloud的使用?
  • 4.redis的主從同步過程、redis的hash槽,一致性hash,redis的使用,redis和數據庫的處理?
  • 5.rocketMQ的執行邏輯。 rocketMQ和rabbitMQ的區別?
  • 6.rocketMQ的推 和 拉 有什麼區別?
  • 7.rocketMQ的消息消費流程是什麼, broken的區分?
  • 8.數據庫的b+樹,紅黑樹區別?
  • 其餘

PS:30分鐘,此次面試內容的知識體系感受大部分沒有複習到,回答的不好,感受挺沮喪,遂快速放棄。回家複習。

第四家 (教育) 見面 一面掛

面試官:問、追問、讓本身總結每一個階段的回答要點

  • 1.sql語句的執行過程 (從執行 -> 返回)?
  • 2.每一個數據庫都有內存表, 數據庫層面的緩存?
  • 3.url的去重處理??
  • 4.b+tree的查詢過程,葉子節點存儲結構?
  • 5.偏重算法層面的一些問題?
  • 6.爬蟲、搜索等方面的問題?
  • 7.業務及以前工做經驗等

PS:1個多小時,此次明顯感受面試官的段位要高我太多太多了,40歲左右,深度、廣度全方位碾壓我。他的引導性很強,面試過程是很舒服的。

詳見:面試官不經意的露出微微一笑,我就知道我涼了,大神老是喜歡降維打擊

第五家 (智能服務) 見面 一面掛

面試官:問

  • 1.入參爲Long a, int b方法的比較實現,返回ture/false。(手寫)
  • 2.最小棧的實現(手寫)
  • 3.set的實現(原理)
  • 4.碰到的問題?
  • 5.XSS是什麼?解決方式有哪些?
  • 6.其餘

PS:40分鐘左右,面試官對於基礎的考量不少,本身的一些回答沒到點上。卒。

以上經歷了2周左右時間,瞭解了本身在哪方面準備的不足,期間及以後去狂補知識點。從起牀到晚上看書、刷面經。從深度和廣度去理解加深記憶。

感受以前問到的問題,從一個角度提問能大概回答,從另外一個角度就亂了。仍是理解深度不到位。

晚上9點 - 12點左右外出散步。一路上對某一知識點進行復述,琢磨面試官會從什麼角度發起提問及知識點應該怎麼擴展描述。
對自我介紹、項目描述、碰到的問題着重挑選幾個作複述。
第六家 (2B業務) 電面 二面掛

一面:問、細問、引伸問

線程、鎖、數據庫原理、jvm、項目優化、sql優化、Redis等、團隊管理、項目經驗等。

PS: 1個半小時左右,應該是以前比較豐富的經驗佔有優點,技術問題也差很少都答上來了,面試官竟然說:「經驗挺豐富,若是從業務評級,可能比我高,以後聯繫你二面」

二面:我不知道在幹嗎!,電面羣面(4我的)

自我介紹、工做經歷、搜索相關的2個問題。

PS:10分鐘不到,面試結束。以後沒有下文了,對它興趣不大,它對我興趣也不大。多是學歷有要求(hr要了學歷證書編號、身份證等信息,後續沒有後續了)

第七家 (電商業務) 見面 一面掛

面試官(40多):(很真實)「來吧,你要這個工資,得有對應的技術能力」, 因而在紙上開始羅列知識點,逐項詢問

1. 數據結構:map(treeset, hashmap, hashtable )
          set(treeset)
          list(vectory,linklist,arraylist)
2. 設計模式: 工廠、單例  (你還知道其餘什麼模式?應用場景)          

3. JVM:類加載、GC機制....

4. 鎖:Lock、synchronized...

5. 數據庫:...

6. .....

7. .....

8. .....

9. .....

10. .....

......

沒有太多廢話,直接一項一項驗證。每一項他會拆出3-4個內容詢問。每個又有幾個不一樣角度的問題試探。我答對了,他畫個勾勾,答錯了畫個叉叉,還有的打個對勾再加一叉。

很丟臉,一道很基礎的題,我手寫的太草率。覺得能過關,沒想到他在深究,我太隨意了也無意及時修改,他說這個暴露了很深很大的問題。他又說達不到這個薪資,而我在反思那個問題爲啥沒有認真考慮去寫,遂無意戀戰,卒。

PS:請認真對待每一次面試機會。每一次考驗本身能力的時候不要太隨意。

第八家 (電商業務) 見面 一面掛

面試官TL: 問、深問、細問

在我感受他是一種不走尋常路的問法。在深刻了解對方的知識體系創建的完整性及深刻性。

  1. disconf的運行原理是什麼?
  2. 你有爬蟲經驗,它的原理是什麼?過程是什麼?
  3. sentinel你有用過,它的原理是什麼?你是怎麼作的?
  4. 其餘

PS:能很明顯的感受到他的考量方式和以前的面試官有很大不一樣。他在圍繞我工做經驗中使用到的一些插件、框架發問。要求是不只會用,並且要有較深的理解/深刻的思考。我這裏回答的不太好,感受偏外圍的東西,本身確實沒有深刻去關注。因此當天及以後惡補了下相關知識。

第九家 (智能應用) 電面 一面掛

面試官:問、深問、細問、側面問

  • 1.設計模式
  • 2.wait(),sleep()區別 【鎖、CPU兩種資源如何處理的】都釋放cpu資源,sleep不釋放鎖,wait釋放鎖
  • 3.synchronized 爲何會阻塞?原理、實現、和lock區別
  • 4.countdownlatch,若是有個線程執行失敗,如何處理( 調用wait( time)帶超時時間的方法)
  • 5.MVCC 【多版本控制事務,建立視圖處理,不一樣的事務會看到不一樣的數據集,ACID中隔離性實現的基礎】
  • 6.epoll模型
  • 7…

PS:前期對話不太好,我竟然忘了投過這個公司,面試官口氣稍重的讓我去網上好好查查這個公司的信息。

面試過程一個半小時。面試官會對一個問題進行深刻、反覆、側面的詢問。目的就是考察你對這個知識點的掌握程度。技術面後作了基本的常規問題交流。沒有下文,涼了。

第十家(企業應用) 見面 掛

面試官A:問項目
我招的是資深架構師,你的項目沒什麼亮點!溝經過後不怎麼合適。找業務線主管面你。

面試官B:問、細問、場景問

  • 1.dubbo服務的超時機制是怎麼作的?,同步與異步區別?(FutureTask get()不斷循環比較時間, Netty的相似實現類使用)
    同步:建立DefaultFuture以後,直接get阻塞等待;
    異步:建立DefaultFuture以後,使用FutureAdapter進行包裝,以後設置到當前線程的RpcContext中;後續用戶在合適的時候本身從RpcContext獲取future,以後get。
  • 2.zk的臨時節點,監控是怎麼作的? 引用zkclient, 建立IzkDataListener。 重寫 handlerDataChange, handerDataDelete
  • 3.RocketMQ消費消息時如何保證冪等性?
    首先消息有全局惟一id
    a.數據庫中查詢當前數據的狀態,是否已經修改,如已修改則不處理。
    b.將id存在redis緩存裏,每次消費時,先去redis裏對比一下是否存在。若是存在則不消費。
    c.redis鎖/zk鎖,將當前惟一標識加鎖,每次看是否能獲取到鎖。和上面相似。
  • 4.ES的服務器優化,日誌蒐集過程,數據寫入、讀取和內存的關係
  • 5.5個G的單個日誌文件,如何快速寫入到ES中不影響服務器。
  • 6.300W表A,500W表B,200W表C的聯合查詢sql如何優化,(有查詢條件、多對多關係、不分表、不建新表,只針對sql優化)
a.首先看explain,是否走索引
b.聯合查詢方式,left join/ right join/ inner join,根據業務實現使用
c.查詢字段處理,  *改成精確字段,只返回知足需求的字段
d.on 條件及 where 條件的邏輯組織
e.數據庫字段的處理,長度/數據類型的調整。
f. 存儲過程?(不建議這樣作)
  • 7.針對6的場景,如何在代碼結構上優化
a. 加緩存,對當前條件查詢的結果進行緩存(如涉及數據一致性, 和Mysql服務端的高速緩存類比)
b. 該類數據轉換到ES存儲,加快他的查詢效率。
c. 針對日切統計業務,增長新表存儲日切數據。
  • 8.領域模型一點問題
  • 其餘…

PS: 共2個小時左右吧,問的問題都作了回答,可是達不到他的要求,他們最後討論後,以爲和工做崗位不匹配。卒。

上面這段期間的話,主要是在加深對於知識點的理解,及業務場景的應用。
第十一家 二面

面試官:問、追問、細問、側面問

  • 1.分佈式id實現有哪幾種?優缺點是哪些?
  • 2.CAP原則, zk是屬於哪哪一種的結合?
  • 3.數據庫爲何要分表 128張 ?
  • 4.分表的幾種方式及優缺點?https://www.cnblogs.com/myseries/p/11268574.html
  • 5.dubbo -> zk 之間是基於什麼協議? 長鏈接仍是短鏈接?爲何?
  • 6.@Transactional?(若是用於註釋私有方法,則不會產生任何效果。代理生成器將忽略它們。)
  • 7.tcp協議的字符流如何區分業務?(數據長度、加標識)
  • 8.hession序列化處理相關問題?
  • 9.年輕代 + 年老代的比例?
  • 10.dubbo服務的發佈? 版本控制、version控制、分組控制
  • 11.dubbo節點結構?
zk下的dubbo路徑
    /dubbo
        /Interface全包名
            /consumer
                consumer、ip地址、應用名稱、全路徑、參數等
           /configurators
           / router
          /provider
                協議、ip、端口、應用名臣、版本號、全路徑、參數等
  • 12.冪等性驗證,若是有大量請求,如何保證只能請求一次?如支付寶的付款碼(掃碼以後立馬標記爲失效!)
  • 13.RockMQ的消息順序消費。提供者 + 消費者 能夠集羣部署麼?怎麼處理?
  • 14.Topic和queue的關係
  • 15.CPU飈 100%,內存佔用率不高,如何查詢處理,緣由。 (top查找進程,jstac -l pid 處理)
  • 其餘

PS: 我應該有2個點沒答上來。技術問完以後一面面試官對我笑了,簡單常規問題後,等二面。TL問了些技術問題後,對我的經歷作了詢問,表現出了欣賞,共兩個半小時吧。最後hr作了基本溝通,回去等通知。

第十二家 三面

面試官:場景問、技術問、業務問

有一個項目/功能設計筆試,這不是信手拈來。作完開始面。

總體圍繞jvm、數據庫、MQ、Redis、Dubbo。除了沒作過的答不上來,其餘都正常的回答。前兩輪2個多小時,後面是跟技術總監聊經歷。回去等通知。

  • 1.JVM的類加載過程,每一步作了什麼操做?
  • 2.50個併發請求,同時操做redis的set\get操做,是否須要對相關方法加鎖?爲何?
  • 3.500-1000w的用戶數,每一個學校佔一部分用戶。若是某個一個老師佈置了一個做業,要同步發送到他的學生,怎麼作才能保證高效且不會對程序形成影響?
  • 4.怎麼樣快速清除數據庫中的過時訂單數據?有哪些方法?利弊是什麼?
  • 5.RocketMQ的消費流程/過程是什麼?
  • 6.AMQP?延時隊列?
  • 7.分佈式鎖的實現(Redis有兩種,ZK有三種)
  • 8.講一下單例模式,編寫時要注意的概念?
  • 9.final關鍵字的用法?
  • 10.SpringBoot某個註解的實現邏輯?
  • 11.碰到的問題詳細說明?(背景 -> 實現 -> 問題 -> 解決 -> 效果 -> 影響 -> 總結)
  • 12.數據庫優化相關?
  • 13.MySAIM 和InnoDB引擎的區別?
  • 14.數據庫索引的使用與優化?
  • 15.爲何InnoDB使用b+樹,爲何不用其餘數據結構?
  • 16.實時通訊/即時消息的展現場景處理?
  • 17.其餘(日常怎麼學習?閱讀的書?)

PS:總體面試仍是挺順暢的,可能有以前的面試經驗作背書吧,感受本身已經在節奏上了。對於問題和對它的擴展處理都能有個
較爲妥善的回答。面試官針對個別回答也表示出了:「你說的還挺全面/細緻」

說明這一個月的知識梳理仍是有成果的。仍是要增強在腦海中的印象及對它的熟稔程度。
第十三家 (企業服務) 三面

面試官:技術問、項目問、場景問

  • 1.你作的項目介紹?拆開了、掰碎了一點一點的問。
  • 2.服務拆分細節?
  • 3.DDD中的事件驅動模型,針對實時通訊展現的業務設計。
  • 4.Token的做用,及在項目中的應用,
  • 5.CSRF是什麼?場景及處理方式?
  • 6.針對某一場景,數據庫的設計?
  • 7.用例圖、ER圖、流程圖、時序圖簡單畫一下?
  • 8.以前公司的技術架構是什麼樣的?是怎麼演變的?
  • 9.XXXXXXX, XXXX? XXX!
  • 10.橫向加密和縱向加密瞭解麼?(忘了是怎麼問的了,不懂這個)
  • 11.Dubbo的實現原理?流程?手畫
  • 12.Dubbo的十層?
  • 13.Dubbo的支持協議?列舉場景?
  • 14.MySQL的索引添加原則,索引結構?
  • 15.BI的數據分析?
  • 16.其餘非技術問題…

PS: 3次面試總共有三個多個小時吧。可能之前工做經驗的緣故,非技術性的問題也談了不少。面試官說:「咱們這裏有多個崗位在招工,咱們商量下看看哪一個崗位最適合你!」,聽到這裏有戲,回去等通知。

插曲:

期間有個算半個外包,非說本身不是外包的公司打電話來簡單溝通。都沒談什麼,hr就拿學歷說事兒,壓工資。我說按技術能力談工資。

面試很順暢,他要繼續走流程。我拒絕了他。

結果

24小時內,最後三家公司陸續都給我打了意向電話,談了薪資、待遇和福利。這放在之前是想都沒想過的。本覺得今年會是被人挑,沒想到是我要去挑了。

這種感受仍是不錯的,讓本身有了很大的選擇餘地。並且更是讓本身加強了很多信心和動力。

最終選擇了一家心儀的、可持續發展的公司肯定了入職時間。還能作個入職體檢,給了本身4-5天的放鬆時間。徹底拋棄了找工做前期的陰霾。哈哈。

寫了個模板,拒絕了其餘兩家:

你好,通過慎重考慮,
我決定選擇xxx行業...

疫情之下,感謝貴公司的面試邀請,以及面試官對個人確定。
祝貴司穩健發展壯大!

總結

大廠、996福報我是無緣了。仍是根據本身水平找個合適的公司,能在生活與工做中達到某種契合的狀態吧。

要感謝本身的良好心態。可以及時調整心態和方向,在這段時間頂住了來自其餘方面的壓力。能靜下心來認真的分析每次的面試過程和結果。可以不斷的自我暗示及自我激勵。(由於30歲比20歲所面臨的壓力真得是要大太多了)

找工做過程當中,每一個公司的用人需求也略有差異。看實力也看運氣。有時候可能真得就要看運氣了,合適的時間/合適的地點碰到了合適的公司且知足公司的要求。因此,必定要放鬆心態,積極地面對一切。而不要讓壞情緒影響了本身的發揮。

建議

認真準備!認真準備!認真準備!(重要的事情說三遍~)

要認真對待每一次的面試機會!

每一個人都有本身的特長優點,要仔細分析且善於利用。

同齡人沒有個人工做經驗多,能夠發揮;工齡同樣但技能優點不同,能夠發揮;技能雷同但可擴展深度強,能夠發揮;就算拿出去像個路人,但也有【本身的博客】加持,代表本身是可持續成長的;…

反正有諸多可發揮可準備的點,那如何脫穎而出,就看你的發揮了。

此次面試有幾個公司真得是在海選。一個崗位10幾我的在競爭,面試簽到表一頁40行大部分都是java開發。有碰到很健談的,有碰到年紀更大的,也有碰到滿臉惆悵的。祝君順利~

Tips:

1. 認真準備簡歷
個人簡歷在潤色之下,才能得到這些面試機會。有人會認爲我寫的不錯。

2. 認真準備知識點
加深理解,融會貫通。不要正着問會,反着問就不會了。

3. 調整心態
「失敗乃成功之母」之類的廢話就很少說了,消極/陰鬱的狀態確定不會發揮太好

4. 我的特點
若是你能幽默的表述,就不要過於死板;
若是你善於全面分析,就不要點到即止;
若是你可以一針見血,就不要廢話連篇;
若是你引導了面試官,就不要順着他走;
若是你有更強的一面,請自信的發揮出來。

5. 多試試
任何面試都是一次機會。善於把握,不要浪費。

6. 及時覆盤
分析每次面試,是哪裏出現了問題?
哪方面的知識點沒準備好?
哪裏回答的有疏漏?
哪裏能夠擴展表述?
哪裏的回答能夠引伸出更好的點?

多嘗試去練習、去表述。

好了,我要放鬆兩天,去上班了。


以上只是來自一個‘大齡程序猿’的整理。這是工做,也是生活。記錄全部的點點滴滴! 《一個程序猿的編碼人生》