你見過程序員跳槽寶典嗎,35歲後慎點

還有倆月就又要到一年一度的金九銀十跳槽季了,你們開始做準備了嗎。

馬雲曾經總結過,一個員工在你這不想幹了,無非兩個理由:

  1. 錢沒到位
  2. 心裏受委屈了

這兩句話可謂是道出了多少跳槽人的心聲。很多人都說程序員是喫青春飯的,雖然我本身並不是特別贊同這句話,但也可以看出一個問題,那就是現在還在市場上四處求職的人,基本上都是處於二十多歲到三十歲之間的,也就是我們所謂的九零後居多。(資深程序員是不會拿簡歷去面試的,都是內推!內推!內推!重要的事兒說三遍!)

不管是不是內推都需要去面試,都需要去過HR那一關,差別只在於面試的機會多與少了。

由於每一次機會都很寶貴,爲了保證各位成功率,今天與大家分享一下JAVA程序員面試技巧與知識點,讓你面試跟開了掛一樣,讓你拿offer的機率提升百分之八十。

來吧,看乾貨。

前言

不論是校招還是社招都避免不了各種面試、筆試,如何去準備這些東西就顯得格外重要。不論是筆試還是面試都是有章可循的,我這個“有章可循”說的意思只是說應對技術面試是可以提前準備。

運籌帷幄之後,決勝千里之外!不打毫無準備的仗,我覺得大家可以先從下面幾個方面來準備面試:

  1. 自我介紹。(你可千萬這樣介紹:“我叫某某,性別,來自哪裏,學校是哪個,自己愛幹什麼”,記住:多說點簡歷上沒有的,多說點自己哪裏比別人強!)
  2. 自己面試中可能涉及哪些知識點、哪些知識點是重點。
  3. 面試中哪些問題會被經常問到、面試中自己該如何回答。(強烈不推薦背題,第一:通過背這種方式你能記住多少?能記住多久?第二:背題的方式的學習很難堅持下去!)
  4. 自己的簡歷該如何寫。

“80%的offffer掌握在20%的人手中” 這句話也不是不無道理的。決定你面試能否成功的因素中實力固然佔有很大一部分比例,但是如果你的心態或者說運氣不好的話,依然無法拿到滿意的 offffer。運氣暫且不談,就拿心態來說,千萬不要因爲面試失敗而氣餒或者說懷疑自己的能力,面試失敗之後多總結一下失敗的原因,後面你就會發現自己會越來越強大。

另外,大家要明確的很重要的幾點是:

  1. 寫在簡歷上的東西一定要慎重,這可能是面試官大量提問的地方;
  2. 大部分應屆生找工作的硬傷是沒有工作經驗或實習經歷
  3. 將自己的項目經歷完美的展示出來非常重要

一 面試前的準備

1.1 如何準備一場面試

不論是校招還是社招都避免不了各種面試、筆試,如何去準備這些東西就顯得格外重要。不論是筆試還是面試都是有章可循的,我這個“有章可循”說的意思只是說應對技術面試是可以提前準備。 我其實特別不喜歡那種臨近考試就提前 背啊記啊各種題的行爲,非常反對!我覺得這種方法特別極端,而且在稍有一點經驗的面試官面前是根本沒有用的。 建議大家還是一步一個腳印踏踏實實地走。

1.1.1 如何獲取大廠面試機會?

在講如何獲取大廠面試機會之前,先來給大家科普/對比一下兩個校招非常常見的概念——春招和秋招。

  1. 招聘人數 :秋招多於春招 ;
  2. 招聘時間 : 秋招一般7月左右開始,大概一直持續到10月底。但是大廠(如BAT)都會早開始早結束,所以一 定要把握好時間。春招最佳時間爲3月,其次時間爲4月,進入5月基本就不會再有春招了(金三銀四)。
  3. 應聘難度 :秋招略大於春招;
  4. 招聘公司: 秋招數量多,而春招數量較少,一般爲秋招的補充。

綜上,一般來說,秋招的含金量明顯是高於春招的。

下面我就說一下我自己知道的一些方法,不過應該也涵蓋了大部分獲取面試機會的方法。

  1. 關注大廠官網,隨時投遞簡歷(走流程的網申);
  2. 2線下參加宣講會,直接投遞簡歷;
  3. 找到師兄師姐/認識的人,幫忙內推(能夠讓你避開網申簡歷篩選,筆試篩選,還是挺不錯的,不過也還是需要 你的簡歷夠棒);
  4. 博客發文被看中/Github優秀開源項目作者,大廠內部人員邀請你面試;
  5. 求職類網站投遞簡歷(不是太推薦,適合海投);

除了這些方法,我也遇到過這樣的經歷:有些大公司的一些部門可能暫時沒招夠人,然後如果你的親戚或者朋友剛好 在這個公司,而你正好又在尋求offffer,那麼面試機會基本上是有了,而且這種面試的難度好像一般還普遍比其他正規面試低很多。

1.1.2 面試必知

下面幾點概括起來就是:瞭解自己的能力、要應聘的公司、自己要應聘的崗位,提前做好自己我介紹以及項目介紹等 等方面的功課,確保你能在面試過程中簡短清晰的回答出來(可以用Star法則來組織自己的語言)。

1) 準備自己的自我介紹

從HR面、技術面到高管面/部門主管面,面試官一般會讓你先自我介紹一下,所以好好準備自己的自我介紹真的非常 重要。網上一般建議的是準備好兩份自我介紹:一份對hr說的,主要講能突出自己的經歷,會的編程技術一語帶過; 另一份對技術面試官說的,主要講自己會的技術細節,項目經驗,經歷哪些就一語帶過。

我這裏簡單分享一下我自己的自我介紹的一個簡單的模板吧:

面試官,您好!我叫某某。大學時間我主要利用課外時間學習某某。在校期間參與過一個某某系統的開發,另 外,自己學習過程中也寫過很多系統比如某某系統。在學習之餘,我比較喜歡通過博客整理分享自己所學知 識。我現在是某某社區的認證作者,寫過某某很不錯的文章。另外,我獲得過某某獎,我的Github上開源的某個 項目已經有多少Star了。

2) 關於着裝

穿西裝、打領帶、小皮鞋?NO!NO!NO!這是互聯網公司面試又不是去走紅毯,所以你只需要穿的簡單大方就 好,不需要太正式。

3) 隨身帶上自己的成績單和簡歷

有的公司在面試前都會讓你交一份成績單和簡歷當做面試中的參考。

4) 如果需要筆試就提前刷一些筆試題

平時空閒時間多的可以刷一下筆試題目(牛客網上有很多)。但是不要只刷面試題,不動手code,程序員不是爲了 考試而存在的。刷題可點擊此處獲取資料。

5) 花時間一些邏輯題

面試中發現有些公司都有邏輯題測試環節,並且都把邏輯筆試成績作爲很重要的一個參考。

6) 準備好自己的項目介紹

如果有項目的話,技術面試第一步,面試官一般都是讓你自己介紹一下你的項目。你可以從下面幾個方向來考慮:

  1. 對項目整體設計的一個感受(面試官可能會讓你畫系統的架構圖)
  2. 在這個項目中你負責了什麼、做了什麼、擔任了什麼角色
  3. 從這個項目中你學會了哪些東西,使用到了哪些技術,學會了哪些新技術的使用
  4. 另外項目描述中,最好可以體現自己的綜合素質,比如你是如何協調項目組成員協同開發的或者在遇到某一個 棘手的問題的時候你是如何解決的又或者說你在這個項目用了什麼技術實現了什麼功能比如:用redis做緩存提高 訪問速度和併發量、使用消息隊列削峯和降流等等。

7) 提前瞭解公司以及要應聘的崗位

面試之前一定要提前對要應聘的公司以及崗位有所瞭解,這一點對於喜歡海投的同學來說要格外注意。如果你去一個 公司面試連公司的主要業務或者主要產品都不瞭解的話,那麼面試官打心裏肯定會覺得你並沒有很重視他們公司,所 以他們爲什麼要重視你呢?你也要提前瞭解你所要應聘崗位對你的專業能力或者其他能力的要求,比如有的崗位就是 需要英語水平比較高,需要你通過六級或者託福雅思,假如你不滿足的話,那就沒必要再去投遞簡歷面試了。

1.1.3 提前準備技術面試

搞清楚自己面試中可能涉及哪些知識點、哪些知識點是重點。面試中哪些問題會被經常問到、自己該如何回答。(強 烈不推薦背題,第一:通過背這種方式你能記住多少?能記住多久?第二:背題的方式的學習很難堅持下去!)

1.1.4 面試之前做好定向複習

所謂定向複習就是專門針對你要面試的公司來複習。比如你在面試之前可以在網上找找有沒有你要面試的公司的面經。

舉個栗子:在我面試 ThoughtWorks 的前幾天我就在網上找了一些關於 ThoughtWorks 的技術面的一些文章。然後 知道了 ThoughtWorks 的技術面會讓我們在之前做的作業的基礎上增加一個或兩個功能,所以我提前一天就把我之 前做的程序重新重構了一下。然後在技術面的時候,簡單的改了幾行代碼之後寫個測試就完事了。如果沒有提前準 備,我覺得 20 分鐘我很大機率會完不成這項任務。

1.1.5 面試之後覆盤

​如果失敗,不要灰心;如果通過,切勿狂喜。面試和工作實際上是兩回事,可能很多面試未通過的人,工作能力比你 強的多,反之亦然。我個人覺得面試也像是一場全新的征程,失敗和勝利都是平常之事。所以,勸各位不要因爲面試 失敗而灰心、喪失鬥志。也不要因爲面試通過而沾沾自喜,等待你的將是更美好的未來,繼續加油!

1.6 七個大部分程序員在面試前很關心的問題

身邊的朋友或者公衆號的粉絲很多人都向我詢問過:“我是雙非/三本/專科學校的,我有機會進入大廠嗎?”、“非計算機專業的學生能學好嗎?”、“如何學習Java?”、“Java學習該學哪些東西?”、“我該如何準備Java面試?”......這些方面的問題。我會根據自己的一點經驗對大部分人關心的這些問題進行答疑解惑。現在又剛好趕上考研結束,這篇文章也算是給考研結束準備往Java後端方向發展的朋友們指明一條學習之路。道理懂了如果沒有實際行動,那這篇文章對你或許沒有任何意義。

Question1:我是雙非/三本/專科學校的,我有機會進入大廠嗎?

我自己也是非985非211學校的,結合自己的經歷以及一些朋友的經歷,我覺得讓我回答這個問題再好不過。

首先,我覺得學校歧視很正常,真的太正常了,如果要抱怨的話,你只能抱怨自己沒有進入名校。但是,千萬不要動不動說自己學校差,動不動拿自己學校當做自己進不了大廠的藉口,學歷只是篩選簡歷的很多標準中的一個而已,如果你夠優秀,簡歷夠豐富,你也一樣可以和名校同學一起同臺競爭。

企業HR肯定是更喜歡高學歷的人,畢竟985,211優秀人才比例肯定比普通學校高很多,HR團隊肯定會優先在這些學校裏選。這就好比相親,你是願意在很多優秀的人中選一個優秀的,還是願意在很多普通的人中選一個優秀的呢? 雙非本科甚至是二本、三本甚至是專科的同學也有很多進入大廠的,不過比率相比於名校的低很多而已。從大廠招聘的結果上看,高學歷人才的數量佔據大頭,哪些成功進入BAT、美團,京東,網易等大廠的雙非本科甚至是二本、三本甚至是專科的同學往往是因爲具備豐富的項目經歷或者在某個含金量比較高的競賽比如ACM中取得了不錯的成績。一部分學歷不突出但能力出衆的面試者能夠進入大廠並不是說明學歷不重要,而是學歷的軟肋能夠通過其他的優勢來彌補。 所以,如果你的學校不夠好而你自己又想去大廠的話,建議你可以從這幾點來做:①儘量在面試前最好有一個可以拿的出手的項目;②有實習條件的話,儘早出去實習,實習經歷也會是你的簡歷的一個亮點(有能力在大廠實習最佳!);③參加一些含金量比較高的比賽,拿不拿得到名次沒關係,重在鍛鍊。

Question2:非計算機專業的學生能學好Java後臺嗎?我能進大廠嗎?

當然可以!現在非科班的程序員很多,很大一部分原因是互聯網行業的工資比較高。我們學校外面的培訓班裏面90%都是非科班,我覺得他們很多人學的都還不錯。另外,我的一個朋友本科是機械專業,大一開始自學安卓,技術賊溜,在我看來他比大部分本科是計算機的同學學的還要好。參考Question1的回答,即使你是非科班程序員,如果你想進入大廠的話,你也可以通過自己的其他優勢來彌補。

我覺得我們不應該因爲自己的專業給自己劃界限或者貼標籤,說實話,很多科班的同學可能並不如你,你以爲科班的同學就會認真聽講嗎?還不是幾乎全靠自己課下自學!不過如果你是非科班的話,你想要學好,那麼註定就要捨棄自己本專業的一些學習時間,這是無可厚非的。

建議非科班的同學,首先要打好計算機基礎知識基礎:①計算機網絡、②操作系統、③數據機構與算法,我個人覺得這3個對你最重要。這些東西就像是內功,對你以後的長遠發展非常有用。當然,如果你想要進大廠的話,這些知識也是一定會被問到的。另外,“一定學好數據機構與算法!一定學好數據機構與算法!一定學好數據機構與算法!”,重要的東西說3遍。

Question3: 我沒有實習經歷的話找工作是不是特別艱難?

沒有實習經歷沒關係,只要你有拿得出手的項目或者大賽經歷的話,你依然有可能拿到大廠的 offffer 。筆主當時找工作的時候就沒有實習經歷以及大賽獲獎經歷,單純就是憑藉自己的項目經驗撐起了整個面試。

如果你既沒有實習經歷,又沒有拿得出手的項目或者大賽經歷的話,我覺得在簡歷關,除非你有其他特別的亮點,不然,你應該就會被刷。

Question4: 我該如何準備面試呢?面試的注意事項有哪些呢?

下面是我總結的一些準備面試的Tips以及面試必備的注意事項:

1. 準備一份自己的自我介紹,面試的時候根據面試對象適當進行修改(突出重點,突出自己的優勢在哪裏,切忌

流水賬);

2. 注意隨身帶上自己的成績單和簡歷複印件; (有的公司在面試前都會讓你交一份成績單和簡歷當做面試中的參

考。)

3. 如果需要筆試就提前刷一些筆試題,大部分在線筆試的類型是選擇題+編程題,有的還會有簡答題。(平時空閒

時間多的可以刷一下筆試題目(牛客網上有很多),但是不要只刷面試題,不動手code,程序員不是爲了考試

而存在的。)另外,注意抓重點,因爲題目太多了,但是有很多題目幾乎次次遇到,像這樣的題目一定要搞

定。4. 提前準備技術面試。 搞清楚自己面試中可能涉及哪些知識點、那些知識點是重點。面試中哪些問題會被經常問

到、自己改如何回答。(強烈不推薦背題,第一:通過背這種方式你能記住多少?能記住多久?第二:背題的方

式的學習很難堅持下去!)

5. 面試之前做好定向複習。 也就是專門針對你要面試的公司來複習。比如你在面試之前可以在網上找找有沒有你

要面試的公司的面經。

6. 準備好自己的項目介紹。 如果有項目的話,技術面試第一步,面試官一般都是讓你自己介紹一下你的項目。你

可以從下面幾個方向來考慮:①對項目整體設計的一個感受(面試官可能會讓你畫系統的架構圖;②在這個項

目中你負責了什麼、做了什麼、擔任了什麼角色;③ 從這個項目中你學會了那些東西,使用到了那些技術,學

會了那些新技術的使用;④項目描述中,最好可以體現自己的綜合素質,比如你是如何協調項目組成員協同開

發的或者在遇到某一個棘手的問題的時候你是如何解決的又或者說你在這個項目用了什麼技術實現了什麼功能

比如:用redis做緩存提高訪問速度和併發量、使用消息隊列削峯和降流等等。

7. 面試之後記得覆盤。 面試遭遇失敗是很正常的事情,所以善於總結自己的失敗原因纔是最重要的。如果失敗,

不要灰心;如果通過,切勿狂喜。

一些還算不錯的 Java面試/學習相關的倉庫,相信對大家準備面試一定有幫助:盤點一下Github上開源的Java面試/

學習相關的倉庫,看完弄懂薪資至少增加10k

Question5: 我該自學還是報培訓班呢?

我本人更加贊同自學(你要知道去了公司可沒人手把手教你了,而且幾乎所有的公司都對培訓班出生的有偏見。

爲什麼有偏見,你學個東西還要去培訓班,說明什麼,同等水平下,你的自學能力以及自律能力一定是比不上自學的

人的)。但是如果,你連每天在寢室堅持學上8個小時以上都堅持不了,或者總是容易半途而廢的話,我還是推薦你

去培訓班。觀望身邊同學去培訓班的,大多是非計算機專業或者是沒有自律能力以及自學能力非常差的人。

另外,如果自律能力不行,你也可以通過結伴學習、參加老師的項目等方式來督促自己學習。

總結:去不去培訓班主要還是看自己,如果自己能堅持自學就自學,堅持不下來就去培訓班。

Question6: 沒有項目經歷/博客/Github開源項目怎麼辦?

從現在開始做!

網上有很多非常不錯的項目視頻,你就跟着一步一步做,不光要做,還要改進,改善。另外,如果你的老師有相關 Java 後臺項目的話,你也可以主動申請參與進來。

如果有自己的博客,也算是簡歷上的一個亮點。建議可以在掘金、Segmentfault、CSDN等技術交流社區寫博客,當然,你也可以自己搭建一個博客(採用 Hexo+Githu Pages 搭建非常簡單)。寫一些什麼?學習筆記、實戰內容、讀書筆記等等都可以。

多用 Github,用好 Github,上傳自己不錯的項目,寫好 readme 文檔,在其他技術社區做好宣傳。相信你也會收穫一個不錯的開源項目!

Question7: 大廠到底青睞什麼樣的應屆生?

從阿里、騰訊等大廠招聘官網對於Java後端方向/後端方向的應屆實習生的要求,我們大概可以總結歸納出下面這 4 點能給簡歷增加很多分數:

  1. 參加過競賽(含金量超高的是ACM);
  2. 對數據結構與算法非常熟練;
  3. 參與過實際項目(比如學校網站);
  4. 參與過某個知名的開源項目或者自己的某個開源項目很不錯;

除了我上面說的這幾點,在面試Java工程師的時候,下面幾點也提升你的個人競爭力:

  • 熟悉Python、Shell、Perl等腳本語言;
  • 熟悉 Java 優化,JVM調優;
  • 熟悉 SOA 模式;
  • 熟悉自己所用框架的底層知識比如Spring;
  • 瞭解分佈式一些常見的理論;
  • 具備高併發開發經驗;大數據開發經驗等等。

 

由於內容太多了下面只給大家展示部分內容感興趣的朋友可以關注後私信小編“面試”獲取完整版本

內容簡介

Java

  • 2.1 Java基礎知識
  • 2.2 Java集合框架
  • 2.3 Jave多線程
  • 2.4 Java虛擬機
  • 2.5 設計模式

 

計算機網絡常見面試點總結

  • 3.1 TCP、UDP協議的區別
  • 3.2 在瀏覽器中輸入ur1地址->>顯示主頁的過程
  • 3.3 各種協議與HTTP協議之間的關係
  • 3.4 HTTP長連接、短連接
  • 3.5 TCP三次握手和四次揮手面試常客)

 

Linux

  • 4.1 簡單介紹一下Linux文件系統?
  • 4.2 一些常見的Linw命令瞭解嗎?

 

MySQL

  • 5.1 說說自己對於MySQL常見的兩種存儲引擎: MyISAM與InoDB的理解
  • 5.2 數據庫索引瞭解嗎?
  • 5.3 當MySQL單表記錄數過大時,數據庫的CRUD性能會明顯下降,一些常見的優化措施如下:
  • 5.4 事務隔離級別(圖文詳解)

 

Redis

  • 6.1 redis簡介
  • 6.2 爲什麼要用redis /爲什麼要用緩存
  • 6.3 爲什麼要用redis 而不用map/ guava做緩存?
  • 6.4 redis和memcached的區別
  • 6.5 redis常見數據結構以及使用場景分析
  • 6.6 redis設置過期時間
  • 6.7 redis內存淘汰機制( MySQL裏有200w數據,Redi s中只存20w的數據,如何保證Redis中的數據都是熱點數據? )
  • 6.8 redis持久化機制(怎麼保證redis掛掉之後再重啓數據可以進行恢復)
  • 6.9 redis 事務
  • 6.10 緩存雪崩和緩存穿透問題解決方案
  • 6.11 如何解決Redis的併發競爭Key問題
  • 6. 12 如何保證緩存與數據庫雙寫時的數據一致性?

 

關注小編後私信“面試”即可獲得這份《Java面試突擊版》PDF版文檔資料的免費領取方式。

Spring

  • 7.1 Spring Bean的作用域
  • 7.2 Spring事務中的隔離級別
  • 7.3 Spring事務中的事務傳播行爲
  • 7.4 AOP
  • 7.5 IOC

 

消息隊列

  • 8.1 什麼是消息隊列
  • 8.2 爲什麼要用消息隊列
  • 8.3 使用消息隊列帶來的一些問題
  • 8.4 JMS YS AMQP
  • 8.5 常見的消息隊列對比

 

Dubbo

  • 9.1 重要的概念
  • 9.2 Dubbo的架構
  • 9.3 Dubbo的負載均衡策略
  • 9.4 zookeeper宕機與dubbo直連的情況

 

數據結構

  • 10.1 Queue
  • 10.2 Set
  • 10.3 List
  • 10.4 Msp
  • 10.5 樹
  • 10.6 圖
  • 10.7 BFS及DFS

 

算法

常見的加密算法、排序算法都需要自己提前瞭解一下,排序算法最好自己能夠獨立手寫出來。

我覺得面試中最刺激、最有壓力或者說最有挑戰的一個環節就是手撕算法了。面試中大部分算法題目都是來自於

Leetcode、劍指offffer上面,建議大家可以每天擠出一點時間刷一下算法題。

 實際場景題

我覺得實際場景題就是對你的知識運用能力以及思維能力的考察。建議大家在平時養成多思考問題的習慣,這樣面試的時候碰到這樣的問題就不至於慌了。另外,如果自己實在不會就給面試官委婉的說一下,面試官可能會給你提醒一下。切忌不懂裝懂,亂答一氣。 面試官可能會問你類似這樣的問題:①假設你要做一個銀行app,有可能碰到多個人同時向一個賬戶打錢的情況,有可能碰到什麼問題,如何解決(鎖)②你是怎麼保證你的代碼質量和正確性的?③下單過程中是下訂單減庫存還是付款減庫存,分析一下兩者的優劣;④同時給10萬個人發工資,怎麼樣設計併發方案,能確保在1分鐘內全部發完。⑤如果讓你設計xxx系統的話,你會如何設計。

BATJ真實面試題

 

轉發+關注後私信小編“面試”即可獲得《Java面試突擊版》PDF版文檔資料的免費領取方式。

寫在最後

  • 1. 一定要謹慎對待寫在簡歷上的東西,一定要對簡歷上的東西非常熟悉。因爲一般情況下,面試官都是會根據你的簡歷來問的; 2. 能有一個上得了檯面的項目也非常重要,這很可能是面試官會大量發問的地方,所以在面試之前好好回顧一下自己所做的項目;
  • 2.和麪試官聊基礎知識比如設計模式的使用、多線程的使用等等,可以結合具體的項目場景或者是自己在平時是如何使用的;
  • 3.注意自己開源的Github項目,面試官可能會挖你的Github項目提問;
  • 4.建議提前瞭解一下自己想要面試的公司的價值觀,判斷一下自己究竟是否適合這個公司。

另外,我個人覺得面試也像是一場全新的征程, 失敗和勝利都是平常之事。所以,勸各位不要因爲面試失敗而灰心、喪失鬥志。也不要因爲面試通過而沾沾自喜,等待你的將是更美好的未來,繼續加油!

看完上面的內容有沒有豁然開朗的感覺呢,是不是就像擁有了超級武功祕籍,跟開了掛一樣,關注本鬥帝帶你年薪百萬,記得點關注哦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章