我上月被裁現在找作業,準備面試的時候看了好多技術文章越看感覺自己掌握的東西越少,馬上要去面試了感覺心好虛,
事情經過
是的 我的主管也覺得自己是豬…(主管原話)
我去年招了 2 個安卓開發,其中一個同事面試上機布局還能布,結果第一周發現他大部分事給他表弟遠程桌面在給他搞,這種作業能力、作業態度、還有職業操守如何能在公司立足!
還有一個就是你, 本來我覺得你是可以培養下的,結果過年疫情期間 2 個月你在家根本沒什么都沒學,年后復工我一直在忙自己的事根本沒關注進度,只看到每天有 commit,但后來我發現你越來越不對了,
各種小問題, 比如位移,圖片不能自適應大小,視頻快取 KEY 都是一致的導致快取失敗, 各種崩潰,都是特別明顯的小問題,
不看不知道,一看嚇一跳,我翻閱你的作業QQ聊天記錄、網址,發現我一整天都在各類社群博客注水,
一氣之下,把我干掉了!
我想問下做了四年的 Android 開發應該要有怎樣的技能樹?

看到上述網友的遭遇,那面對這種情況,作為開發者,我們能做的是什么?最基本的,脫離舒適區,不停磨練自己的技術,
我記得我剛作業的時候,對面試總是很恐懼,一方面怕簡歷無法通過篩選,另一方面怕現場發揮得不好,浪費了自己和面試官的時間,我當初并不知道對比其他求職者,自己的優勢和劣勢在哪里,也不知道自己到底值多少錢, 面試的時候都覺得面試官很嚴肅,問的問題我也都答不上,肯定沒有機會入職,覺得自己爛透了,也不想浪費時間去面試多幾家了,
現在回過頭看,我覺得當初自己在欺騙自己,我真正擔心的是即使自己認真準備簡歷和面試也對結果毫無影響,更不敢去想如果找不到作業沒錢繳房租怎么辦,索性海投簡歷碰運氣,其實認真準備簡歷和面試是很有用的,因為毫無準備,隨便面試的求職者真的太多了, 作業了幾年,我作為面試官篩選過千份簡歷,面試過不下 100 名工程師,我慢慢發現,招聘真的是一件非常難的事,招的人要有計算機基礎知識,有專案經驗,愿意學習而且愿意來這家公司,所以只要你有一定的實力,現在的互聯網行業還是買方市場,認真準備總是有識訓的,我希望把這幾年作為面試者和面試官身份的的經驗給大家,希望大家可以學到從中一些面試的技巧,找到心儀的作業,
準備階段
1. 隨時都在準備
隨時準備并不是鼓勵頻繁地跳槽,而是要有隨時有跳出舒服圈的準備,也許求職者已經很滿意現在的作業,薪酬,覺得習慣而且安逸,不過如果公司突然倒閉,或者部門被裁減,還能找到這樣或者更好的作業嗎?我建議各位,每兩三個月可以去面試一兩家公司,因為你已經有不錯的作業了,所以可以帶著輕松的心態去面試,同時也可以增加面試的經驗,
2. 技識訓礎
- 基礎知識
基礎知識主要包括:編程語言基礎,演算法基礎,計算機網路,作業系統,資料庫,面試之前的復習階段非常重要,通常大家會通過閱讀各類的書籍來補充自己的基礎知識,但是計算機方面的書大多是大部頭而且艱深,一時間也看不完,所以我在GitHub這個GitHub中列出了面試常見的問題以及對應的決議供大家參考,希望大家帶著問題去看面試題,也可以從某些章節開始復習,這樣會更加有目標與效率,
1. 編程語言基礎
-
資料結構的實作細節以及比較:陣列,鏈表,哈希表是如何實作的,底層記憶體分配是怎樣的?插入與查找的時間復雜度是多少,分別有什么優缺點,
-
編程語言特性: Java 的字串池是怎么實作的,垃圾回收的流程以及原理,
-
關鍵字特性:包括 Java 中的 static,final,Python 中的 init 關鍵字的含義以及使用場景,面向物件的細節:類的封裝,函式與變數繼承,抽象類和介面有什么區別等,
-
多執行緒與多行程:執行緒如何同步,行程如何同步,wait() 函式使用場景以及常用的并發編程模式,
2. 演算法基礎
-
演算法題:鏈表操作,二分查找,動態規劃,DFS,BFS 等(可以使用 Leetcode 來進行學習),
-
演算法復雜度的分析:時間復雜度,空間復雜度,平均時間復雜度,
-
資料結構的實作:實作二叉查找樹,Trie 樹,
基礎的演算法題,大廠都會考,刷演算法題的時候,要把每道題都當成面試題一樣按步驟完成,完成一題之后總結經驗,這樣遇到變形題也迎刃而解,這里我推薦 Leetcode 以及 Hackerrank,這里說一點題外話,可能有的同學有疑問,覺得這些平常作業都用不到,為什么還要花那么多時間在上面,其實不是的,第一,平常作業都能用到,無論從二分查找到復雜一點的前綴樹,開發的程序中如果你知道這些演算法/資料結構,就能根據自己的業務來選擇最適合的演算法/資料結構,減少整個專案的復雜度, 第二,資料結構和演算法鍛煉的是思維,刷演算法題的時候,慢慢會學習到一些有趣的,巧妙的方法,它們能擴展你的編程時思考的范圍,同時也要求你考慮到各種不同的邊界情況,即使你不準備換作業,我也建議每天都刷一道演算法題,榷訓月累,一年下來你的演算法基礎一定能比同齡人高出不少,而且當你真正理解演算法題的知識之后,寫程式 debug 和花在 Stackoverflow 的時間就會大大減少,往往知道哪里可能有問題并且能大幅地增加作業效率,

以上資源均免費分享給大家,內容均放在了開源專案:【Github】,大家可以自行獲取,
3. 計算機網路
-
協議的基礎組成與用途:HTTP 協議中不同頭部,方法,狀態碼的含義,
-
協議的使用場景:DNS 協議,ARP 協議,SSH 命令的使用場景以及原理,
-
不同協議的區別:TCP 與 UDP 的區別,HTTP 與 HTTPS 的區別,
-
協議具體功能實作:TCP 三次握手原理,TCP 慢啟動以及滑動視窗的原理與實作方式,
4. 作業系統
-
作業系統基礎概念:行程,執行緒,虛擬記憶體,檔案權限,信號量等概念考察,
-
Shell 的基礎使用:ls, find, top, ps 等命令的應用與原理,
-
常見功能的實作:行程調度,用戶態與內核態的切換,各類系統呼叫的實作方式,epoll 的實作,
-
常用函式的實作:memcpy,strcpy,strstr 等常用庫函式的實作方式與優化,
3. 積累專案經驗
專案經驗
專案經驗這塊因人而異,把覺得做的有亮點的東西挑出來,從四個方面來準備:
- 功能模塊的實作
- 達到了什么效果
- 遇到了什么問題,是如何解決的
- 涉及到的相關知識點
專案經驗和知識點 其實是一個雙向的程序,要 試圖去找到它們之間的聯系:
- 談到專案經驗的時候,可以說:做完 xx 之后,我還去了解了一下 yy 背后的原理,xxx,這里體現的是 你是否有求知欲 ,
- 談到知識點的時候,可以說:yy 的原理是這樣的,在 xx 專案中我是如何應用它來解決問題的,這里體現的是 你是否具備把知識付諸實踐的能力,
-
開源專案 開源專案可以讓你和世界上頂級的工程師一起作業,學習軟體設計以及語言的高級使用方法,同時能讓你理解軟體是如何運行 / 設計的,
-
參與較底層/偏向演算法或研究的專案 如果求職者未來想從開發轉向研究的崗位,那么就可以閱讀一些相關學術論文,寫相關的文章分析與工具,
-
造輪子,實用工具 從學習的角度來說,造輪子可以說是最好的方法,不過要給自己一個期限,不能無止境地把時間花費在程式的細節與優化中,知道原理,能夠實作就足夠了,
-
寫論文,分享文章 如何宣傳你的開源專案或者業余專案?寫一篇優秀的文章介紹它,同理,要證明你有喜歡計算機,有研究的能力,最好的方法也是寫一些優秀的文章以及論文,
4. 模擬面試
如果你準備去面試一家非常喜歡的公司,那么面試之前,你應該先進行模擬面試,模擬面試的意思是讓另外一名工程師充當面試官,按照該公司的題庫以及流程對你進行面試,然后再把面試程序中的優點和缺點反饋給你,模擬面試既可以讓你的朋友當面試官來面試你,也可以去找幾家有類似崗位的公司,因為當你本來就沒有一定要進該公司的想法,那么心態自然就能放輕松,帶著輕松的心態去面試的話更能發揮好,給自己信心,同時也可以問問面試官自己哪里不足,可以加強的,經過總結后,鍛煉自己面試的技巧,包括技術的基礎,以及如何問問題,當你面試得多了,會發現問題其實都差不多,下次遇到也知道怎么回答了,你可以選擇 Resumejob或者以英文為溝通語言的 Pramp 來訓練,
5. 選擇公司
前幾家公司的選擇對你的職業規劃會有很大的影響,大公司還是小公司,和你個人的性格或者職業規劃有直接的關系:
大公司
優勢
-
入職薪酬較高,每年固定調薪,員工福利例如下午茶,文娛活動,年假都有保證,
-
通常都有大牛,而且工程師比較多,總能遇到一些志同道合的朋友,
-
跳槽到小公司比較容易,崗位也能得到提升,
劣勢
-
剛進去的時候接手的可能都是比較枯燥的小專案,
-
可能需要維護幾年前的沒有檔案沒有測驗的專案,(其實也能學習到很多)
-
比較容易安逸,缺乏學習的動力,
小公司
優勢
-
相對來說,條條框框沒那么多,偶爾遲到請假沒什么關系,
-
什么都能學到,從開發到運維到測驗,
-
專案可以加上自己的建議和想法,比較有成就感,
-
能直接向老板匯報,升職速度比較快,
-
萬一上市了呢?(中國每天有一萬家公司注冊,上市的嘛…)
劣勢
-
入職薪酬比較低,員工福利嘛,不能保證,
-
有大牛的可能比較少,除非你事先知道(所以面試問問題非常重要),
-
加班壓力通常比較大,而且公司不一定會根據你的加班時間就漲薪,
-
跳槽到大公司比較難,除非你有非常好的簡歷與能力,
在國內來說,除了一些很 geek 的小公司,一般的小公司并沒有那么自由,加班也可能很多,所有我覺得一開始選擇大公司往往是不錯的選擇,之后跳槽的選擇范圍也更多,
面試階段
一. 整體流程
騰訊的部門很多,崗位型別有別,職級差異較大,因此,每個面試者的面試流程肯定不盡相同,然而,很多流程基本通用,故值得一看,
面試流程如下:

一圖勝千言,要進騰訊并不那么容易,跟游戲升級一樣,只有通過前一關,才有機會進入下一關,
微信部門的面試,要求更高,基本是2輪面委面,還有可能是3輪,當然,微信部門的錢也更多,
有的朋友問:組長是啥崗位?總監和總經理又是啥崗位?我們來簡單介紹一下公開資訊中的騰訊管理層級(副級別不單獨列出):

看似層級不多,但要從下一層跨越到上一層,通常是五年十年之功,并不容易,可以算算,接近小馬哥要多少年?
有的朋友還會問:面委是什么?面委就是面試委員會,會對面試者的能力進行再次考核,以便進行定崗定級,
通常來說,面試9級或9級以上的崗位,才需要面委,這里的9級是什么意思呢?且看公開資訊中的騰訊技術通道職級體系(左舊右新):

一般來說,應屆畢業生級別最低,組內骨干至少是9級工程師,組長至少是10、11級工程師,總監至少是12、13級工程師,依此類推,
接下來,我們來具體聊聊面試流程中的每個環節,仍以郭靖的社招面試流程為例,崗位是后臺開發,
二. 簡歷篩選流程
第一步是要投遞簡歷,篩選簡歷的是hr和業務部門,如果hr覺得簡歷不錯,就會把簡歷給到業務部門,當然,業務部門也可以去人才庫中找匹配的簡歷,
總之,簡歷的最終評判會落在業務部門身上,如果簡歷不通過,就沒有下文了,如果簡歷通過,就有希望了,
三. 電話面流程
簡歷通過后,業務部門的組員或組長,會打電話給求職者,簡要了解基本情況,也可能初步問一下技術和崗位方面的問題,
極端情況下,如果電話中發現求職者技術確實太水,啥都不會,盡是扯淡,那么就會讓應聘人員等后續通知,然后就沒有然后了,
然而,通常情況下,既然簡歷通過篩選,那么還是值得給予面試機會,這個電話的主要目的,是了解基本情況,并約=到騰訊面試,
四. 組員面流程
組員面試,不是100%必須的環節,然而有時候組長太忙,就會讓組員先面試,探探路,
這個組員,一般是組內的骨干員工,職級通常是9級,很可能就是之前電話約面試的那個人,
五. 組長面流程
前面說了,組員面不是100%存在的環節,如果沒有組員面,那么組員面的內容會在組長面時體現,
組長拿著的筆試試卷,就筆試題目進行發問,問完之后,還會問了別的技術問題,這個程序大致30分鐘左右,
如果技術不行,就不會去浪費總監的時間了,然后,會告訴求職者回家等訊息,那么,這種情況基本就表明面試不通過,
如果水平不錯,組長就會讓求職者稍微等一下,去請總監來面試,通常來說,組長會提前跟總監打招呼,說今天有人的來面試,讓總監預留一些時間,
六. 總監面流程
總監對求職者繼續進行深度發問,聊了很多技術和專案問題,
無論是否通過總監面,當天的面試通常都會結束,不會進行總經理面,因為總經理時間很難約,
七. 總經理面流程
總經理面,是最重要的一輪面試,在很大程度上,決定了求職者能否拿到最終的offer,
總經理會問了很多有深度的問題,也會問了一些宏觀的問題,還要求在草稿紙上寫了兩個題目的程式,
八. 面委面流程
求職者按要求接入視頻,參加面試,面委面試官繼續對技術和專案進行深度發問,在系統方案設計方面的考查力度明顯加大,
面委面的目的,是對人才進行再次把關,順便進行職級定級,一般來說,面試9級以下的崗位,是不需要面委面的,
九. hr面流程
騰訊招人的成本是非常大的,前面那么多流程,只要求職者情商不要太差,基本沒有問題的,
hr面試,問的就是一些基本資訊和常規問題,說白了,hr面試,就是一個情商面試,關于hr面試的具體詳情,會在后面的攻略部分詳細闡述,
談錢不傷感情,hr自然是要跟求職者談錢的,基本的一番了解和溝通之后,求職者獲得了hr的口頭offer,也知道自己能拿多少錢了,hr補充說,后續會有電子offer發到郵箱,
十. 電子offer流程
求職者會如期收到郵件,是正式電子offer,內容包括錢和崗位,具體資訊,就不說了,接下來,hr讓求職者提供薪資證明和背景調查的基本資訊,
騰訊拿到這些這些資訊后,會委托第三方專門負責背景調查的公司,對求職者進行背景調查,
這里要強調一下,只有求職者愿意并同意加入騰訊,且同意開始接受背景調查,騰訊和背景調查公司才能發起對求職者進行調查,
十一. 背景調查流程
背景調查,是現在很多公司采取的策略,主要是為了保證人才質量,避免弄虛作假,降低企業招人風險,
背景調查,主要考察人品,那些還想在簡歷中寫虛假資訊的人,那些虛報當前工資的人,要注意啦,
不要有僥幸心理,背景調查公司,是干這個吃飯的,要調查求職者的背景資料,方法多得很,串通造假,難度太大,也不正直,自己想想,
總結階段
一輪面試過來,可能筋疲力盡了,回想下自己哪里可以做得更好,簡歷哪里可以修改的,統計學告訴我們不要選擇第一家面試的公司,多面試幾家,不要欺騙自己,認真去思考每家的優點和缺點,和你的好朋友聊聊,尋求他們的建議,如果沒有拿到 Offer 也沒關系,重復上面的步驟,繼續努力,
崗位內推、學習交流
我們大量需要前端崗位、Java 崗位、Android 和 iOS 的開發崗位,作業地點:深圳,由于社招最低要求是 6級工程師 起,所以需要至少 3 年以上作業經驗,點擊我
如果你覺得自己學習效率低,缺乏正確的指導,可以加入資源豐富,學習氛圍濃厚的技術圈一起學習交流吧!
如果你覺得這篇文章幫助到你,希望我們繼續分享求職經驗的話,請幫我們點贊吧,👍
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/257410.html
標籤:其他
