面試官:現(xiàn)在做Android開發(fā)有前途嗎?(android開發(fā)有前景嗎)
文|洪生鵬 編輯|靜子
程序員面試,除了面試技術(shù)外,有的公司經(jīng)常會問應(yīng)聘者和技術(shù)無關(guān)的問題,考驗(yàn)求職者的綜合能力,并以此作為是否錄用的依據(jù),很多時(shí)候這類問題往往沒有標(biāo)準(zhǔn)答案,就看求應(yīng)聘者臨場的反應(yīng)能力如何。
張工是一名Android開發(fā)人員,近日到某知名互聯(lián)網(wǎng)公司面試,面談到最后時(shí),面試官問了張工這樣一個(gè)問題:
你覺得現(xiàn)在做Android還有前途嗎?
張工被問得有點(diǎn)措手不及。
現(xiàn)在都在說互聯(lián)網(wǎng)寒冬,尤其是移動端開發(fā)市場趨于飽和狀態(tài),我之前找工作時(shí),也陸陸續(xù)續(xù)找了一個(gè)月,應(yīng)該是我技術(shù)水平不過關(guān)。
現(xiàn)在做Android還有前途嗎?有人說Android開發(fā)前景越來越差了 ,我覺得是片面的,Android開發(fā)前景其實(shí)還不錯(cuò)。
現(xiàn)在各大公司其實(shí)都很缺Android中高級開發(fā)工程師,有的公司對Android開發(fā)崗位還在不斷的招人。
對初級Android開發(fā)人員來說,自律和堅(jiān)持,是一種持續(xù)與別人拉出人生差距的能力。初級開發(fā)者更應(yīng)該想想怎么掌握好知識點(diǎn),而不是輕易就轉(zhuǎn)行,要是沒有專研精神,不管換到哪個(gè)方向,譬如現(xiàn)在流行的大數(shù)據(jù)開發(fā),都會卡在瓶頸期。
對于Android開發(fā)者,他們有的計(jì)算機(jī)相關(guān)專業(yè)畢業(yè),有的是參加過IT培訓(xùn)一段時(shí)間,然后找到了一份實(shí)習(xí)工作或初級Android工程師的職位,心懷憧憬,希望在公司里好好表現(xiàn)自己。于是,在工作中一邊工作一邊學(xué)習(xí),下班后還不忘繼續(xù)給自己充電。
這是很難得可貴的。
作為一名Android 開發(fā)人員,如何在面試中脫穎而出,個(gè)人認(rèn)為需要兩項(xiàng)技能:
- 扎實(shí)的技術(shù)基礎(chǔ),有技術(shù)追求和工作激情 ;
- 良好的溝通能力和協(xié)作技能。
簡單來說,就是專業(yè)能力和溝通能力。其中專業(yè)能力始終是面試成敗的決定因素,那么技術(shù)掌握到什么程度才能相對輕松地通過面試呢?
面試的時(shí)候,更注重基礎(chǔ)知識。一般來說,一場Android面試內(nèi)容不太可能全是Android開發(fā)的問題,應(yīng)該也會涉及到和編程基礎(chǔ)相關(guān)的問題。比如java基礎(chǔ)、數(shù)據(jù)結(jié)構(gòu)、算法和常見的設(shè)計(jì)模式要熟悉,亦或是設(shè)計(jì)模式,單例模式、工廠模式、觀察者模式等。至于數(shù)據(jù)結(jié)構(gòu)在工作中不常用到,但還是有必要了解下,能夠熟練掌握更好。
有從事過java開發(fā)的朋友應(yīng)該知道java有個(gè)垃圾回收機(jī)制。
面試時(shí)要是面試官問“java回收機(jī)制對什么東西進(jìn)行回收”,要是我們只是簡單地回答對沒有用的對象進(jìn)行回收,按道理來說,這并沒有錯(cuò),只是答案可能并不是面試官問這個(gè)問題的初衷。要是我們對此能更進(jìn)一步分析那就更好了,比如這樣回答,GC操作的對象分為:通過可達(dá)性分析法無法搜索到的對象和可以搜索到的對象。對于搜索不到的方法進(jìn)行標(biāo)記。從root搜索不到,而且經(jīng)過第一次標(biāo)記、清理后,仍然沒有復(fù)活的對象。
對于用可達(dá)性分析法搜索不到的對象,GC并不一定會回收該對象。要完全回收一個(gè)對象,至少需要經(jīng)過兩次標(biāo)記的過程。回答問題時(shí)把問題具體化,對類似這樣的對象進(jìn)行回收,相信能給面試官留下好的印象。
那么我們平時(shí)如何積累面試中需要的技術(shù),我覺得閱讀源碼是一個(gè)不錯(cuò)的首要選擇,其實(shí)很多面試問題我們都可以從閱讀源代碼中找到相關(guān)答案,其次平時(shí)要主動學(xué)習(xí)項(xiàng)目中沒有用到的技術(shù),很多時(shí)候,由于項(xiàng)目進(jìn)度的原因,我們不可能通過公司的項(xiàng)目來掌握Android知識中其他重要技術(shù)知識點(diǎn),尤其是一些規(guī)模不大的項(xiàng)目來說,這個(gè)時(shí)候更需要我們主動去學(xué)習(xí)其他知識點(diǎn)。
比如View的繪制流程、事件分發(fā)、消息隊(duì)列、Binder機(jī)制、AIDL原理等。類似這類知識點(diǎn),需要我們在平時(shí)工作中不斷去探索實(shí)踐,不斷運(yùn)用,才能在工作中更好地定位問題,解決問題。
你覺得現(xiàn)在做Android開發(fā)有前途嗎?