最近在忙著換工作,每天查缺補(bǔ)漏寺董,每天頂著8月的驕陽去面試,每天面試還要遭受各種虐刻剥,這種心情有時(shí)候讓人不禁懷疑人生遮咖。究竟自己還能不能行?為何和別人那么大差距造虏,是自己真的不夠努力還是怎么回事御吞。不知道求過職的人是不是有過跟我一樣的心情,我現(xiàn)在只想記錄一下這段經(jīng)歷漓藕,不為別的魄藕。
8月1號(hào)開始第一次面試,在這之前準(zhǔn)備了大概有一個(gè)月時(shí)間撵术,主要是讀了一遍《安卓開發(fā)藝術(shù)探索》背率,讀了80%《android源碼設(shè)計(jì)模式解析與實(shí)戰(zhàn)》,讀了大概1/4的《Thinking in Java》嫩与,另外一個(gè)月前讀完了《Effective Java》寝姿。說老實(shí)話,讀技術(shù)書對技術(shù)的掌握幫助非常有限划滋,因?yàn)槲椰F(xiàn)在已經(jīng)幾乎忘掉《Effective Java》這本書講了哪些內(nèi)容饵筑,《安卓開發(fā)藝術(shù)探索》里面View原理和launchMode我都忘了差不多了,(⊙﹏⊙)b处坪。以后不能再這么看書了根资,一定要結(jié)合實(shí)踐去看書架专,最好形成文字記錄下來。讀書最好是帶著問題去讀玄帕,沒有目的亂讀效果也是非常不好部脚。就比如,你在看Handler Looper Thread MessageQueue的時(shí)候裤纹,感覺書上說得明明白白委刘,似乎自己搞清楚了,但是面試官問你這些問題鹰椒,恐怕你回答不好锡移。那么如果面試回來,你回頭再去看這部分內(nèi)容漆际,可能就能更深理解了淆珊。
第一場面試是面C廠的高級安卓開發(fā)(好像自不量力了),前臺(tái)填完表領(lǐng)了一套試題奸汇,第一道四種啟動(dòng)模式的區(qū)別施符,嗯,也是趁S迹考的一道題操刀,但是像singleInstance和singleTop他們的具體使用場景烁挟,我答不上來婴洼,盡管我多次看過這部分內(nèi)容,然而還是記不住撼嗓〖聿桑看來做過跟沒做過的差別還是蠻大的。間接經(jīng)驗(yàn)遠(yuǎn)沒有直接經(jīng)驗(yàn)牢固啊且警。第一道題第二問是Activity如何恢復(fù)數(shù)據(jù)粉捻,擦,我印象中知道onCreate方法里面有個(gè)savedInstanceState斑芜,但是我還想起來有個(gè)onSaveInstance方法什么的肩刃。我就答了,2種恢復(fù)界面數(shù)據(jù)的方式杏头。后來回去查了資料才知道盈包,那是針對2種不同的場景的,(⊙﹏⊙)b醇王。第二道是問ListView的緩存機(jī)制的呢燥,都是很普通的題目,但是我其實(shí)并不知道它緩存是怎么實(shí)現(xiàn)的寓娩,面試官和我聊的時(shí)候叛氨,我說不上來呼渣,蛋疼了,水平深淺一問便知寞埠。第二題第二問是RecyclerView怎么實(shí)現(xiàn)分組屁置,怎么添加header和footer,我用RecyclerView也并不是很多畸裳,就最近用了一下缰犁,并不知道header和footer是怎么加的,其實(shí)現(xiàn)在想一想也是可以答一下的怖糊,根據(jù)type類型就可以實(shí)現(xiàn)帅容。第三道是問怎么自定義控件,事件處理機(jī)制伍伤,怎么解決滑動(dòng)沖突并徘。這問題在《安卓開發(fā)藝術(shù)探索》里,作者將得非常清楚的扰魂,但是由于實(shí)踐比較少麦乞,我特么都沒法自洽地回答這個(gè)問題了,汗劝评,太渣了姐直。第四道是讓寫一個(gè)單例模式,這個(gè)在《android源碼設(shè)計(jì)模式》這本書的第一章里講得非常全面了蒋畜,我都背會(huì)了声畏,不難(這特么是高級開發(fā)題目?)姻成。第五個(gè)是寫一個(gè)方法求N的階乘插龄,不難,感覺答得還行科展。
答完題均牢,就被叫去和面試官聊,哎才睹,現(xiàn)在面試我的人年齡甚至比我小了徘跪,悲哀。自我介紹琅攘,我基本上把簡歷里面的東西簡單摘要一下垮庐,真心不知道咋介紹。估計(jì)面試官看我的項(xiàng)目介紹沒啥亮點(diǎn)乎澄,就直接和我聊知識(shí)性的東西了突硝,String/StringBuffer/StringBuilder三者的區(qū)別,前不久我剛看了下源碼置济,記得注釋里面就說StringBuffer被StringBuilder替換了解恰,我就這么答了锋八,但是顯然沒法讓面試官滿意,他想聽到的是線程安全方面的回答护盈,我對這個(gè)有印象挟纱,但是沒說出來。然后又問了Handler這個(gè)問題腐宋,問我子線程中的Handler能不能處理消息紊服。然后,面試官問了一個(gè)讓我吃驚的問題胸竞,數(shù)組怎么刪除其中元素欺嗤,他是把List當(dāng)成數(shù)組了,擦卫枝。最后一個(gè)問題是ListView和ViewPager怎么解決滑動(dòng)沖突煎饼,我沒有回答好。最后被面試官判為“基礎(chǔ)不牢”校赤。哎吆玖,沒想到第一次面試就出師未捷。不過马篮,也沒多難過沾乘,感覺那家公司做的東西還不如我現(xiàn)在這家公司做的。
面試回去之后趕緊把相關(guān)的知識(shí)點(diǎn)擼了一遍浑测,第二天約了L廠下午的面試翅阵。中午我趁同事休息的時(shí)候我溜出去面試了,第一次來L廠尽爆,感覺環(huán)境也沒有我現(xiàn)在這家高大上怎顾,里面亂糟糟的读慎,印象不是很好漱贱。面試官直接搬了個(gè)小板凳和我直接聊,主要是針對簡歷上的信息來問問題夭委,我的回答似乎激不起面試官的興趣幅狮,到后面問了批量打渠道包的問題,我一下子栽倒在這上面了株灸,估計(jì)這里面有玄機(jī)崇摄。對于一個(gè)工作3年的面試者來說,打渠道包都不清楚慌烧,很可能這人的簡歷有水分逐抑,擦。半個(gè)小時(shí)很快就完事了屹蚊,自我感覺很一般厕氨,應(yīng)該是沒什么戲了进每。(到寫這篇文章時(shí)我還沒弄明白打渠道包是怎么回事)
今天早上約了L廠的另一個(gè)事業(yè)部,辦公地點(diǎn)在另一個(gè)地方命斧,到了之后感覺更加失望田晚,又黑又亂。面試我的哥們国葬,感覺水平也挺一般的贤徒,問的問題他似乎也理解不是很深,都是泛泛地問一些概念性的很淺的問題汇四。我介紹了我們項(xiàng)目中用的牛逼的框架和比較新的開源庫接奈,這哥們似乎也了解不是很多,然后問了所謂的算法的問題通孽,我硬著頭皮寫了一段二分查找的算法鲫趁。然后,就問期望薪資了利虫,簡歷流轉(zhuǎn)到HR挨厚,HR又找另一個(gè)技術(shù)和我進(jìn)一步聊,有些地方我自己打臉了糠惫,簡歷中有些點(diǎn)沒有Holde住疫剃,MVVM和RxJava的東西我特么回答不上來,估計(jì)會(huì)減分了硼讽。
昨天找閱文的人幫我內(nèi)推了簡歷巢价,今天接到閱文北京技術(shù)負(fù)責(zé)人的電話,2點(diǎn)半的時(shí)候電話聊了一下固阁,問的問題都讓我非常尷尬壤躲,幾乎沒有能答的。Bitmap怎么計(jì)算占用內(nèi)存备燃?我對bitmap了解挺淺的碉克,我答不上來,不過后來我想起來一個(gè)叫Matrics的東西并齐,但是也僅僅是知道這么回事漏麦,以前我記得了解過怎么計(jì)算,然而電話面試時(shí)我都沒想起來况褪。然后又問bitmap有幾種類型撕贞,我又懵了,估計(jì)他是希望我回答ARGB_8888什么的测垛,我雖然知道這玩意捏膨,但是我當(dāng)時(shí)一點(diǎn)都想不起來。然后又問gradle打渠道包食侮,我又懵逼号涯。然后又針對簡歷問IM具體怎么實(shí)現(xiàn)的熬北,IM SDK是另一個(gè)團(tuán)隊(duì)開發(fā)的,我還沒來得及看他們的代碼诚隙,然后又問HTTP協(xié)議相關(guān)的問題讶隐,長連接怎么建立的,懵久又。最后巫延,又問MVVM和熱修復(fù)的原理,熱修復(fù)我很久以前只看過幾篇博客地消,沒實(shí)踐過炉峰,還是懵逼。給跪了脉执!
感覺疼阔,好被動(dòng)啊,現(xiàn)在離我預(yù)想的情況差別好大半夷,真不知道該怎么辦了婆廊。項(xiàng)目經(jīng)驗(yàn)實(shí)在是太單薄了,盡管書沒少看巫橄,但是沒太大卵用淘邻。
補(bǔ)充:
每天早上6點(diǎn)起來做功課已經(jīng)是我的日常。我四五點(diǎn)就醒了湘换,突然想起昨天編輯的文字好像沒保存就關(guān)機(jī)了宾舅,起來后急忙打開看有沒有自動(dòng)保存,to my suprise彩倚,一個(gè)字都沒少筹我。簡書,絕好的寫作體驗(yàn)帆离。
剛才在床上突然想起來昨天閱文還問了HTTP基于什么協(xié)議蔬蕊,我特么當(dāng)時(shí)傻逼啊,我說基于socket盯质,現(xiàn)在我想起來了HTTP是面向連接的協(xié)議袁串,估計(jì)面試官期望我答TCP吧概而。特么的這個(gè)問題呼巷,我很久以前就在知乎上看過,哎赎瑰。沒辦法王悍,大概就是基礎(chǔ)不牢吧。
今天餐曼,我打算調(diào)整戰(zhàn)略了压储,以項(xiàng)目為中心鲜漩,去挖掘面試可能考察的所有范圍。反正我們的項(xiàng)目足夠大集惋,覆蓋的足夠廣孕似,基本上一般面試都可以cover了。God刮刑, bless me喉祭。
圖片處理?
批量打渠道包
熱修復(fù)原理
MVP和MVVM
自定義控件
滑動(dòng)沖突
Leak & OOM
Hybrid開發(fā)
一個(gè)IM的實(shí)現(xiàn)
視頻SDK
第三方支付接入
Realm的實(shí)現(xiàn)原理
RecyclerView源碼解析
Handler源碼剖析工作原理
How databinding works?
Realm的實(shí)現(xiàn)原理
經(jīng)典查找&排序算法
網(wǎng)絡(luò)協(xié)議
設(shè)計(jì)模式
還有什么,后面想到再加雷绢。