七年Java開發的一路辛酸史:分享面試京東、阿里、美團後的心得

前言

我覺得有一個能夠找一份大廠的 offer的想法,這是很正常的,這並不是我們的飯後談資而是每個技術人的追求。像阿里、騰訊、美團、字節跳動、京東等等的技術氛圍與技術規範度還是要明顯優於一些創業型公司 / 小公司,如果說能夠在這樣的公司鍛鍊幾年,相信對自己能力的提升還是非常大的。不論是校招還是社招都避免不了各種面試、筆試,如何去準備這些東西就顯得格外重要。不論是筆試還是面試都是有章可循的。

因為大廠面試一般都有專業團隊負責,某個知識點你到底是掌握了還是單純背下來,面試官一問就可以看出來(PS:真正到面試特別是你覺得準備面試的時間不夠的時候,你可以多挑一些面試常問的問題來看,注意理解,一定不要死記硬背)。一定不要過分寄希望於各種面經,試著去提高自己的綜合能力。

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

從大廠實際招聘要求來看到底青睞什麼樣的人?

首先要明確的一點是:985/211 的學歷的確會為你加分很多。

另外,再強調的一點是不要天天把自己的學校是雙非學校這個接口當做你無法進入大廠的原因。只要你的能力足夠,大廠的大門就會為你打開。也有著很多雙非學校甚至是三本的同學就拿到像阿里、騰訊這樣的大公司的 offer。

從阿里、騰訊等大廠招聘官網對於 Java 後端方向/後端方向的要求,我們大概可以總結看出大廠對招聘者的能力要求。

下面以阿里巴巴為例子,看看大廠的實際要求

七年Java開發的一路辛酸史:分享面試京東、阿里、美團後的心得

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

熟悉開源框架的底層,閱讀源碼;

大型數據庫系統經驗;

熟悉分佈式,緩存,消息中間件;

良好的表達和溝通能力, 善於學習, 關注前沿。

“ 一定要有一門自己的特長,不管是技術還好還是其他能力 ” 。我覺得這句話真的非常有道理,大家可以仔細思考一下。在這裡再強調一點:公司不需要你什麼都會,但是在某一方面你一定要有過於常人的優點。換言之就是我們不需要去掌握每一門技術(你也沒精力去掌握這麼多技術),而是需要去深入研究某一門技術,對於其他技術我們可以簡單瞭解一下。

我覺得比起你對每一門技術都是淺嘗輒止,深入吃透某一門技術對你的個人競爭力提升才更有幫助。

如何獲取大廠面試機會?

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

招聘人數:秋招多於春招 ;

招聘時間: 秋招一般 7 月左右開始,大概一直持續到 10 月底。但是大廠(如 BAT)都會早開始早結束,所以一定要把握好時間。春招最佳時間為 3 月,次佳時間為 4 月,進入 5 月基本就不會再有春招了(金三銀四)。

應聘難度:秋招略大於春招;

招聘公司:秋招數量多,而春招數量較少,一般為秋招的補充。

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

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

關注大廠官網,隨時投遞簡歷(走流程的網申);

找到師兄師姐或者認識的前公司的技術牛人

,幫忙內推(能夠讓你避開網申簡歷篩選,筆試篩選,還是挺不錯的,不過也還是需要你的簡歷夠棒);

求職類網站投遞簡歷(不是太推薦)。

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

想要取得一份自己滿意的 offer,前提是自己要有過硬的實力作為資本,下面就如何提高個人硬實力給大家提幾點建議!

如何提高個人硬實力及大廠 Java 後端面試主要問些什麼??

我在這裡所說的個人硬實力更多的指的是個人的專業能力,比如構建高質量網站的能力或者是對專業知識的掌握程度。

我覺得不論是對於新手還是老手,想要提高個人硬實力最重要的就是不斷深入學習並且將理論實踐,最好可以將理論在具體項目中實踐一下。

想要提高個人硬實力,那麼學習一門新技術的方法一定是至關重要了。下面分享一下《 Java 工程師修煉之道》一書對於學習一門新技術的一些要點(在這以圖片的方式整理了出來,更加方便閱讀):

七年Java開發的一路辛酸史:分享面試京東、阿里、美團後的心得

一定要有自己的技術優勢,可能你懂得不是最多的,但是別人不會的你卻會,那麼你就是厲害的!然而如何準備大廠面試?我覺得最關鍵的一點之一就是搞清楚大廠面試主要在問些什麼。下面我將分解每一個知識點,給大家簡單說一下大廠面試主要會問些什麼?

首先你要明確的是面試官所問的內容一定和你簡歷所寫的東西是緊密聯繫的,一般你沒有記錄簡歷上的技能,面試管很少會去提問。

大廠面試大體上包括下面幾方面知識類型:

Java 基礎、多線程、IO 與 NIO、虛擬機、設計模式

面試官在多線程這一部分很可能會問你有沒有在項目中實際使用多線程的經歷。所以,如果你在你的項目中有實際使用 Java 多線程的經歷 的話,會為你加分不少哦!

七年Java開發的一路辛酸史:分享面試京東、阿里、美團後的心得

設計模式比較常見的就是讓你手寫一個單例模式(注意單例模式的幾種不同的實現方法)或者讓你說一下某個常見的設計模式在你的項目中是如何使用的,另外面試官還有可能問你 “ 抽象工廠 ” 和 “ 工廠方法模式的區別 ” 、“ 工廠模式 ” 的思想這樣的問題 ” 。

建議把代理模式觀察者模式(抽象)工廠模式好好看一下,這三個設計模式很有用。

七年Java開發的一路辛酸史:分享面試京東、阿里、美團後的心得

數據結構與算法(要有手寫算法的能力)

數據結構比較常問的就是:二叉樹、紅黑樹(很可能讓你手繪一個紅黑樹出來哦!)、二叉查找樹(BST)、平衡二叉樹(Self-balancing binary search tree)、B - 樹,B + 樹與 B * 樹的優缺點比較、 LSM 樹這些知識點。數據結構很重要,而且學起來也相對要難一些。建議學習數據結構一定要循序漸進的來,一步一個腳印的走好。一定要搞懂原理,最好自己能用代碼實現一遍。

計算機網絡(TCP 三次握手和四次揮手)

七年Java開發的一路辛酸史:分享面試京東、阿里、美團後的心得

數據通信(RESTful、RPC、消息隊列)

如果你的簡歷上寫了你會某個RPC框架(比如:阿里的開源的dubbo)或者消息隊列(比如:RabbitMQ、Kafka)的使用的話,面試官一般會以你寫在簡歷上的技術提問,回答的時候最好能結合在項目中的實際使用。

七年Java開發的一路辛酸史:分享面試京東、阿里、美團後的心得

性能優化及操作系統(常見優化方式,Linux 的基本命令以及使用)

七年Java開發的一路辛酸史:分享面試京東、阿里、美團後的心得

主流框架(Spring 底層原理與源碼問的很多)

Spring一般是不可避免的,如果你的簡歷上註明了你會 Spring Boot 或者 Spring Cloud 的話,那麼面試官也可能會同時問你這兩個技術,比如他可能會問你 springboot 和 spring 的區別。 所以,一定要謹慎對待寫在簡歷上的東西,一定要對簡歷上的東西非常熟悉。

另外,AOP 實現原理、動態代理和靜態代理、Spring IOC 的初始化過程、IOC 原理、自己怎麼實現一個 IOC 容器?這些東西都是經常會被問到的。

七年Java開發的一路辛酸史:分享面試京東、阿里、美團後的心得

數據存儲(最常見的是 MySQL、Redis)

七年Java開發的一路辛酸史:分享面試京東、阿里、美團後的心得

分佈式(分佈式鎖,事務等)

七年Java開發的一路辛酸史:分享面試京東、阿里、美團後的心得

多線程併發

從架構設計,到應用層調優,再深入瞭解底層原理,紮實的Java基本功才能讓自己變為掃地神僧:內存模型,併發模式,線程模型,鎖細節等等.....

七年Java開發的一路辛酸史:分享面試京東、阿里、美團後的心得

除了這些東西還有什麼其他問題:

實際場景題

實際場景題就是對你的知識運用能力以及思維能力的考察。建議在平時養成多思考問題的習慣,這樣面試的時候碰到這樣的問題就不至於慌了。另外,如果自己實在不會就給面試官委婉的說一下,面試官可能會給你提醒一下。切忌不懂裝懂,亂答一氣。

面試官可能會問你類似這樣的問題:

假設你要做一個銀行 app,有可能碰到多個人同時向一個賬戶打錢的情況,有可能碰到什麼問題,如何解決(鎖)?

你是怎麼保證你的代碼質量和正確性的?

下單過程中是下訂單減庫存還是付款減庫存,分析一下兩者的優劣。

同時給 10 萬個人發工資,怎麼樣設計併發方案,能確保在 1 分鐘內全部發完。

如果讓你設計 xxx 系統的話,你會如何設計。

生活

一般到最後的 HR 面的時候,面試官基本就是和你聊聊天。他可能會問你類似如下的問題:

父母是做什麼的,具體一點

自己平時是如何學習的

平時的興趣愛好是什麼

性格/其他

主要是看你個人的性格以及價值觀是否適合他們公司,比如他會問你類似下面的問題:

遇到壓力大的情況自己是如何處理的

遇到很難解決的困難怎麼辦

遇到不是很喜歡同項目組的某個成員的情況怎麼辦

如何看待加班

你覺得自己有什麼缺點/優點

總結強調

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

最後

針對於上面所提到的知識導圖我總結出了一些架構視頻資料和互聯網公司java程序員面試涉及到的絕大部分面試題及答案做成了文檔和架構視頻資料還有完整高清的java進階架構學習思維導圖免費分享給大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分佈式、高併發等架構技術資料),希望能幫助到您面試前的複習且找到一個好的工作,也節省大家在網上搜索資料的時間來學習。

資料領取方式:轉發此文關注小編私信回覆【架構資料】即可

重要的事情說三遍:轉發+轉發+轉發關注我私信回覆 架構資料

七年Java開發的一路辛酸史:分享面試京東、阿里、美團後的心得

七年Java開發的一路辛酸史:分享面試京東、阿里、美團後的心得

七年Java開發的一路辛酸史:分享面試京東、阿里、美團後的心得



分享到:


相關文章: