做者:魯班大師
https://www.cnblogs.com/zhuoq...
文中的魯班簡稱LB html
聽說,金三銀四,截止今天爲止面試黃金時間已通過去十之八九,而LB恰逢是這批面試大軍其中的一名小兵,很不幸今年恰逢趕上了互聯網寒冬(即各大公司都在裁人,對外提供崗位相對較少的,這意味着不少猿即將面臨着更多的競爭對手和相對較少的崗位困境),LB求職過程種種被虐,屍體趟過召喚師峽谷每一個角落,現在歷歷在目,終究,當初的一名無名小卒現在已經是一名超級兵哈哈,可是從這個事情上卻學到了很多的東西,LB不虧。前端
經驗也老是用來交流用的,因而LB以爲有必要記錄下來,也許對猿們會有一絲幫助。java
首先,找工做得有一份體面的簡歷,這裏就會衍生一個如何書寫簡歷的問題,LB將從以下角度總結:程序員
面試官角度較爲關注信息面試
1.專業技能算法
4-5項熟悉2-3項瞭解,建議井井有條,邏輯有序,建議別寫精通,除非很NB,否則被問到不是很深的問題你答不出,面試官認爲你不真實。spring
2.自我評價數據庫
是否有博客(文章數太少不寫,減分),是否有GITHUB(提交數和STRA太少不寫,減分),是否有積極學網課(如極客時間星球,虛假減分)。編程
3.項目難點後端
隊列和緩存高可用,分佈式應用衍生問題解決方案,JVM的排查技能,數據庫層面優化和分庫分表等,這些東西都須要你嵌入到你的項目中。
那麼什麼是‘’優秀‘’的簡歷(網圖)
哈哈哈,大佬說,看到這種簡歷直接扔垃圾桶吧,緣由很簡單,你既然那麼牛逼還特麼須要本身投簡歷找工做麼,早就被挖了,這種一看就是啥經驗都沒有培訓生或者不懂行規的應屆生簡歷寫的東西,那麼合格的簡歷剛剛上面已經說了,專業技能模塊不能寫太多,井井有條就能夠,大概這樣:
暫不評價技術如何,光從這個專業技能在簡歷的書寫規則上是很符合井井有條的,並且一行表明一個領域,整體上來看就是一個標準的JAVA後臺開發路線的技術棧,並且從內容上來看,也有必定的側重點,這樣給面試官的感受就會比較友好,提問方便。與人方便本身方便。
這種看RP了,有時候投出去也大機率不會被看到,稱之爲海投,收到面試邀請無論怎麼樣,去了再說,畢竟是一種經歷,總能學到東西的,但若是是你比較想去的公司,沒有很大得取勝信心,建議別投先,畢竟若是被刷,那就得含淚在等一年了。
搜索你想去的公司,而後加HR或者技術官後給他們發簡歷,本質和BOSS直聘差很少,他們看到你的簡歷,而且以爲OK,通常都很是願意幫你內推的,由於內推錄用了,是有推薦金的。
這種得到面試機會概率較高,由於是直推的。
面試須要準備3個部分的東西
這個沒辦法的,會就會不會的話,短期以內也是作不出來的,有些公司硬性規定必需要你寫出來,不然免談,LB遇到個一個很奇葩的一次面試就是,筆試題出了編程題目,沒想到一面後面完了,還讓你去作一道編程題,二面也是,估計HR面也是。。無可厚非,由於他們認爲動手能力纔是最重要的,因此對於猿們惟一的辦法就是提早刷題,若是不是面試對算法有較高要求的公司,通常的公司只要把LeetCode簡單的題目刷了就能作出來大部分的題目,甚至會遇到如出一轍的題目,連標點符號也同樣哦。
其實也不是什麼智力題,網上一搜程序員面試智力題一大推,看來看去也就是那幾類問題,頭腦比較聰明的猿基本不須要準備。
面試官:能寫出一段能體現你水平的代碼~
LB:好的~
幾秒後~
while{ Scanner scan = new Scanner(System.in); String question = scan.nextLine(); String answer =question.replace ('你', '我'). replace ('嗎', ' '). replace ('?', '!') ); Sysem.out.println (answer ); }
面試官:呀,這難道就是…..LB:沒錯,是失傳已久的Artificial Intelligence
面試官:你到底是什麼人?
LB:閣下莫問出處,這個程序我示範給您看下
面試官:好的
LB:在嗎?
電腦:在!
LB:你能夠人機對話嗎?
電腦:我能夠人機對話!
LB:你會本身思考嗎?
電腦:我會本身思考!
面試官也躍躍欲試:你能夠滾出去嗎?
電腦:我能夠滾出去!
寒冷的冬天,外出的農夫,看見一條凍僵的蛇,因而把蛇帶回了家,解凍以後,泡進酒裏,蛇終於醒了,看到如此場景,蛇說:我也是醉了。
emmm~
言歸正傳,技術面就是看你的技術棧,而後結合項目去提問,並根據項目遇到的問題,要求回答出解決方案,而且根據遇到的問題會繼續問深一層或者變形,考察你是否真的對問題進行了仔細的思考和深刻的研究,以及問題對應的技術功底是否深厚,因此這裏提到的重點是項目結合技術棧,若是你的項目沒有用到你寫的技術,那麼就是扯蛋,那麼面試官就會認爲這個候選人只是停留在理論基礎或者是初學,並無實踐,若是是應屆生還說的過去,不然多半會被PASS。
若是你答出static修飾變量、修飾方法我會認爲你合格,答出靜態塊,我會認爲你不錯,答出靜態內部類我會認爲你很好,答出靜態導包我會對你很滿意,滿意的緣由是能看出你確實很是熱衷研究技術。Static 關鍵字的 5 種用法,推薦你看下這篇。這比你在自我評價寫一萬句本人熱愛研究技術,學習能力強之類的廢話更有說服力。關注Java技術棧微信公衆號,在後臺回覆:java,能夠獲取我整理的java系列教程,都是乾貨!
1.通常人回答出Synchronized具備多線程的同步做用,能防止多個線性同時訪問同一臨界資源。面試常考:Synchronized 有幾種用法?看下吧!
2.可是卻不多人提到 Synchronized的侷限性(沒法解決業務層面併發)。
3.能夠說明鎖的用法,如能夠建立 Reentrantlock類的可重入鎖,並且能夠經過其中的lock和unlock方法行加鎖和解鎖的操做。
4.說出可重入鎖、公平鎖和讀寫鎖,如詞鎖的含義、公平數的含義,以及在建立 Reentrantlock和 Semaphore時如何經過參數強它是不是公平鎖,也能夠說明在讀寫鎖中加讀鎖和寫鎖的條件,由此介紹經過讀寫線程吞吐量的作法。
5.在協調多個線程處理臨界資源時,可使用鎖,但這不是惟一的解決方法,還能夠用 Condition和 Semaphore管理多線程竟爭的方法。首先,說明這兩個類的基本用法如能夠經過 Reentrantlock來建立 Condition,過 Condition的awat和 signal來實現相似加鎖和解鎖的功能,能夠經過 Semaphore acquire和 release方法來申請和釋放資源。Java中的鎖原理、鎖優化、CAS、AQS詳解,推薦閱讀。關注Java技術棧微信公衆號,在後臺回覆:多線程,能夠獲取我整理的多線程系列教程,都是乾貨!
另外,說明用 Condition和 Semaphore的特色(在哪些場景下用它們比較合適)經過 Condition類的相關方法,能夠在不一樣的線程中建立多個阻塞隊列,從而能精準的控制喚醒某個阻塞隊列的線程,而不是隻喚醒默認的阻塞隊列的線程,而 Semaphore能夠用在多個線程競爭少許資源的場合中。如10張票,20個線程的搶購場景。
由於通常的候選人,大多僅僅是能「山寨」別人的代碼,也就是說能在現有框架的基礎上,照着別人寫的流程,擴展出新的功能模塊。好比要寫個股票掛單的功能模塊,是會模仿現有的下單流程,而後從前端到後端再到數據庫,依樣畫葫蘆寫一遍,最多把功能相關的代碼點改掉。其實咱們每一個人都這樣過來的,但在面試時,若是你僅僅表現出這樣的能力,就和大多數人的水平差很少了,在這點就無法體現出你的優點了。
咱們知道,若是單純使用SSM框架,大多數項目都會有痛點。好比數據庫性能差,或者業務模塊比較複雜,併發量比較高,用Spring MVC裏的Controller沒法知足跳轉的需求。因此通常還會被問:你除了依照現有框架寫業務代碼時,還作了哪些改動?關注Java技術棧微信公衆號,在後臺回覆:spring,能夠獲取我整理的spring系列教程,都是乾貨!
對於這個問題,不在意聽到什麼回答,只關心回答符不符邏輯。通常只要答對,面試官就會給出「在框架層面有本身的體會,有必定的瞭解」,不然,就只會給出「只能在項目經理帶領下編寫框架代碼,對框架自己瞭解很少」。
回答例若有:增長了Redis緩存,以免頻繁調用一些不變的數據。或者,在MyBitas的xml裏,select語句where條件有isnull,即這個值有就增長一個where條件,對此,會對任何一個where增長一個不帶isnull的查詢條件,以避免該語句當傳入參數都是null時,作全表掃描。或者對返回信息作了壓縮處理,以增長網絡傳輸性能。
技術面試很是重要,這裏說的重要不是說對於整個求職過程重要,由於在求職過程哪怕是HR面都有權利決定不要你,因此說沒有重不重要的,這裏說的重要的是指這是檢驗你自身水平的能力的考察,經過面試其實能夠反映出你的自身不少問題,好比,知識面有了,可是不夠全面,或者知識面全了可是不夠深刻,或者把需求轉化爲實際產品的能力不足等等,這些東西纔是對於你來講是重要的,若是你的能力有了,還會懼怕找不到工做嗎?這裏最怕的就是明知本身能力不足,又不肯意專研學習,還想着高新,只能說你不適合當一名程序員。
那麼問題來了,我知道本身的狀況,可是又不知道努力的方向,或者不知道怎麼提高本身,怎麼辦?若是你能提出這樣的問題,LB只能說,你獨立解決問題能力確實也是挺差的,由於在咱們開發當中,常常會遇到一些需求,都不知道怎麼去作,或者用一些徹底沒接觸過用的框架,若是團隊中有人熟悉那還好,可是也別期望別人教你太多,因此這個時候就只能靠本身了,無它,須要你經過網上找教學資料(視頻,博客,官方網)的方式快速學習,這些資料花幾塊錢隨手可得,而後一步一個腳印慢慢的把產品作出來。
您好,很榮幸有機會來參加公司的面試
1.我的經歷(我是誰,我來自哪裏,年齡,學歷,從業經歷)實習加上正職
2.公司爲何要選你(應聘崗位中最重要的3個技能點,說清楚相關經驗)我能作好我要作的事情,我相信本身
3.你爲何要選這家公司(就公司的產品,文化,影響力等)着重說出你選擇的理由如貴公司的高技術開發環境很吸引我,貴公司在近年來市場上頗有競爭力,貴公司可以提供一個不同凡響的發展道理
1.公司很好,可是公司調整了業務,接下來的發展路線和本身的目標不一致,因此要換工做
2.工做太悠閒,學不到知識,我不怕累,就是想多鍛鍊本身,想找具備挑戰力工做
3.公司的管理制度不也是很完善,沒有晉升機會,我比較想進步,找一個更好的平臺
4.我想去優秀的公司,讓本身變得更好
1.對原單位充滿感恩,這是我人生中很是重要的經歷,我認同原單位領導和文化
2.兩份工做的本質是一致的,行業和工做性質都有緊密聯繫
3.選擇一份新的工做不表明背叛過去,發揚原公司魅力,同時爲了尋求更大的成長和突破
4.不承諾一份工做幹一生,保證在個人任期內盡職盡責
我準備在技術領域有所做爲,我但願在我3到5年內,具有什麼樣的素質,在行業內達到什麼樣的水平,產出什麼樣的工做成果,將規劃量化,具體化
薪資應該基於你求職行業的市場價格和自身的價值,例如目前這個崗位的平均工資是8K,雖然我剛畢業,可是在我工做期間已經有過兩份的相關經驗並且都是做爲核心成員參與項目,所以能夠很快上手這份工做,因此我但願可以在轉正後的工資能達到10K等等
若是候選人的調性符合(足夠官方),能夠這麼回答:我也瞭解咋們公司如今的薪資架構,我相信公司會根據個人能力給出一個合理的薪水方案,我相信只要把事情作好,該有的必定會有的對於這樣的部門,「 畢竟貴公司在作一個歷來沒有人作的這麼好的事情,因此確定是有難度的,確定是要付出大量努力的 」
綜上:缺點加說明加改進
我不懂得如何拒絕他人,我拉不下面子去指出別人的問題,我作事的時候但願立刻就能看到成效,有時候會比較貪心,想同時作好幾項工做,我比較慢熱,不善於和陌生人打交道,我有意識的讓本身在改正,讓本身更加有親和力,我很是在乎別人對本身的工做評價,得不到好評就會焦慮,其實我也在開導本身別太功利心了。沉着冷靜,條例清楚,立場堅決,頑強向上,樂於助人和關心他人,適應能力等等
能夠接受版本
若是候選人的調性符合(足夠官方),能夠這麼回答:我以爲咱們要實現夢想,必定是要付出比較多努力的,因此我已經作好了準備,也願意和小夥伴們一塊兒戰鬥我是能夠加班的,我如今加班強度就是比較大的。由於我喜歡這個事情,我想把這個事情作好。項目忙的時候可能一個月都沒有休息日,我以爲要應對這麼忙的工做,光有心理準備其實還不夠,還要有特別好的身體素質,因此我準備把健身的習慣一直堅持下去
不接受版本
加班是應該的,不加班也是應該的,沒有把事情作完是不該該的,由於能力低完成工做慢形成的加班,並非一件好事,不加班是能力,加班是態度,能力不夠的狀況下,態度去補。
我尚未談戀愛,目前不考慮戀愛問題,我但願本身變得更優秀之後,在談一場穩定的戀愛,因此如今想把主要的精力放在工做上。
我已經有男友或女友,咱們都在這個城市工做,目前準備先工做幾年,有精力能力了在考慮結婚。
實話實說,選擇名聲較大較好的公司來講,職位和如今的求職相思相近,表是本身求職意向專注,還在等候結果
因人而已,須要描述問題產生的緣由,查找解決問題的方式,對比那種更加好,遇到什麼問題,最終怎麼一步一步解決的
作有挑戰性的事情,而且可以作好,或者是堅持一個習慣好久,如堅持寫博客,堅持看書
1.你做爲一個資深的CODER,我想知道,你平時是怎麼學習技術,有什麼好的學習途徑,怎麼才能作到像你同樣強呢?
2.公司的業務和技術棧是什麼呢?
3.技術難點怎麼解決,有什麼技術支持
4.天天有多少時間花在寫代碼上
1.試用期工資和時間(正常來講合同是3年,試用期是3個月)
2.轉正考覈的方式,轉正工資
3.工做時間以及加班計算(一週五天工做制,一天8小時)
4.培訓晉升機制
5.福利狀況(五險一金,餐補,其餘補貼如電腦補貼)
關注Java技術棧微信公衆號,在後臺回覆:面試,能夠獲取我整理的面試系列經驗,都是乾貨!
推薦去個人博客閱讀更多:
2.Spring MVC、Spring Boot、Spring Cloud 系列教程
3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程
生活很美好,明天見~