金三銀四銅五鐵六

来源:https://www.cnblogs.com/zhuoqingsen/archive/2019/04/28/interview.html
-Advertisement-
Play Games

魯班簡稱LB 據說,金三銀四,截止今天為止面試黃金時間已經過去十之八九,而LB恰逢是這批面試大軍其中的一名小兵,很不幸今年恰逢遇上了互聯網寒冬(即各大公司都在裁員,對外提供崗位相對較少的,這意味著很多猿即將面臨著更多的競爭對手和相對較少的崗位困境),LB求職過程種種被虐,屍體趟過召喚師峽谷每個角落, ...


   魯班簡稱LB

  據說,金三銀四,截止今天為止面試黃金時間已經過去十之八九,而LB恰逢是這批面試大軍其中的一名小兵,很不幸今年恰逢遇上了互聯網寒冬(即各大公司都在裁員,對外提供崗位相對較少的,這意味著很多猿即將面臨著更多的競爭對手和相對較少的崗位困境),LB求職過程種種被虐,屍體趟過召喚師峽谷每個角落,如今歷歷在目,終究,當初的一名無名小卒如今已是一名超級兵哈哈,但是從這個事情上卻學到了不少的東西,LB不虧。

  經驗也總是用來交流用的,於是LB覺得有必要記錄下來,也許對猿們會有一絲幫助。

  首先,找工作得有一份體面的簡歷,這裡就會衍生一個如何書寫簡歷的問題,LB將從如下角度總結:

  關於簡歷

    如何書寫簡歷

    HR角度較為關註信息

    1.個人信息(年齡,聯繫方式等)

    2.求職意向(工作年限,工作地,崗位)

    3.教育經歷(專業,學校,畢業時間) 

    證書(如ACM,軟證,外語水平)

    面試官角度較為關註信息

    1.專業技能

      4-5項熟悉2-3項瞭解,建議層次分明,邏輯有序,建議別寫精通,除非很NB,不然被問到不是很深的問題你答不出,面試官認為你不真實。

    2.自我評價

      是否有博客(文章數太少不寫,減分),是否有GITHUB(提交數和STRA太少不寫,減分),是否有積極學網課(如極客時間星球,虛假減分)。

    3.項目難點

      隊列和緩存高可用,分散式應用衍生問題解決方案,JVM的排查技能,資料庫層面優化和分庫分表等,這些東西都需要你嵌入到你的項目中。

    那麼什麼是‘’優秀‘’的簡歷(網圖)

           看圖

         

    哈哈哈,我大佬說,看到這種簡歷直接扔垃圾桶吧,原因很簡單,你既然那麼牛逼還特麽需要自己投簡歷找工作麽,早就被挖了,這種一看就是啥經驗都沒有培訓生或者不懂行規的應屆生簡歷寫的東西,那麼合格的簡歷剛剛上面已經說了,專業技能模塊不能寫太多,層次分明就可以,大概這樣:

         

    暫不評價技術如何,光從這個專業技能在簡歷的書寫規則上是很符合層次分明的,而且一行代表一個領域,總體上來看就是一個標準的JAVA後臺開發路線的技術棧,而且從內容上來看,也有一定的側重點,這樣給面試官的感覺就會比較友好,提問方便。與人方便自己方便。

 

    如何投遞簡歷

    拉鉤,公司官方網

    這種看RP了,有時候投出去也大概率不會被看到,稱之為海投,收到面試邀請不管怎麼樣,去了再說,畢竟是一種經歷,總能學到東西的,但如果是你比較想去的公司,沒有很大得取勝信心,建議別投先,畢竟如果被刷,那就得含淚在等一年了。

    BOSS直聘,脈脈

    搜索你想去的公司,然後加HR或者技術官後給他們發簡歷,本質和BOSS直聘差不多,他們看到你的簡歷,並且覺得OK,一般都非常願意幫你內推的,因為內推錄用了,是有推薦金的。

    朋友內推,獵頭內推

    這種獲得面試機會幾率較高,因為是直推的。

        

  關於面試

     面試需要準備3個部分的東西

      演算法智力題筆試

      項目技術面試

      HR跪舔與防坑寶典

    

      首先是演算法編程題

    這個沒辦法的,會就會不會的話,短時間之內也是做不出來的,有些公司硬性規定必須要你寫出來,否則免談,LB遇到個一個很奇葩的一次面試就是,筆試題出了編程題目,沒想到一面後面完了,還讓你去做一道編程題,二面也是,估計HR面也是。。無可厚非,因為他們認為動手能力才是最重要的,所以對於猿們唯一的辦法就是提前刷題,如果不是面試對演算法有較高要求的公司,一般的公司只要把LeetCode簡單的題目刷了就能做出來大部分的題目,甚至會遇到一模一樣的題目,連標點符號也一樣哦。

      然後就是智力題

    其實也不是什麼智力題,網上一搜程式員面試智力題一大推,看來看去也就是那幾類問題,頭腦比較聰明的猿基本不需要準備。

    這裡重點講講技術面    

    面試官:能寫出一段能體現你水平的代碼~

    LB:好的~

    幾秒後~

1 while{
2   Scanner scan = new Scanner(System.in);  
3   String question = scan.nextLine();       
4   String answer =question.replace ('你', '我'). replace ('嗎', ' '). replace ('?', '!') );
5   Sysem.out.println (answer );
6 }

    面試官:呀,這難道就是.....

    LB:沒錯,是失傳已久的Artificial Intelligence

    面試官:你究竟是什麼人?

    LB:閣下莫問出處,這個程式我示範給您看下

    面試官:好的

    LB:在嗎?

    電腦:在!

    LB:你可以人機對話嗎?

    電腦:我可以人機對話!

    LB:你會自己思考嗎?

    電腦:我會自己思考!

    面試官也躍躍欲試:你可以滾出去嗎?

    電腦:我可以滾出去!

    

              寒冷的冬天,外出的農夫,看見一條凍僵的蛇,於是把蛇帶回了家,解凍之後,泡進酒里,蛇終於醒了,看到如此場景,蛇說:我也是醉了

    emmm~

    言歸正傳,技術面就是看你的技術棧,然後結合項目去提問,並根據項目遇到的問題,要求回答出解決方案,並且根據遇到的問題會繼續問深一層或者變形,考察你是否真的對問題進行了仔細的思考和深入的研究,以及問題對應的技術功底是否深厚,所以這裡提到的重點是項目結合技術棧,如果你的項目沒有用到你寫的技術,那麼就是扯蛋,那麼面試官就會認為這個候選人只是停留在理論基礎或者是初學,並沒有實踐,如果是應屆生還說的過去,否則多半會被PASS。

     那什麼基礎功底

     比如問你某些關鍵字的作用如static

        如果你答出static修飾變數、修飾方法我會認為你合格,答出靜態塊,我會認為你不錯,答出靜態內部類我會認為你很好,答出靜態導包我會對你很滿意,滿意的原因是能看出你確實非常熱衷研究技術。這比你在自我評價寫一萬句本人熱愛研究技術,學習能力強之類的廢話更有說服力。

     又如問你對鎖部分的瞭解  

     1.一般人回答出Synchronized具有多線程的同步作用,能防止多個線性同時訪問同一臨界資源。

             2.但是卻很少人提到 Synchronized的局限性(無法解決業務層面併發)。

             3.可以說明鎖的用法,如可以創建 Reentrantlock類的可重入鎖,而且可以通過其中的lock和unlock方法行加鎖和解鎖的操作。

     4.說出可重入鎖、公平鎖和讀寫鎖,如詞鎖的含義、公平數的含義,以及在創建 Reentrantlock和 Semaphore時如何通過參數強它是否是公平鎖,也可以說明在讀寫鎖中加讀鎖和寫鎖的條件,由此介紹通過讀寫線程吞吐量的做法。

             5.在協調多個線程處理臨界資源時,可以使用鎖,但這不是唯一的解決方法,還可以用 Condition和 Semaphore管理多線程竟爭的方法。首先,說明這兩個類的基本用法如可以通過 Reentrantlock來創建 Condition,過 Condition的awat和 signal來實現類似加鎖和解鎖的功能,可以通過 Semaphore acquire和 release方法來申請和釋放資源。另外,說明用 Condition和 Semaphore的特點(在哪些場景下用它們比較合適)通過 Condition類的相關方法,可以在不同的線程中創建多個阻塞隊列,從而能精準的控制喚醒某個阻塞隊列的線程,而不是只喚醒預設的阻塞隊列的線程,而 Semaphore可以用在多個線程競爭少量資源的場合中。如10張票,20個線程的搶購場景。

    再如問你對框架里的瞭解      

              因為一般的候選人,大多僅僅是能“山寨”別人的代碼,也就是說能在現有框架的基礎上,照著別人寫的流程,擴展出新的功能模塊。比如要寫個股票掛單的功能模塊,是會模仿現有的下單流程,然後從前端到後端再到資料庫,依樣畫葫蘆寫一遍,最多把功能相關的代碼點改掉。其實我們每個人都這樣過來的,但在面試時,如果你僅僅表現出這樣的能力,就和大多數人的水平差不多了,在這點就沒法體現出你的優勢了。

              我們知道,如果單純使用SSM框架,大多數項目都會有痛點。比如資料庫性能差,或者業務模塊比較複雜,併發量比較高,用Spring MVC里的Controller無法滿足跳轉的需求。所以一般還會被問:你除了依照現有框架寫業務代碼時,還做了哪些改動?

     對於這個問題,不在乎聽到什麼回答,只關心回答符不符邏輯。一般只要答對,面試官就會給出“在框架層面有自己的體會,有一定的瞭解”,否則,就只會給出“只能在項目經理帶領下編寫框架代碼,對框架本身瞭解不多”。

             回答例如有:增加了Redis緩存,以避免頻繁調用一些不變的數據。或者,在MyBitas的xml里,select語句where條件有isnull,即這個值有就增加一個where條件,對此,會對任何一個where增加一個不帶isnull的查詢條件,以免該語句當傳入參數都是null時,做全表掃描。或者對返回信息做了壓縮處理,以增加網路傳輸性能。

              小結:

              技術面試非常重要,這裡說的重要不是說對於整個求職過程重要,因為在求職過程哪怕是HR面都有權利決定不要你,所以說沒有重不重要的,這裡說的重要的是指這是檢驗你自身水平的能力的考察,通過面試其實可以反映出你的自身很多問題,比如,知識面有了,但是不夠全面,或者知識面全了但是不夠深入,或者把需求轉化為實際產品的能力不足等等,這些東西才是對於你來說是重要的,如果你的能力有了,還會害怕找不到工作嗎?這裡最怕的就是明知自己能力不足,又不願意專研學習,還想著高新,只能說你不適合當一名程式員。

    那麼問題來了,我知道自己的情況,但是又不知道努力的方向,或者不知道怎麼提升自己,怎麼辦?如果你能提出這樣的問題,LB只能說,你獨立解決問題能力確實也是挺差的,因為在我們開發當中,經常會遇到一些需求,都不知道怎麼去做,或者用一些完全沒接觸過用的框架,如果團隊中有人熟悉那還好,但是也別指望別人教你太多,所以這個時候就只能靠自己了,無它,需要你通過網上找教學資料(視頻,博客,官方網)的方式快速學習,這些資料花幾塊錢隨手可得,然後一步一個腳印慢慢的把產品做出來。

    

    HR跪舔與防坑寶典(LB總結了一些)

    自我介紹  

    您好,很榮幸有機會來參加公司的面試

    1.個人經歷(我是誰,我來自哪裡,年齡,學歷,從業經歷)實習加上正職 

    2.公司為什麼要選你(應聘崗位中最重要的3個技能點,說清楚相關經驗)我能做好我要做的事情,我相信自己

    3.你為什麼要選這家公司(就公司的產品,文化,影響力等)著重說出你選擇的理由如貴公司的高技術開發環境很吸引我,貴公司在近年來市場上很有競爭力,貴公司能夠提供一個與眾不同的發展道理

    

    高頻問題 

    1.上一家公司,你為什麼會離職?

    1.公司很好,但是公司調整了業務,接下來的發展路線和自己的目標不一致,所以要換工作

    2.工作太清閑,學不到知識,我不怕累,就是想多鍛煉自己,想找具有挑戰力工作

    3.公司的管理制度不也是很完善,沒有晉升機會,我比較想進步,找一個更好的平臺

    4.我想去優秀的公司,讓自己變得更好

    2.為什麼來我們這裡?

    1.對原單位充滿感恩,這是我人生中非常重要的經歷,我認同原單位領導和文化

               2.兩份工作的本質是一致的,行業和工作性質都有緊密聯繫

               3.選擇一份新的工作不代表背叛過去,發揚原公司魅力,同時為了尋求更大的成長和突破

               4.不承諾一份工作乾一輩子,保證在我的任期內盡職盡責 

              3.你怎麼看待自己以後的職涯?(包括工作和家庭的分配,怎麼平衡家庭和工作的關係、加班、選擇一家公司時的考量、地點等)(離職穩定性)

    我準備在技術領域有所作為,我希望在我3到5年內,具備什麼樣的素質,在行業內達到什麼樣的水平,產出什麼樣的工作成果,將規劃量化,具體化 

    4.對薪資期望(不要直接說數,絕不能表現出沒到多少錢或者什麼層級我就不去)

    薪資應該基於你求職行業的市場價格和自身的價值,例如目前這個崗位的平均工資是8K,雖然我剛畢業,但是在我工作期間已經有過兩份的相關經驗而且都是作為核心成員參與項目,因此可以很快上手這份工作,所以我希望能夠在轉正後的工資能達到10K等等 

    5.可以接受降薪嗎?(先瞭解公司薪酬體系,根據行業和自身能力來定位)

    如果候選人的調性符合(足夠官方),可以這麼回答:我也瞭解咋們公司現在的薪資架構,我相信公司會根據我的能力給出一個合理的薪水方案,我相信只要把事情做好,該有的一定會有的對於這樣的部門,“ 畢竟貴公司在做一個從來沒有人做的這麼好的事情,所以肯定是有難度的,肯定是要付出大量努力的 ”

    6自己覺得自己工作上的短板/優點是什麼?

    1.不能避而不談,

    2.不能變相誇自己,

    3.不能暴露重大缺陷,

    4.可以將一些能接受能改進的缺點

    綜上:缺點加說明加改進

    7.說說自己性格上的優缺點(描述一下自己的性格)

    我不懂得如何拒絕他人,我拉不下麵子去指出別人的問題,我做事的時候希望馬上就能看到成效,有時候會比較貪心,想同時做好幾項工作,我比較慢熱,不善於和陌生人打交道,我有意識的讓自己在改正,讓自己更加有親和力,我非常在意別人對自己的工作評價,得不到好評就會焦慮,其實我也在開導自己別太功利心了。沉著冷靜,條例清楚,立場堅定,頑強向上,樂於助人和關心他人,適應能力等等

    8.怎麼看待加班(你能接受996、997、007嗎)?

    可以接受版本

    如果候選人的調性符合(足夠官方),可以這麼回答:我覺得我們要實現夢想,一定是要付出比較多努力的,所以我已經做好了準備,也願意和小伙伴們一起戰鬥我是可以加班的,我現在加班強度就是比較大的。因為我喜歡這個事情,我想把這個事情做好。項目忙的時候可能一個月都沒有休息日,我覺得要應對這麼忙的工作,光有心理準備其實還不夠,還要有特別好的身體素質,所以我準備把健身的習慣一直堅持下去

    不接受版本

     加班是應該的,不加班也是應該的,沒有把事情做完是不應該的,因為能力低完成工作慢造成的加班,並不是一件好事,不加班是能力,加班是態度,能力不夠的情況下,態度去補。  

    9.你談戀愛了沒?(狀態是否穩定,會不會因為感情影響工作,很快結婚,休婚假產假)

    我還沒有談戀愛,目前不考慮戀愛問題,我希望自己變得更優秀以後,在談一場穩定的戀愛,所以現在想把主要的精力放在工作上。

       我已經有男朋友或女朋友,我們都在這個城市工作,目前準備先工作幾年,有精力能力了在考慮結婚。   

    10.是否還面試其他公司(HR確認求職意向與誠信度)

    實話實說,選擇名聲較大較好的公司來說,職位和現在的求職相思相近,表是自己求職意向專一,還在等候結果   

    11.項目中遇到的最大挑戰是什麼?怎麼解決的?

    因人而已,需要描述問題產生的原因,查找解決問題的方式,對比那種更加好,遇到什麼問題,最終怎麼一步一步解決的

    12.最有成就感的事情是?  

    做有挑戰性的事情,並且能夠做好,或者是堅持一個習慣很久,如堅持寫博客,堅持看書

    13.你有什麼問題想問的?  

    1.你作為一個資深的CODER,我想知道,你平時是怎麼學習技術,有什麼好的學習途徑,怎麼才能做到像你一樣強呢?

    2.公司的業務和技術棧是什麼呢?

    3.技術難點怎麼解決,有什麼技術支持

    4.每天有多少時間花在寫代碼上 

    14.收到OFFER該問的5個問題

    1.試用期工資和時間(正常來說合同是3年,試用期是3個月)

    2.轉正考核的方式,轉正工資

    3.工作時間以及加班計算(一周五天工作制,一天8小時)

    4.培訓晉升機制

    5.福利情況(五險一金,餐補,其他補貼如電腦補貼)

  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 解釋幾個概念: 替換元素:官方解釋是,一個內容不受css視覺格式化模型控制,css渲染模型並不考慮對此內容的渲染,且元素一般擁有固定的尺寸,(高度,寬度)的元素,被稱為置換元素。通俗來說就是瀏覽器根據元素的標簽和屬性,來決定元素的具體顯示內容。 舉例來說:瀏覽器會根據img標簽的src屬性的值來讀取 ...
  • 一、單頁面應用(SPA) 1.1 C/S到B/S頁面架構的轉變 C/S:客戶端/伺服器(Client/Server)架構的軟體。 C/S 軟體的特點: ① 從window桌面雙擊打開 ② 更新的時候會替換原有的,原有的必須刪除,不能刷新。 ③ 在其他的設備上使用的時候,也要安裝軟體。 B/S :瀏覽 ...
  • 話說我要為技術博客寫一個小程式版,我的博客解決方案是 hexo + github page ,格式當然是技術控們喜歡的 markdown 了 。但小程式使用的卻是獨有的模版語言 WXML 。我總不能把之前的文章手動轉換成小程式的 wxml 格式吧,而網上也沒完善的轉換庫,還是自己寫個解析器吧。 解析 ...
  • JavaScript 閉包函數(理解) 關於閉包先瞭解函數執行環境,作用域鏈以及變數對象 在函數調用的時候,會創建一個函數的執行環境,這個執行環境有一個與之對象的變數對象和作用域鏈 變數對象和作用域鏈 上面這個例子只是返回了一個閉包函數,就調用了一次函數 ...
  • 橋接模式概述 定義:將抽象部分與它的實現部分解耦,使得兩者都能夠獨立的變化 就拿我們日常使用的蠟筆來說,蠟筆有不同的大小和顏色,所以我們往往買的蠟筆盒中會有不少的蠟筆。需要用哪個就用哪個,是不是很方便???然而毛筆卻不是這樣,毛筆分為不同大小,卻只有一個調色盤,裡面裝著不同的顏料。我們需要什麼用到什 ...
  • 單體應用 單體應用簡單講就是把一個系統所涉及的各個組件都打包成一個一體化結構併進行部署和運行。在Java EE領域,一體化結構很多時候體現為一個WAR包,而部署和運行的環境就是以Tomcat、weblogic為代表的各種應用伺服器 應用伺服器上同時運行面向用戶的web組件、封裝業務邏輯的servic ...
  • 設計模式 創建型 工廠方法模式 定義:定義一個創建對象的介面,但讓實現這個介面的類來決定實例化哪個類,工廠方法讓類的實例化推遲到子類中進行 使用場景: 創建對象需要大量重覆的代碼 客戶端(應用層)不依賴於產品類實例如何被創建、實現等細節 一個類通過其子類來指定創建哪個對象 當明確地計劃不同條件下創建 ...
  • 前面幾篇,我們已經把簡單工廠、工廠方法模式以及抽象工廠模式一一進行了拆解,一步步讓我們學會了這幾個工廠模式,哦,對了,簡單工廠並不算真正意義上的工廠。 我們通過吃披薩的啟發,對創建披薩進行了改造;又發展了遠景,對披薩加盟有了濃厚的興趣,並開了很多加盟店;又對材料進行了嚴格把控,才有了現在的規模。工廠 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...