面試對于程序員來說是很重要的事情漂问,面試結(jié)果的好壞直接決定了能否進(jìn)入某個(gè)公司以及以什么級別和待遇進(jìn)入某個(gè)公司。這篇文章主要針對Android開發(fā)者的面試刻帚,以下是安卓大牛給面試者的幾個(gè)建議拜效。
什么是合適的候選者
在介紹如何面試之前抵怎,這里先從公司的角度來分析:”到底什么樣的候選者是公司所需要的技術(shù)人才?“就我在百度的一些面試官經(jīng)驗(yàn)來說玫坛,一個(gè)具有如下特征的Android程序員是我們所需要的:
1. 具有本科及以上學(xué)歷(名校更好)
2. 具有2年及以上的工作經(jīng)驗(yàn)(名企更好)
3. 技術(shù)扎實(shí)结笨,有技術(shù)追求和工作激情
4. 良好的溝通和協(xié)作
在上面的四條中,其中第3條是最為重要的湿镀,即技術(shù)炕吸,在百度技術(shù)是大家所推崇的,因此技術(shù)是決定能否通過面試的最重要最直接的原因肠骆。一般來說算途,越是大公司,其對技術(shù)的要求就越高蚀腿,盡管部分崗位并不需要那么好的技術(shù)嘴瓤,但是為了對候選者做出區(qū)分扫外,其面試過程仍然會面試一些稍微深入的話題,相信大家都有所體會廓脆。
除了技術(shù)以外筛谚,良好的溝通和協(xié)作能力也是比較重要的。也許很多人覺得這個(gè)比較抽象停忿,心里會想:”你怎么知道我有沒有良好的溝通和協(xié)作能力呢“驾讲?其實(shí)這個(gè)問題并不難,面試過程就是一次溝通過程席赂,如果不能和面試官很好地溝通吮铭,這就說明候選者的溝通有問題。如何很好地和面試官溝通呢颅停?給如下幾點(diǎn)建議:
–禮貌和尊重谓晌。
–聽懂面試官的問題并直接回答。
有些候選者聽不懂面試官的問題癞揉,還有些面試者總是不直接回答問題纸肉,或者也許是不會的原因,就開始轉(zhuǎn)彎抹角甚至轉(zhuǎn)移話題喊熟,我認(rèn)為這是很不好的柏肪,人要用于承擔(dān),即使這個(gè)問題不會芥牌,那也可以大聲地說出來”不好意思烦味,這個(gè)我不太會“,甚至還可以虛心地請教下面試官胳泉,面試不僅僅是一次找工作的過程拐叉,也是一次自我學(xué)習(xí)和提高的過程。大家要知道的是扇商,不是必須全部答對問題才能通過面試凤瘦,只要大部分問題能回答出來并且候選者的態(tài)度良好,那么這樣的候選者仍然能通過面試案铺,當(dāng)然態(tài)度不好的候選者蔬芥,即使技術(shù)很好也很大可能通不過面試。
–謙虛謹(jǐn)慎控汉、態(tài)度友好笔诵。
有些候選者在面試的時(shí)候不謹(jǐn)慎,給人一種隨意的感覺姑子,比如坐姿不端正乎婿,翹著二郎腿等等,換句話說就是別太隨意街佑,作為面試官公司都要求不能太隨意谢翎,何況候選者呢捍靠!太隨意的舉動會給對方一種不被尊重的感覺。關(guān)于謙虛森逮,這個(gè)就不必多說了榨婆,任何時(shí)候都要謙虛,面試過程中驕傲自大(俗稱”得瑟“)褒侧,是很容易被斃的良风。態(tài)度友好,就是要讓面試官感受到你的誠意闷供,這樣大家溝通起來才比較舒服和自在烟央。
下面對學(xué)歷和工作經(jīng)驗(yàn)做一些說明,學(xué)歷并不是一個(gè)硬性要求歪脏,即使候選者學(xué)校不怎么好也是有可能通過面試的吊档,這就要求候選者技術(shù)非常扎實(shí)。而工作經(jīng)驗(yàn)唾糯,之所以是2年以上,這是因?yàn)樯鐣衅傅膶ο笠话愣际怯幸欢üぷ鹘?jīng)驗(yàn)的鬼贱,而1年工作經(jīng)驗(yàn)略短了點(diǎn)移怯,拿百度來說,社招的最低級別一般為T4这难,差不多剛好就是2年經(jīng)驗(yàn)左右舟误。
這里做下總結(jié),理想的候選者應(yīng)該是這樣的:
1. 扎實(shí)的技術(shù)功底姻乓,有技術(shù)追求(必須)
2. 態(tài)度嵌溢、溝通和為人都很好(必須)
3. 2年左右工作經(jīng)驗(yàn)(基本必須)
4. 名校、名企蹋岩、高學(xué)歷(非必須赖草,加分項(xiàng))
基本來說,滿足1和2就能通過面試剪个,3和4都是次要條件秧骑,但是一般來說不滿足3就很難滿足1,不要說特例扣囊,木有參考意義乎折。
由此可見,技術(shù)是面試結(jié)果的決定因素侵歇。那么到底技術(shù)掌握到什么程度才能比較輕松地通過面試呢骂澄?說了那么多,好像和Android沒有一點(diǎn)關(guān)系惕虑,下面就開始以Android為例來分析下面試過程所需的技術(shù)坟冲。
Android面試過程所需要掌握的技術(shù)
一場面試都有一個(gè)流程磨镶,拿Android面試來說,面試內(nèi)容不可能全是Android問題樱衷,里面應(yīng)該會有編程基礎(chǔ)相關(guān)的問題棋嘲。我對Android面試中的問題做了下分類,如下所示:
一般來說矩桂,一個(gè)Android應(yīng)用開發(fā)崗位是不需要太強(qiáng)的數(shù)據(jù)結(jié)構(gòu)和算法的沸移,但是這并不意味著候選者可以完全不懂?dāng)?shù)據(jù)結(jié)構(gòu)和算法,所以數(shù)據(jù)結(jié)構(gòu)和算法大家還是要稍微了解下侄榴,由于它不是必須的雹锣,所以就算面試過程中回答的不好也沒關(guān)系,只要后面的Java癞蚕、Android相關(guān)的問題能夠完美回答就好蕊爵。有同學(xué)和我反饋,說面試掛在了數(shù)據(jù)結(jié)構(gòu)和算法桦山,這在社招中應(yīng)該是不多見的攒射,這多半是因?yàn)锳ndroid的問題也沒有很好地回答出來,這就是社招和校招的不同之處恒水,校招看基礎(chǔ)会放,社招看技術(shù)深度和業(yè)務(wù)。
關(guān)于設(shè)計(jì)模式和架構(gòu)钉凌,其實(shí)中高級面試對這個(gè)的要求并不是特別高咧最,熟悉下常見的設(shè)計(jì)模式基本就ok,比如單例模式御雕、工程模式矢沿、觀察者模式等。
接下來主要描述下面試過程中對Android技術(shù)的要求酸纲。我對Android的技術(shù)類別做了一下劃分捣鲸,如下所示:
對于大部分面試者來說,大家的目標(biāo)崗位應(yīng)該是中高級福青,中級崗位(百度T4)需要掌握的知識點(diǎn)是:基本知識點(diǎn)摄狱、深入知識點(diǎn);高級崗位(百度T5)需要掌握的知識點(diǎn)是:基本知識點(diǎn)无午、深入知識點(diǎn)媒役、基本知識點(diǎn)的細(xì)節(jié)和系統(tǒng)核心機(jī)制。
1.基本知識點(diǎn)
比如四大組件如何使用宪迟、如何創(chuàng)建Service酣衷、如何進(jìn)行布局等。這類知識是需要熟練掌握的次泽,并且也沒什么難度穿仪。
2.稍微深入的知識點(diǎn)
比如AIDL席爽、Binder、多進(jìn)程啊片、View的繪制流程只锻、事件分發(fā)、消息隊(duì)列等紫谷。這類知識對于高級開發(fā)者來說也是必須掌握的齐饮,然而相信很多候選者在面試之前并不能對這些問題了如指掌。這些問題基本都是面試過程中很常見的問題笤昨,也是高級崗位所必須掌握的問題祖驱,不搞定這些問題無法達(dá)到百度的高級工程師的標(biāo)準(zhǔn),因此也不可能通過面試瞒窒。
3.基本知識點(diǎn)的細(xì)節(jié)
比如Activity的啟動模式和標(biāo)記位捺僻、Service同時(shí)處于start和bind狀態(tài)時(shí)的停止問題、AsyncTask的同步異步問題以及使用時(shí)的限制等崇裁,這種問題還有很多匕坯。這類知識點(diǎn),大家在開發(fā)過程中可以并不會去注意拔稳,這會導(dǎo)致一個(gè)問題醒颖,那就是開發(fā)應(yīng)用沒問題,但是在面試時(shí)面試官只要稍微問下細(xì)節(jié)或者特殊情況壳炎,就hold不住了。 這類問題也是高級開發(fā)者所需要掌握的逼侦,有些面試官喜歡問一些看似刁鉆的問題匿辩,但是候選者如果回答不了也是不好的。
4.系統(tǒng)核心機(jī)制
比如主線程的消息循環(huán)榛丢、主線程如何和AMS如何跨進(jìn)程交互铲球、SystemServer進(jìn)程中的各種Service的工作方式、AsyncTask的工作原理等晰赞。這類知識對于高級開發(fā)者也是建議掌握的稼病,因?yàn)樗鼈兛梢宰岄_發(fā)者理解Android的運(yùn)行體系。 這類問題并不是所有的Android面試都會涉及到掖鱼,但是技術(shù)含量高的大公司有可能涉及此類問題然走。
5.瑣碎的知識點(diǎn)
此類知識點(diǎn)我把它們定義為一些重要但是沒有什么技術(shù)難度的問題,比如如何打開一個(gè)網(wǎng)頁戏挡、如何打電話芍瑞、如何發(fā)短信、如何定位褐墅、多點(diǎn)觸控等拆檬,這類問題往往不好記憶洪己,但是需要的時(shí)候去查一下就能立馬搞定。這類問題基本上不會出現(xiàn)在面試過程中竟贯。
大家結(jié)合自己對Android的學(xué)習(xí)過程以及面試經(jīng)驗(yàn)答捕,在面試中遇到的問題是不是都是包含在上面的5個(gè)分類之中呢?對于1和5相信所有人都沒有問題屑那,但是對比2拱镐、3、4中的內(nèi)容齐莲,大家是不是都能很好地Cover呢痢站?換句話說,如果2选酗、3阵难、4中的內(nèi)容大家都能很好地掌握,面試中的問題還能難倒我們嗎芒填?在前面的分析中提到呜叫,技術(shù)是覺得面試是否成功的關(guān)鍵因素,那么在面試前要做的就是把技術(shù)搞好殿衰,同時(shí)注意溝通和態(tài)度朱庆,這樣的話通過面試豈不是很簡單的事?
麥子學(xué)院:讓最前沿的IT技能觸手可得
少年 關(guān)注我們的微信公眾號 麥班長:maibanzhang
帶你輕松高薪就業(yè)