前言
現在已經進入招聘季節,本篇文章旨在分享知名互聯網企業面試官面試方法和心得,希望通過本文的閱讀能給程序員帶來不一樣的面試體驗和感受,放松面試心態,積極備戰!
面試題
PS:由于文章篇幅問題,只以圖片形式展示本次面過程我把他整理成了一份2124頁的PDF(包含本次面試及解析,按系統知識分類)
一面
二面
三面
答案整理
經驗總結
-
有的面試官不讓你做自我介紹,上來直接問。不管有沒有,都要和面試官溝通好,做一個好的自我介紹,讓他了解自己的真實水平。不然他以為你精通客戶端,上到問設計架構,下到問源碼或者很細的基礎知識。
-
問到感覺超越自己知識水平的題還是不要亂說,并且要及時阻止面試官繼續往那個方向問,比如京東二面后面那些很細的我幾乎都不會但還是任其擺布了。最好要學會引導面試。
-
有些問題雖然真的不會,但還是可能有發揮空間的。可以先主動承認自己不是很了解這個東西,再說“根據我對另一方面的了解,如果是要我去設計這個東西/解決這個問題可能會怎么做”,“這個我不是很熟悉,我可以跟你講講另一個類似的東西”。我覺得這樣回答對錯也關系不大了,而且他會覺得你善于思考。
-
最好不要所有的問題回答得太像背面經,一個問題不要回答得太淺,對知識也要理解地透徹一點。不然他察覺到后,會想辦法來拆你臺的,或者問你大量的問題。
-
基礎的還是要掌握好的,我面掛其實主要還是開發基礎不好。比如手寫快排、非遞歸遍歷二叉樹。我當時是真沒寫出來,怨不得誰。
三、為什么會遇到中年危機?
實際上,以我在谷歌的工作經歷以及對其他公司的了解,大部分程序員都處于30歲上下的階段,他們是公司的主力軍。因為30歲恰恰是一名程序員的黃金年齡——在3-5年的工作磨練之下,不僅技術會更加熟練,職場規劃和發展也會更加清晰。
北美的各大科技公司對于員工的職業發展,大都有一個基礎的規劃的要求。以谷歌為例,程序員如果要從Level 3 到 Level 4, 一般需要1-2年,Level 4 到 Level 5,一般允許2-3年。按照多數人的軌跡,24、5歲走出校園進入社會,一步步學習,成長到30歲剛好進入一個比較成熟的階段,達到Senior水平。
心里有了更為明確的目標,并且也更加有能力去實現自己的目標。所以說,30歲正應該是程序員們充滿干勁、大展拳腳的好時候。
那么,為什么有些人還是會產生“三十之惑”呢?在我看來,很多抱怨和焦慮都來源于個人現有能力的不匹配,你現在具備的技能不足以支撐你晉升到更高層次。
程序員的30歲問題,**是能力問題,也是視野問題與心態問題。**從Senior繼續向上,想要實現級別的跨越,往往需要付出更多的努力。如果你不具備持續學習的能力、不能保持技能更新,那么在不進則退的職場中,原地踏步的你,自然只能被趕超、甚至被淘汰。
在很多情況下,所謂的年齡困惑更像是一種借口,年齡不應該是你不成功的理由。如果你真的有核心競爭力,年齡還會成為你的問題嗎?
當然像我們現在核心的東西,幾乎接觸不到,框架也搭建好咯,每天就是重復的工作,像后端可能就是crud,這樣技術能提高(這句話對小編自己說的)。
為了保證,多年后的,自己還有核心競爭力,我總結了幾點:
1.了解最新的新技術
2.深入底層源碼學習
技術更新換代是很快,但是,每一個技術,都是借鑒某個技術的思想,或者在某個技術上衍生出來的,例如OC是方便,但是,這些技術給我們帶來便利的同時,如果不對他底層有所了解,遇到問題,你也會很被動,應該知其然而知其所以然。
3.保持一顆謙虛的心,須知人外有人
可以去參加一些技術大會,也可以進一些技術群,小編,在寫博客過程中,就認識了不少技術大佬,
4.形成適合自己的學習方法
技術是學不完的,我們在學習的過程中,應該形成一套自己的學習方法。小編的學習方法,就是看某個技術點的視頻,針對某個技術點,再具體去看一些博客,看看大家都是如何理解的,以便自己更好的理解融會貫通。過一段時間,再回把這部分知識點,總結起來,通過寫博客的方式,分享出來。因為,不時會有一些大佬給你評論,提出自己的一些觀點,這樣形成一個技術的交流,對技術會有提升。
文末
初級工程師拿到需求會直接開始做,然后做著做著發現有問題了,要么技術實現不了,要么邏輯有問題。
而高級工程師拿到需求會考慮很多,技術的可行性?對現有業務有沒有幫助?對現有技術架構的影響?擴展性如何?等等…之后才會再進行設計編碼階段。
而現在隨著跨平臺開發,混合式開發,前端開發之類的熱門,Android開發者需要學習和掌握的技術也在不斷的增加。
通過和一些行業里的朋友交流討論,以及參考現在大廠面試的要求。我們花了差不多一個月時間整理出了這份Android高級工程師需要掌握的所有知識體系。你可以看下掌握了多少。
混合式開發,微信小程序。都是得學會并且熟練的
這些是Android相關技術的內核,還有Java進階
高級進階必備的一些技術。像移動開發架構項目實戰等
Android前沿技術;包括了組件化,熱升級和熱修復,以及各種架構跟框架的詳細技術體系
以上即是我們整理的Android高級工程師需要掌握的技術體系了。可能很多朋友覺得很多技術自己都會了,只是一些新的技術不清楚而已。應該沒什么太大的問題。
而這恰恰是問題所在!為什么別人高級工程師能年限突破30萬,而你只有十幾萬呢?
就因為你只需補充你自己認為需要的,但并不知道企業需要的。這個就特別容易造成差距。因為你的技術體系并不系統,是零碎的,散亂的。那么你憑什么突破30萬年薪呢?
我這些話比較直接,可能會戳到一些人的玻璃心,但是我知道肯定會對一些人起到點醒的效果的。而但凡只要有人因為我的這份高級系統大綱以及這些話找到了方向,并且付出行動去提升自我,為了成功變得更加努力。那么我做的這些就都有了意義。
喜歡的話請幫忙轉發點贊一下能讓更多有需要的人看到吧。謝謝!
以上系統大綱里包含的所有技術資料,我這里都有的。可以免費分享給有需要的朋友!
得更加努力。那么我做的這些就都有了意義。
喜歡的話請幫忙轉發點贊一下能讓更多有需要的人看到吧。謝謝!
以上系統大綱里包含的所有技術資料,我這里都有的。可以免費分享給有需要的朋友!
資料領取方式:點擊我的GitHub