给Android程序员的一些面试建议,帮你突破瓶颈
開頭
這里是一些個(gè)人開發(fā)者接私活和自己做軟件加廣告的一些科普知識(shí)。可是做軟件,需要服務(wù)器,需要后臺(tái),對(duì)于一些小的開發(fā)者,想賺點(diǎn)廣告費(fèi)而又不想做后臺(tái)使用服務(wù)器的人來說,網(wǎng)上提供了一些免費(fèi)的接口,可以供我們使用,提供了許多數(shù)據(jù)。在這里我分享兩個(gè)不錯(cuò)的提供WEB服務(wù)的網(wǎng)站。
一.想要分享的內(nèi)容
開篇我也表達(dá)了我對(duì)“面經(jīng)”的看法,所以我就不羅列具體的題目了,而且每次面試的題目都大同小異,其他專欄已經(jīng)列舉的足夠多了,再列舉也沒有太多的意義,這里我想著重分享以下五點(diǎn):面試前的準(zhǔn)備,學(xué)習(xí)方法,面試風(fēng)格,面試后的感受,以及職業(yè)規(guī)劃。
二.面試前你應(yīng)該做的準(zhǔn)備
面試前一定要系統(tǒng)的復(fù)習(xí)各個(gè)模塊的知識(shí)點(diǎn),不要匆忙的出去面試,尤其是對(duì)于大公司來說,面試機(jī)會(huì)本來就不易,不要因?yàn)樽约簺]有復(fù)習(xí)準(zhǔn)備好,而白白的喪失了機(jī)會(huì),尤其是對(duì)于突然被裁,事前沒有充分準(zhǔn)備的同學(xué)來說,更應(yīng)該注意這一點(diǎn),我深知被裁的滋味,但是被裁后也要理性的對(duì)待這件事,不要因?yàn)樽约旱幕艔?#xff0c;無助而匆匆投簡(jiǎn)歷去面試
對(duì)于Android應(yīng)用開發(fā)而言,需要復(fù)習(xí)的并不是很多,無非是都熟知的那幾大類:Java 基礎(chǔ),JVM,Java 并發(fā),Android 源碼,Android 第三方框架,Android 性能優(yōu)化,數(shù)據(jù)結(jié)構(gòu)與算法,再加上一些網(wǎng)絡(luò)知識(shí)等等,這里我就不在重復(fù)贅述了。
另外我在補(bǔ)充兩個(gè)點(diǎn),我們?cè)趶?fù)習(xí)具體的題目或知識(shí)點(diǎn)時(shí),還可以著重去百度查找具體公司的面試題目,因?yàn)楹芏嗝嬖嚬俣紩?huì)習(xí)慣性的問同一問題或同類問題,這樣更有針對(duì)性。再者就是自己簡(jiǎn)歷上所描述的內(nèi)容一定要會(huì),包括具體的知識(shí)點(diǎn),也包括你的項(xiàng)目經(jīng)驗(yàn),都同等重要。
當(dāng)自己感覺復(fù)習(xí)的差不多了,先不要投遞和預(yù)約大公司或者自己向往的公司,先去幾家小公司,或者自己肯定不會(huì)去的公司面試,這樣即使沒有通過面試也不算是浪費(fèi)了機(jī)會(huì),還能順便幫助自己更好的查漏補(bǔ)缺,如果通過了還可以更加自己后面面試的信心。雖然這樣的行為“欺騙”了一些公司的hr同學(xué),但面對(duì)自己求職的利益來說,只能抱歉了。
三.學(xué)習(xí)方法:
學(xué)生時(shí)代的我們,常常聽到的一個(gè)詞就是“學(xué)習(xí)方法”,它看不見摸不著,卻常常體現(xiàn)在我們的考試成績(jī)上。等到畢業(yè),真正工作的時(shí)候,這個(gè)詞似乎離我們?cè)絹碓竭h(yuǎn),不變的是我們依然只是在不停的做計(jì)劃,這一年要讀幾本書,這一月要學(xué)會(huì)哪些知識(shí)點(diǎn),甚至以天來量化,但很少去思考為什么去學(xué)習(xí)這些,更重要的是如何去學(xué)習(xí)。
面試復(fù)習(xí)和我們平時(shí)學(xué)習(xí)也一樣,在學(xué)習(xí)態(tài)度端正的前提下,那么如何學(xué)習(xí)就會(huì)變的尤其重要,雖然在學(xué)生時(shí)代老生常談,但是自從工作后,很多人忘了它,都在急功近利的搪塞知識(shí),以為讀了幾遍《Android 開發(fā)藝術(shù)探索》就可以成功躋身高級(jí)工程師了,真正理解的依然在少數(shù),和讀了幾遍沒有必然關(guān)系。我才疏學(xué)淺,不過還是想表達(dá)和分享下我的學(xué)習(xí)觀。希望可以給不知道怎么學(xué)習(xí)的伙伴一點(diǎn)點(diǎn)啟發(fā)
系統(tǒng)
“系統(tǒng)”很好理解,也就是我們?cè)趶?fù)習(xí)知識(shí)點(diǎn)時(shí)一定要全面,只有全面了,我們的基礎(chǔ)才可以打的牢,這個(gè)基礎(chǔ)很重要,基礎(chǔ)有了才可以更好的進(jìn)行思考和總結(jié)。
比如我們經(jīng)常會(huì)使用以及研究一些 Android 第三方的框架,如 OKHttp ,我們要從三個(gè)方面去全面理解它:
1,利用 okhttp 實(shí)現(xiàn)基本的網(wǎng)絡(luò)訪問功能,包括基本的數(shù)據(jù)請(qǐng)求,表單提交,文件上傳,文件斷點(diǎn)下載,https的設(shè)置等等。
2,深入研究 okhttp 源碼,熟悉 okhttp 中的調(diào)用過程,攔截器原理,緩存原理以及其中涉及的設(shè)計(jì)模式,并可以自定義攔截器實(shí)現(xiàn)特殊的功能,如日志打印等等。
3,在研究 okhttp 緩存原理之前,得首先熟悉 http 緩存的相關(guān)字段以及在設(shè)置 https 時(shí),也要全面復(fù)習(xí) https 的相關(guān)原理。
通過以上思路的復(fù)習(xí),慢慢地你的知識(shí)體系就會(huì)建成,基礎(chǔ)也就日漸牢固。
思考
我認(rèn)為思考和下面的總結(jié)都是比較困難的,因?yàn)檫@和每個(gè)人的基礎(chǔ)和視野有很大的關(guān)系,基礎(chǔ)差、視野小的工程師一定和基礎(chǔ)牢固、見識(shí)廣范的人所思考的深度和方向不一樣,就拿我這種中級(jí)工程師來說,我面對(duì) okhttp 所能想到的方向有:它與 retrofit 是什么關(guān)系;okhttp 與其他網(wǎng)絡(luò)框架的比較;因?yàn)樯婕暗骄W(wǎng)絡(luò)相關(guān),還可能再延伸到網(wǎng)絡(luò)優(yōu)化方向等等。但是不管你所思考的方向是什么,只有有所思考就是進(jìn)步,而不是單純的停留在 okhttp 框架的本身。
總結(jié)
這里的總結(jié)是在上一步思考的基礎(chǔ)之上進(jìn)行的,并不單單是把自己所學(xué)習(xí)過的知識(shí)點(diǎn)全部羅列出來就可以了。因?yàn)槊總€(gè)知識(shí)點(diǎn)在學(xué)習(xí)的過程中看似是獨(dú)立的,實(shí)際上知識(shí)點(diǎn)之間大都是有關(guān)聯(lián)的,我們要學(xué)會(huì)去思考并總結(jié)各個(gè)有關(guān)聯(lián)的知識(shí)點(diǎn),然后盡自己所能深挖出更多的知識(shí)點(diǎn),使之串聯(lián),后面我會(huì)利用實(shí)際的面試題再來更加清楚的解釋這一點(diǎn)。
四.面試風(fēng)格:
這部分我想分享一下面試官都是如何去問問題的。所以就暫且起名總結(jié)為面試風(fēng)格的問題。
我想大家應(yīng)該也都知道,這里我大致分為五種:
全部按照簡(jiǎn)歷上所列舉的知識(shí)點(diǎn)問。在我這次面試經(jīng)歷中360的一面和二面的面試官都是這樣問的,因此我們一定要熟知我們簡(jiǎn)歷上所寫的內(nèi)容,包括新技術(shù)例如koltin,flutter,只要簡(jiǎn)歷上有寫,就必須得會(huì)
從簡(jiǎn)歷中挑選問題問,并不全問,當(dāng)然面試官也會(huì)根據(jù)自己的習(xí)慣提問簡(jiǎn)歷上沒有寫的內(nèi)容。這種情況是最多的。
在你介紹項(xiàng)目經(jīng)驗(yàn)的時(shí)候,從中選擇感興趣的問題或相關(guān)知識(shí)點(diǎn)去提問。
只關(guān)注你的項(xiàng)目本身,包括項(xiàng)目介紹,項(xiàng)目難點(diǎn)等等。在這次網(wǎng)易一面中就是這樣的,只詢問了我簡(jiǎn)歷上所列舉的項(xiàng)目重難點(diǎn),以及解決方案。
不提問任何具體知識(shí)點(diǎn)和項(xiàng)目經(jīng)驗(yàn),讓你回答一些開放性的問題,比如你是通過什么途徑學(xué)習(xí)的;你對(duì)跨平臺(tái)的技術(shù)如何看待等等。這種面試方式一般出現(xiàn)在技術(shù)面的最后一面。
最后我想要著重強(qiáng)調(diào)一下,項(xiàng)目經(jīng)驗(yàn)很重要,尤其是對(duì)于社招生來說,所以就要求我們?cè)谄綍r(shí)做項(xiàng)目的時(shí)候一定要逐漸的去積累項(xiàng)目的重難點(diǎn)是什么,以及如何解決的。當(dāng)然有可能在實(shí)際工作中我們負(fù)責(zé)的那一個(gè)模塊確實(shí)沒有很大的難點(diǎn)值得去說,這也是有可能的,這就需要我們?nèi)ト娴牧私庾约旱捻?xiàng)目,看看其他同事負(fù)責(zé)的模塊有沒有值得去學(xué)習(xí)和總結(jié)的,這不僅有利于我們技術(shù)上的提高,也有利于增加我們的項(xiàng)目經(jīng)驗(yàn)。
Android開發(fā)除了flutter還有什么是必須掌握的嗎?
相信大多數(shù)從事Android開發(fā)的朋友們?cè)絹碓桨l(fā)現(xiàn),找工作越來越難了,面試的要求越來越高了
除了基礎(chǔ)扎實(shí)的java知識(shí),數(shù)據(jù)結(jié)構(gòu)算法,設(shè)計(jì)模式還要求會(huì)底層源碼,NDK技術(shù),性能調(diào)優(yōu),還有會(huì)些小程序和跨平臺(tái),比如說flutter,以思維腦圖的方式展示在下圖;
點(diǎn)擊文檔前往獲取面試資料與視頻教程;【阿里P7級(jí)別Android架構(gòu)師技術(shù)腦圖+全套視頻】
c/DSkNLaERkbnFoS0ZF)**
[外鏈圖片轉(zhuǎn)存中…(img-7fOosQww-1621071255991)]
總結(jié)
以上是生活随笔為你收集整理的给Android程序员的一些面试建议,帮你突破瓶颈的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 经典Android开发教程!这些新技术你
- 下一篇: 英雄联盟EZ和德玛 怎么打 寒冰和琴女