我是如何拿到微信 offer 的?
嗨,大家好,我是小專欄的開發者寂小樺 ,之前在Android技術指南讀者群里,紹文大佬跟我們分享了微信社招的一些“傳說”,激發了大家對微信社招的強烈好奇心,今天給大家推送一個瀟澗的付費文章,《我是如何拿到微信 offer 的?》。
以下為全文:
不好意思哈各位,請原諒我用了這么一個有點“標題黨”的題目來吸引你閱讀。
《Android面試指南》 這個小專欄已經對Android開發面試的方方面面進行了“指南”,剩下能說的就是面經了,我這篇也是份面經,斷斷續續寫了一段時間,和上次那篇稿子不同的是這次我側重介紹下我所經歷的微信面試和我的面試準備以及面試心得。
首先自我介紹下,我網名叫瀟澗,一個在國內 Android 開發圈里“時隱時現”的開發者,獨立開發的應用主要有詩鯨客戶端和詩鯨小程序。我是2016年畢業于北京某985高校,目前是騰訊微信Android客戶端開發組的一名工程師,曾就職于魅族Flyme研發中心和騰訊SNG事業群,曾在阿里巴巴無線事業部手淘團隊實習。也許你已經看出來啦,我是通過內部轉崗進入的微信,這可能是目前進入微信團隊相對輕松的方式了吧。
下面我圍繞“我是如何拿到微信 offer 的”這個問題挑些重點慢慢說道,大家權當休息時間閑讀,如果剛好你要面試微信的話,我希望下面的內容能對你有所幫助。
1.簡單說下騰訊的內部轉崗制度
在騰訊,內部轉崗稱為“活水”,每個滿足活水條件的人都可以根據個人意愿申請應聘公司內部其他部門的崗位。其實我當時申請活水的時候并不完全滿足條件(工作時間未滿一年),但是HR小姐姐人太好讓我先投下簡歷面試先,這才有了后面的面試機會,整個面試流程走下來之后我就滿足活水條件了。聽邵文大佬說微信社招要經過7-8輪面試,過五關斬六將,過程相當漫長且艱難。相比而言,內部轉崗的面試則會比外部社招面試輕松不少,從我經歷的WXG新員工培訓來看,10個新人中通過社招進來的可能只有1個,大部分都是從其他BG過來的同學,而且面試輪數最多的同學竟然經歷了9輪面試,請允悲。
2.大概說下我的整個面試流程
我的整個面試流程大概面了有5輪,前面3輪基本上都是純技術面,后面2輪的話可能是側重綜合能力的考察吧。微信有個專門的面試委員會,簡稱“面委會”,主要負責對應聘者的面試過程進行把關。微信面試輪數比較多主要是中間會有來自好幾個面委會成員的面試,他們都是微信團隊的重量級人物,他們的面試風格可能差別不小,可能是想從各個角度對應聘者進行考察吧。
3.微信面試給我印象比較深的點
微信的技術面給我印象比較深的點是“問題由淺入深并不算簡單”,例如面試官問我“用過數據庫嗎?”,我答“用過”,接著面試官問“你能說下索引的原理嗎?”,其實當時電話那頭的我還真的沒去深入研究過,所以我當時弱弱地猜測了下回答“數據庫的索引是通過某個平衡二叉樹來實現高效查找性能的”,從面試官的反應來看他對這個答案并不滿意,因為我并沒有說到點上,也沒能深入展開分析。后面有些技術面試問題比較類似了,這類問題如果你比較熟悉的話那就暗自竊喜吧,如果不熟悉的話那就陷入尷尬了。所以,其實微信技術面試的問題是由淺入深,面試官問的東西也還是我們平時能看到也可能用到的東西,但是可能并沒有抽時間去深究過或者沒有經歷真實項目實踐過,這方面的不足自然而然會在面試的過程中暴露出來。
微信的綜合面給我印象比較深的點是“重點考察的內容基本上不變”,就是針對你簡歷上寫的、你曾經做過的、你最值得說道的一個項目或者是一個需求或者是一次優化不斷追問,作為應聘者你一定要充分做好這方面的準備。我建議你首先要在你的簡歷中有意突出這個點,讓面試官注意到然后想要來問你。接下來你要針對這個點去準備材料,可以從“為什么要做這個?”、“你是如何做這個的?”、“期間你遇到了什么問題?你又是如何解決的?”、“你做完這個帶來了什么實際的效果?”、“你做完之后呢?有繼續優化和改進嗎?”等等幾個方面去準備。可能面試時間長,面試官不止問你一個點,那么你可能就需要對多個點都進行準備了。一開始我并沒有意識到要做好這方面的準備,等我面試了1-2輪之后,經面試官的提醒我才發現能夠清晰完整地描述自己做過的某項工作在面試過程中極其重要,后來我回去好好準備了一番,后面幾輪面試我的表達就變得越來越清晰明確,面試過程也開始漸漸從平靜走向高潮。
4.關于如何準備微信面試的建議
前面已經談過了如何準備微信的綜合面,主要是針對自己曾經做過的某項工作進行充分整理,確保能非常清晰地說這項工作的前因后果,對實現過程中的技術選型、難點問題、解決方案、優化效果、深入改進等等了然于胸。個人建議將這些準備材料寫成總結,原因有三:一是寫下來的過程可以幫助你理清思路,整理措辭,免得面試時表達不清;二是寫的過程中你可能會自我提問,這些問題可能會成為面試官的問題,仔細想好怎么回答;三是不定期寫總結是個好習慣,如果有總結的話有的面試官可能會要求你把你的總結發給他看。我當時在我原有部門工作了快一年時間,主要的技術突破性工作是React Native模塊的完善和改進,這塊的主要內容已經寫在我的個人技術專欄中 《Android 和 iOS 端升級 RN 的經驗分享》 ,感興趣可以閱讀了解下。
剩下的就是如何準備微信的技術面了,畢竟只有通過了技術面才有可能走到后面的綜合面。但是技術面你也看到啦,問題從Android基礎開發到Android高級開發的內容都有,技術點那么多,我們該怎么辦呢?這里的話我建議看書、開源項目和面試總結。
Android開發書的話我只推薦任玉剛前輩的《Android開發藝術探索》,如果看過請再看幾遍。更深的Android開發書我也看過,看不下去,晦澀難懂加之一時半會用不著,時間一久又忘了;更淺的Android開發書我也看過,也看不下去,干貨不多,浪費了時間。所以書的話我只推薦《Android開發藝術探索》,這是Android開發書籍中寫得極好的,適合各個水平等級的工程師閱讀,深入淺出,切合實戰。我以前讀的時候寫了十幾篇讀書筆記,每當我有面試的時候我都會抽空把那些讀書筆記再看一遍,感興趣的可以看下 《Android開發藝術探索讀書筆記》 。
這里特別提到了開源項目,建議如果要面試微信的話一定要熟悉下微信的開源項目,如果有時間可以看看源碼,我知道不一定能夠徹底看懂搞明白,但是至少要了解其大致的實現原理。比如著名的Tinker、Mars,或者是AndResGuard,我是自己在工作中用過其中的AndResGuard,所以讀了它的源碼,這個在面試過程中面試官也有問到過我,讓我說下它的實現原理。
至于面試總結,網上有很多,你可以找些比較熱門的面試總結來看,比如咱們的 Android面試指南 這個小專欄。這里要提醒大家的是,看的時候建議不要全信,如果發現有問題的話那么就查下資料確認下,因為網上的面試總結其中不乏過時或者錯誤的內容。其實面試總結我也弄過,從我校招那年開始整理的,到后來從魅族跳槽到騰訊,再到后來內部轉崗,我都是看自己的面試總結,感興趣的可以看下 Android開發面試總結 。
讀到這里你可能發現了,我看的東西都是自己總結的東西,這有什么好處呢?那就是內容更適合自己,我越是不懂的地方總結里面它可能就會出現得更多,看多了之后基本上我也就慢慢消化了那些知識難點,所以 看自己的總結是不僅不需要花很多時間,而且更有針對性更高效 ,強烈建議大家也多多寫自己的總結。
5.關于如何準備算法面試
前面都沒有提到算法,難道微信面試不面算法么?不存在的,算法面試肯定是要有的。因為我是異地面試,所以我的面試流程是先和面試官約好算法面試開始時間,面試官發算法題給我,我在一個小時內作答并將代碼發給面試官。我當時做的兩道算法題難度應該都是LeetCode上的中等難度題,答題過程還算順利,提前20分鐘左右寫完。在算法面試之前我有準備算法,利用周末的時間刷了大概幾十道LeetCode算法題,我校招那會LeetCode還不到200道,那時候刷的差不多,現在要想在面試前刷完就不太容易了。
這里我和大家分享下我準備算法面試的過程,之前我在Android開發面試指南的小專欄里面已經寫過 《Android面試指南-算法面試心得》 ,其實按照那篇文章去準備算法面試應該是沒問題的,但是那篇文章畢竟是講枯燥無味的算法,我猜真正靜下心來看完的人并不會很多。我自己準備算法的過程就是這樣的,算法基礎是通過看自己以前總結的 《Python數據結構和算法系列》 ,因為是自己寫的,加上已經反復看過好幾遍了,所以很快就看完了。
看完之后開始刷題,這次和往常不同,往常我都是在LeetCode的各種類型題目下找熱門的題去做,但是這次我是先花錢買了網上的《玩轉算法面試-從真題到思維全面提升算法思維》這門課程,一邊看一邊刷,可以說這錢花得值,有些時候知識付費確實還是有必要的。這門課程講師對算法面試中的各種問題分門別類,做成一個個專題各個擊破,這個課程比較適合我這種不是搞算法出身,只是熟悉基本數據結構和常用算法,但是在算法上一直沒啥突破的程序員,或許這門課程會讓你有所突破。
6.聊一聊在微信工作的體驗
我來微信總部的日子還不算久,但是這段日子我見到的人和事確實讓我眼前一新。工作環境在TIT創意園,園區內綠樹環繞,空氣很好。這里上下班不用擠電梯,因為都是幾層樓而已。一日三餐是免費的,食堂的食物每天換著來。重要的是這里的技術氛圍確實好,開發流程也很規范,很多人技術上都很厲害,很聰明,人很nice,對我這個菜鳥的問題有問必答。這讓我感覺自己回到了研究生那會,在眾多學霸之間做個小學渣,好好學習,天天向上。
OK,以上就是我這次想要跟大家分享的微信面經,如果你有意向的話可以聯系我內推,坐標廣州微信總部,一起來做個偉大的產品取悅自己吧!