我靠着这套学习视频+文档,自学Android从外卖小哥走到了头条
5.受到一些心靈雞湯的鼓勵(lì),比如什么種一顆樹(shù)最好的時(shí)機(jī)是十年前,其次,就是現(xiàn)在!
辭職之后
我辭去工作,開(kāi)始在家自學(xué)Android開(kāi)發(fā)。主要的學(xué)習(xí)方式就是在網(wǎng)上看視頻教程。那些視頻教程,初級(jí)的基本上免費(fèi)。中高級(jí)的有些會(huì)收費(fèi),大概50-300元左右一套。反正“學(xué)費(fèi)”上我沒(méi)花什么錢,總共不到一千元吧。
先是學(xué)了些java基礎(chǔ)(把學(xué)校學(xué)的撿起來(lái))。在思考未來(lái)就業(yè)方向時(shí),猶豫了是繼續(xù)學(xué)java還是選擇學(xué)Android。在我讀書(shū)時(shí)是學(xué)過(guò)JAVA的,有過(guò)一些基礎(chǔ),再考慮到就業(yè)各個(gè)方面還是選擇了Android,我這個(gè)情況,肯定進(jìn)不了大廠,做不了大項(xiàng)目了。但是能混口飯吃就很好了!
學(xué)完前java基礎(chǔ)后,我還跟著視頻教程,自己做了兩三個(gè)簡(jiǎn)單的項(xiàng)目。在我學(xué)習(xí)過(guò)程中,讓我比較有自信的是——沒(méi)遇到什么挫折。當(dāng)然,肯定遇到過(guò)各種問(wèn)題被卡住,于是加入了一個(gè)圈子,里面有我這樣的小白,有Android講師,有大廠大牛。里面給了我很多建議!
我的今日頭條之路
投頭條主要是因?yàn)槁?tīng)說(shuō)頭條的筆試面試難度都高,想試試。最開(kāi)始也沒(méi)打
算去頭條,所以直接投的北京Android開(kāi)發(fā)。
頭條走的內(nèi)推,但還是參加了統(tǒng)一的筆試(有概率免筆試),筆試印象不太深了,只記得有兩個(gè)算法題,而且難度都挺大,是那種很容易做對(duì)30%但很難做對(duì)100%的算法題,不過(guò)憑借著我刷題的功底(以及當(dāng)時(shí)的靈機(jī)一動(dòng)),還是把兩題全都做出來(lái)了。
然后就收到了頭條視頻面試的通知。值得注意的是,頭條的筆試刷人比例很大,我周圍基本沒(méi)有人進(jìn)頭條的面試。面試一共三輪,每輪面試完后幾分鐘都會(huì)接到HR的電話通知面試是否通過(guò)。
一面大概持續(xù)了一個(gè)小時(shí)。問(wèn)的問(wèn)題印象不太深了,主要問(wèn)的都是計(jì)算機(jī)基礎(chǔ)、Java基礎(chǔ)和Android基礎(chǔ)的問(wèn)題,但問(wèn)的深度較深。比如問(wèn)到Java并發(fā)的時(shí)候,就讓我用代碼來(lái)演示線程之間的同步;還深入到了wait()和notify()的工作原理(鎖池,喚醒的native實(shí)現(xiàn)),以及notify()和notifyAll()的區(qū)別、notify()可能造成死鎖的問(wèn)題。印象中沒(méi)有要做算法題(如果有也應(yīng)該是LeetCode Easy難度的)。一面完面試官就直接讓我等二面了。
二面大概持續(xù)了一個(gè)小時(shí)。
二面記的也不太清楚了,挑幾個(gè)我記得的說(shuō)。最開(kāi)始是問(wèn)到了一些Java基礎(chǔ),比如int和Integer的區(qū)別之類的。然后還用實(shí)例讓我分析Java面向?qū)ο缶幊痰囊恍┘?xì)節(jié),比如內(nèi)部類的性質(zhì)、什么時(shí)候用內(nèi)部類、內(nèi)部類和靜態(tài)內(nèi)部類的關(guān)系。還問(wèn)到了一些進(jìn)制的問(wèn)題,比如數(shù)的二進(jìn)制表示、與十六進(jìn)制的關(guān)系、移位運(yùn)算。
問(wèn)完這些就開(kāi)始看著我的簡(jiǎn)歷問(wèn),問(wèn)到了我Python學(xué)的怎么樣(項(xiàng)目中用到一些Python)、怎么學(xué)習(xí)Python的、主要拿來(lái)干什么之類的問(wèn)題。然后面試官讓我解釋一下YUV顏色空間,這個(gè)讓我心里一驚,因?yàn)檫@個(gè)第一個(gè)問(wèn)我YUV顏色空間(整個(gè)秋招只有兩個(gè)面試官問(wèn)到Y(jié)UV顏色空間,另一個(gè)是網(wǎng)易游戲),而且看樣子面試官是了解YUV顏色空間的,要知道只有專門做圖像視頻的才會(huì)了解到這些;然后我就詳細(xì)介紹了YUV顏色空間,以及對(duì)應(yīng)的如I420和NV21格式。隨后面試官又問(wèn)我懂不懂Android上的codec(因?yàn)槲液?jiǎn)歷上寫了Android的MediaCodec),我說(shuō)我用過(guò)MediaCodec,面試官又問(wèn)主要用來(lái)干什么,我說(shuō)拿來(lái)做視頻硬解碼。然后面試官針對(duì)MediaCodec的使用、注意事項(xiàng)等問(wèn)了我十多個(gè)問(wèn)題,我都一一很快作了回答。到這里我基本就反客為主了,因?yàn)橛肕ediaCodec的人很少,而我因?yàn)榭蒲械年P(guān)系專門鉆研過(guò)MediaCodec,還實(shí)現(xiàn)了第一個(gè)通用的視頻解碼方法,可以說(shuō)對(duì)MediaCodec了解的很深了;而面試官可能就是剛剛?cè)腴T,正在學(xué)習(xí)MediaCodec,所以我的回答就是游刃有余了。面試官問(wèn)完這些問(wèn)題后很興奮,看我全都答上來(lái)了就覺(jué)得我的面試應(yīng)該算通過(guò)了,但他看了看時(shí)間發(fā)現(xiàn)才四十多分鐘,于是就說(shuō)再出個(gè)算法題我做,就是一道經(jīng)典的算法題——兩個(gè)字符串大數(shù)相加,早有準(zhǔn)備,所以一口氣就寫出來(lái)了。
最后結(jié)束的時(shí)候面試官跟我說(shuō)非常希望我能去頭條實(shí)習(xí)。最后我問(wèn)面試官為什么他會(huì)了解MediaCodec這么冷門的東西,面試官說(shuō)他目前正在參與西瓜視頻APP的研發(fā),接觸到視頻處理,所以就了解到MediaCodec了。
然后就是三面了,三面也大概持續(xù)了一個(gè)小時(shí)
因?yàn)榫W(wǎng)絡(luò)的原因,是電話面試的。三面的畫(huà)風(fēng)和前兩面不一樣,沒(méi)有問(wèn)太多技術(shù)方面的問(wèn)題。最開(kāi)始還是讓我介紹項(xiàng)目,介紹完了就問(wèn)我項(xiàng)目中遇到的問(wèn)題和解決方法,這個(gè)我回答的很細(xì),面試官也問(wèn)的很細(xì);因?yàn)檫@個(gè)之前準(zhǔn)備過(guò),所以答的也不錯(cuò),光這個(gè)問(wèn)題就花了大概半小時(shí)。面試官之后問(wèn)我說(shuō)似乎解決這個(gè)問(wèn)題并沒(méi)有用到太多技術(shù),我回答說(shuō)是的,但最困難的應(yīng)該是尋找原因、作出嘗試、再尋找原因、再作出嘗試的過(guò)程。然后就是問(wèn)我我的項(xiàng)目代碼進(jìn)行過(guò)怎樣的優(yōu)化、現(xiàn)在還存在哪些問(wèn)題,我說(shuō)以前代碼結(jié)構(gòu)太差,牽一發(fā)而動(dòng)全身,后來(lái)學(xué)習(xí)了設(shè)計(jì)模式,代碼結(jié)構(gòu)就清晰了很多,面試官又仔細(xì)問(wèn)了我用到了哪些設(shè)計(jì)模式,是怎么改造代碼的;然后問(wèn)存在的問(wèn)題,我答還缺乏一個(gè)通用的框架來(lái)支撐各種不同的二維碼,然后面試官問(wèn)了我繼續(xù)改造的思路。最后面試官跟我說(shuō)雖然前面兩輪面試問(wèn)了很多基礎(chǔ),但他還是要考考我,問(wèn)我Java里有哪些Map。這題倒是把我難住了,因?yàn)槲抑皇强催^(guò)Map的各種繼承的圖,還沒(méi)專門背下來(lái)過(guò),于是我就只說(shuō)出了HashMap、LinkedHashMap和TreeMap(實(shí)際還有ConcurrentHashMap等),然后跟面試官介紹了典型的使用場(chǎng)景。這樣就結(jié)束了三面。
三面結(jié)束后過(guò)了十幾分鐘就接到HR電話說(shuō)面試通過(guò),接下來(lái)幾天會(huì)有HR的電話面試。然后等到HR電話面試,實(shí)際就是聊聊天,HR了解一下我拿到offer的情況、對(duì)城市的選擇、能否實(shí)習(xí)等,然后問(wèn)我對(duì)部門有沒(méi)有喜好(今日頭條、西瓜視頻、抖音、火山小視頻等),因?yàn)槲乙膊辉谝?#xff0c;就說(shuō)沒(méi)喜好、都可以。剩下的就不仔細(xì)說(shuō)了。
再后來(lái)就是接到了HR溝通薪資的電話,HR說(shuō)我分到了主端(即今日頭條),然后給我的是sp,后來(lái)發(fā)現(xiàn)是sp里的最高擋。
如果自學(xué)的話,以下是建議:
是墻的問(wèn)題,這里有不需要翻墻的資源。AndroidDevTools 配置中遇到的問(wèn)題自己多搜索。
總結(jié)
以上是生活随笔為你收集整理的我靠着这套学习视频+文档,自学Android从外卖小哥走到了头条的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SAVI 技术(一)
- 下一篇: Android ROM开发(三)——精简