雖然已經臨近年底,可是仍是萌生要看新機會的想法,主要的緣由是以爲在目前的崗位上技術增加遇到的瓶頸,所以想去作一些更有挑戰的工做。由於仍然準備繼續在深圳工做,所以選定了三家公司,騰訊、字節跳動和 shopee,考慮的崗位方向仍然是後臺開發(其餘崗位也面不上呀,傷心)。雖然年末跳拿不到年終獎了,可是我以爲和本身我的整個職業生涯的發展比起來算不了什麼,最好的時機永遠是當下。html
敲定了方向和目標後就開始系統準備,主要分爲如下幾個方面來準備。mysql
事先已經看過別人的社招面經知道頭條每輪技術面都有算法題,而這一塊平時練習的比較少,校招時刷的題也忘記了不少。所以系統複習的時候算法題仍是花了比較多時間的。先是快速刷完了劍指 offer,這個校招時已經刷過兩邊了,所以如今刷起來會相對快一些。而後就是啃 LeetCode 的題了,LeetCode 的題比較多,想在短短几周內刷完基本是不可能的,所以我主要按照類型去刷,每一個類型刷幾道就會比較有感受了。好比鏈表的題優先考慮遞歸和雙指針來解決,棧和隊列的題優先考慮用兩個棧或隊列來解決,樹的題基本都是遞歸等。不過數組和字符串的題通常比較靈活,這種題只能儘可能多刷了。平時要上班刷題也不方便,我採用的方法就是看題,用手機打開 LeetCode 的網站,看完題目後直接想解決方案,腦子裏大概捋一下代碼怎麼寫,能想到的就過,想不出的就看看別人的解法,用這個方法刷起來就很快。用這種方法你可能會擔憂面試時題寫不完整,其實不用太擔憂,由於面試的時候面試官看你寫的核心思路是正確的,邊界處理是對的基本就過了,面試時間比較有限。linux
基礎這一塊主要以快速複習爲主,主要是語言(我主要用C++,因此複習C++)、操做系統和網絡編程。校招這一塊會問題的比較多,社招這一塊問的比較少,可是若是這一塊打不上來就比較尷尬了。語言就不說了,這一塊你們應該都知道會考些什麼,校招的時候畢竟都瘋狂準備過。操做系統就看內存管理、進程管理和文件系統,通常虛擬內存問的多。網絡編程這塊就包括 TCP/IP 協議,HTTP協議,網絡安全三個方面。TCP/IP主要就是三次握手,四次揮手,TIME_WAIT 的做用等這些常考的題了。HTTP 協議考察 HTTP 協議的返回碼、HTTP 的方法等。須要特別指出的是 HTTPS 加密的詳細過程要很是透徹,否則容易產生一種感受好像都清楚了,可是一問就有點說不清楚。最後就是網絡安全,主要考察也是 WEB 安全,包括XSS,CSRF,SQL注入等。c++
這裏的後端技術主要指工做中要用到的一些基礎組件,一些常見的後端架構設計。主要準備了MySQL、Redis、消息隊列、zookeeper、分佈式系統架構設計和docker。MySQL 主要看了極客時間的 《MySQL 45講》,關於事務、索引、鎖以及 binlog 和 redolog 都講的很是好,也是面試最愛考的,除此以外對數據庫的讀寫分離、分庫分表也要掌握。沒有任何利益相關,決不是打廣告。Redis 主要看了《Redis 的設計與實現》,而後本身再總結了一下 Redis 的使用場景,以及 Redis 實現分佈式鎖基本 Redis 就沒有問題了。消息隊列的開源軟件比較多,我主要選擇 Kafka 來學習,主要看官網文檔,極客時間的《Kafka 核心技術與實戰》,和一些技術文章等。不過極客時間的《Kafka 核心技術與實戰》,我以爲講的比較通常,不是很建議。分佈式系統的就準備CAP理論、BASE理論、限流、熔斷、一致性選舉算法、主從架構、集羣架構、異地多活、負載均衡、分層架構、微服務等。面試
沒有參與開源項目的經驗,工做中作的項目也很通常,項目這塊我實在沒什麼太多拿的出手的,不過仍是要挖掘一下,畢竟這一塊是逃不掉。我說幾個我思考的點吧:redis
二面沒什麼好說的,和麪試聊人生去了,我覺得是要涼的節奏,可是卻拿到了offer。算法
HR 面sql
騰訊面試提早1天和提早一個小時都會發短信提示。去的騰訊濱海大廈面試,大樓的現代化程度很高,不過須要提醒一下的是,騰訊的濱海大廈分爲南塔和北塔。我去的時候就上錯樓了,須要下到4樓從新換成電梯。docker
筆試數據庫
面試
騰訊二面面完我就知道涼了。動態規劃非要寫出遞推公式,由於我一直都是用動態規劃表的思路來解題,因此這個地方沒有答好。後面又問貝葉斯和分詞算法,一點都不會(個人心裏:我是來面後臺的,又不是面算法的)。最後一道算法題只能想出 O(N) 複雜度的,面試官必定要小於 O(N) 的,答不上來。這道題是 leetcode hard 級別的難度,因此沒有刷。不事後面去看可能也沒有那麼難,只是這種經過數學公式的特色來解題每每容易被忽略了。總之,騰訊的一面算是中規中矩,二面確實讓我有點手足無措。以前看網上的說法是騰訊算法題考的比較少,可能仍是要分部門吧,我此次面試的是騰訊視頻,二面基本上全是考算法。還有大部分面經都說,算法題不多考 leetcode hard 級別,這個我也要表示懷疑了,由於騰訊和後面的頭條都考了 hard 級別的。因此刷題時不能徹底跳過 hard 級別的題。那有什麼題不會考呢?我認爲是描述起來很複雜的題面試時不會考,由於面試時間比較緊,若是光時把題看懂都要解釋半天的,這種是不太會考的,好比那個 LeetCode 上買股票的題。
HR 面
頭條4輪面試都是視頻面的,視頻面試體驗其實仍是挺好的,坐在家裏面試我會更加放鬆一些,這樣腦子也靈活一些。人一緊張腦子就轉不動了。頭條的3輪技術面都問了zset的實現,ZSET的實現能夠好好看看源碼怎麼實現,這樣說的時候有更多東西能夠說,不是說一個跳躍表就完事了。還有一點就是遇到不會的邏輯題或者算法題不要放棄,問問面試官可不能夠提示一下。若是能在面試官的慢慢提示下能完成這道題,也是會被承認的。
BLOG地址:www.liangsonghua.me
關注微信公衆號:松花皮蛋的黑板報,獲取更多精彩!
公衆號介紹:分享在京東工做的技術感悟,還有JAVA技術和業內最佳實踐,大部分都是務實的、能看懂的、可復現的
原文出處:https://www.cnblogs.com/liangsonghua/p/www_liangsonghua_me_38.html