寫給2023年andriod程序員的一封信
hi,粉絲朋友們: 大家好!近來很多粉絲朋友都在說android工作特別難找,一個(gè)崗位都是幾千份簡(jiǎn)歷........大家心里都是特別的焦慮。今天就來給大家寫一封信,給大家分享一些經(jīng)驗(yàn)和辦法,幫助粉絲朋友們更好的度過這個(gè)寒冬。
裁員風(fēng)暴
2023年我相信絕對(duì)是我們android程序員出現(xiàn)以來最艱難一年,也是互聯(lián)網(wǎng)最艱難的一年。在這一年,我們突然發(fā)現(xiàn)全體大裁員原來離我們是那么的近,是不是以前只是聽聽的裁員故事,現(xiàn)在一個(gè)個(gè)的發(fā)生在我們自己或身邊最近的人。

雖然環(huán)境如此艱難,但是我們每一個(gè)個(gè)體都要繼續(xù)生存下去,我們大部分同學(xué)都沒有多個(gè)技能,大部分都是只會(huì)當(dāng)android程序員,上班拿工資的。所以我們大部分人沒有其他選擇,只能用自己能力找一個(gè)更好的工作,拿更多薪水方式。但是大部分人都更多是焦慮居多,包括很多粉絲剛開始也是,天天和我抱怨哈,說外面工作不好找,面試都很不理想,給我展現(xiàn)的根本找不到工作了。哈哈,其實(shí)真的是這樣么?這樣環(huán)境一樣有很多同學(xué)可以順利通過面試,順利上岸大廠,找到一份很好的工作。
所以說與其天天抱怨大環(huán)境不好,不如我們靜下心來好好沉淀,修煉好自己內(nèi)功,當(dāng)你修煉的差不多了,一旦有好的面試機(jī)會(huì)來啦你才可以牢牢把控住,如果只是一味的焦慮,不去努力尋找方法提高豐富自己,那么隨著工作年齡增長(zhǎng),那么后面你的競(jìng)爭(zhēng)力更差。那么又得想好除了當(dāng)程序員你還能干啥呢?
未來規(guī)劃
針對(duì)android程序員來說,馬哥這邊給出一些建議:
1、互聯(lián)網(wǎng)應(yīng)用開發(fā)方向 ? ? --除了正常的業(yè)務(wù)開發(fā),可以考慮深入研究性能優(yōu)化方向,重點(diǎn)積累這塊的經(jīng)驗(yàn),這塊的招聘和工作機(jī)會(huì)以前是最多的,也是這個(gè)方向支撐者移動(dòng)互聯(lián)網(wǎng),但是現(xiàn)在整體互聯(lián)網(wǎng)行情和app基本上全部被top的幾個(gè)app搶走了了時(shí)間,所以后面這塊就業(yè)只會(huì)越來越難,就業(yè)越來越卷。
2、android設(shè)備類系統(tǒng)應(yīng)用開發(fā)方向 ? --這個(gè)其實(shí)和互聯(lián)網(wǎng)應(yīng)用開發(fā)區(qū)別如下: ? ? 互聯(lián)網(wǎng)app重視不斷的業(yè)務(wù)更新迭代節(jié)奏很快,喜歡用各種花哨技術(shù)和第三庫(kù)等,大部分時(shí)間都是重復(fù)做業(yè)務(wù),這里就體現(xiàn)出來做的東西會(huì)很多,知識(shí)面廣追新程度會(huì)高,但是基本上都是基于sdk開發(fā),哪怕不了解系統(tǒng)framework等也沒啥問題。 ? ? 系統(tǒng)應(yīng)用畢竟屬于安卓設(shè)備類廠商,更新周期較慢,一般一年可能有2個(gè)大需求版本哈每個(gè)耗時(shí)1-2個(gè)月,其他時(shí)間大部分在維護(hù)bug和優(yōu)化性能,保證系統(tǒng)應(yīng)用app的穩(wěn)定,需求方面經(jīng)常會(huì)波及到系統(tǒng)相關(guān),所以需要比較熟悉系統(tǒng)framework及其他系統(tǒng)應(yīng)用功能等,需要精細(xì)打磨,會(huì)對(duì)每個(gè)知識(shí)點(diǎn)比較精細(xì),對(duì)android知識(shí)的原理,和性能優(yōu)化等要求也較高。 ? ? 主要的業(yè)務(wù)有l(wèi)auncher,systemui,setting,時(shí)鐘,日歷等,但是這個(gè)android設(shè)備公司方向其實(shí)一直發(fā)展都是很穩(wěn)定,畢竟都是賣實(shí)體設(shè)備的公司,所以說這塊其實(shí)就業(yè)率一直是比較穩(wěn)定一些,但是說實(shí)話大部分做系統(tǒng)應(yīng)用做久了也是容易產(chǎn)生成長(zhǎng)瓶頸,后續(xù)大部分都會(huì)想做framework開發(fā)。
3、android framework開發(fā)方向 ? ? 這個(gè)和系統(tǒng)應(yīng)用開發(fā)公司一樣,一般都是android設(shè)備公司,比如手機(jī)公司,汽車公司(說實(shí)話今年android就業(yè)就靠車機(jī)開發(fā)頂著),電視機(jī),廣告機(jī)等,基本上現(xiàn)在可以看到屏幕的設(shè)備都很大概率是android設(shè)備,framework開發(fā)這個(gè)屬于系統(tǒng)層面東西,難度相對(duì)app開發(fā)要大。市場(chǎng)上其實(shí)會(huì)的人比較少,但是需求不少,而且薪水相對(duì)來說也是比較高的。最重要framework開發(fā)的技術(shù)棧比較深,分為很多個(gè)業(yè)務(wù)模塊,比如binder,input,wms,ams,pms,surfaceflinegr,audioflinger,分屏多窗口等等,基本上每一個(gè)模塊都?jí)蛞粋€(gè)人研究很長(zhǎng)時(shí)間。所以說市場(chǎng)上很難找到一個(gè)人說他可以精通系統(tǒng)所有framework的模塊。主要工作內(nèi)容也是做系統(tǒng)需求和系統(tǒng)bug修復(fù)等,這個(gè)framework需求對(duì)于大廠來說修改的應(yīng)該是最多的。就業(yè)年齡的這個(gè)framework部分一般35歲以上工程師都比較多,這里不太存在說年齡大了不要情況,主要還是因?yàn)樗旧黼y度比較大,沒有長(zhǎng)期時(shí)間的積累很難達(dá)到一個(gè)非常深入的水平。
framework學(xué)習(xí)經(jīng)驗(yàn)分享
android framework的初級(jí)學(xué)習(xí)者們,這里大部分是app的開發(fā)者想轉(zhuǎn)framework開發(fā),普遍有以下以下幾個(gè)困惑痛點(diǎn):
1、不知道framework學(xué)了可以干啥,以為學(xué)習(xí)framework就是看看源碼梳理流程而已沒有實(shí)際用處
2、不知道怎么學(xué)framework,不知道學(xué)啥,自己自學(xué)一堆,但是又感覺啥也沒學(xué)會(huì)
3、分析系統(tǒng)源碼時(shí)候動(dòng)不動(dòng)就被卡住,很難靠自己從頭到位分析源碼
4、源碼學(xué)了那么多,根本記不住,也沒辦法用于實(shí)戰(zhàn)工作
5、工作中framework的問題壓根不知道怎么入手,不知道怎么排查
如果你剛開始學(xué)習(xí)framework有以上幾個(gè)問題屬于很正常現(xiàn)象,這里就分享一些我的學(xué)習(xí)經(jīng)驗(yàn):
1、framework源碼分析 ? ? ? 雖然是源碼分析,但是一定要實(shí)戰(zhàn)大于只看代碼看書,這里實(shí)戰(zhàn)希望學(xué)framework一定要編譯運(yùn)行起來自己的aosp系統(tǒng),這個(gè)環(huán)境都沒有搭建好,那么去網(wǎng)頁(yè)看看源碼那基本上都是靠猜,或者你只停留在看別人內(nèi)容。因?yàn)橹豢创a沒辦法深入理解framework,為啥?因?yàn)閒ramework的系統(tǒng)源碼太多了,一個(gè)方法可能上千行,你難道不實(shí)際加log和debug調(diào)試,你能知道進(jìn)入方法后走哪個(gè)分支?因?yàn)榇a太多,條件判斷太多,你不調(diào)試打印等你根本不知道他具體走哪里。你只有跟著去分析了,走到那個(gè)地方和你猜想的執(zhí)行順序不一樣,理解相關(guān)原因,你才可以深刻的記住這個(gè)坑。不然說句實(shí)話,今天看了明天忘記。
2、自學(xué)時(shí)候,學(xué)會(huì)針對(duì)framework相關(guān)需求進(jìn)行思考,比如你是學(xué)習(xí)framework的分屏模塊時(shí)候,可以拿你手機(jī)的分屏功能進(jìn)行調(diào)研,調(diào)研一些功能時(shí)候,你還沒實(shí)現(xiàn)過的話,你可以考慮,自己嘗試修改應(yīng)該在framework哪里進(jìn)行修改,有可能不知道怎么實(shí)現(xiàn),但是你可以通過已有的framework知識(shí)用各種方式調(diào)研看看人家怎么實(shí)現(xiàn),慢慢的你積累知識(shí)越來越多,你的framework技能就成長(zhǎng)快
3、學(xué)會(huì)使用相關(guān)的dumpsys等相關(guān)調(diào)試命令,其實(shí)這些調(diào)試等命令輸出內(nèi)容既可以很好展現(xiàn)出當(dāng)前framework某個(gè)模塊的運(yùn)行情況,要學(xué)會(huì)這些命令的使用和查看模塊的信息情況,完全可以通過這些輸出來進(jìn)一步鞏固對(duì)模塊的掌握程度。也可以通過這些輸出分析相關(guān)bug及競(jìng)品調(diào)研的情況
4、針對(duì)工作中的一些bug問題,要有追查根本原因的精神,在framework工作中經(jīng)常有同學(xué)查相關(guān)bug時(shí)候,為了簡(jiǎn)單或者說自己根本沒有調(diào)查到根本原因,經(jīng)常采用一些只改表面原因的方法。這樣行為非常不好,首先沒查到根本原因,你根本沒辦法評(píng)估該問題的修改方案波及情況,很可能這里改了另一個(gè)問題也出來了。還有不要丟失一個(gè)可以讓你有機(jī)會(huì)深入系統(tǒng)的機(jī)會(huì),馬哥以前在公司時(shí)候經(jīng)常也分析一些框架偶先閃黑,凍屏,性能等問題,很多時(shí)候一個(gè)偶先問題追查一星期都很正常的。
好了今天就暫時(shí)和大家說這么多,主要就是希望大家在這種普遍失業(yè)大環(huán)境下可以沉下心來,不是每天都處于一種焦慮的狀態(tài),人會(huì)焦慮說明你對(duì)未來其實(shí)是擔(dān)心恐懼的,只是你心里不知道該怎么辦。所以解決焦慮最好方法就是,重新定位好自己,明確目標(biāo),一心一意干。 最后推薦一下馬哥的實(shí)戰(zhàn)android framework開發(fā)合集課程,先說明這個(gè)完整版本是付費(fèi)的,這個(gè)framework課程特點(diǎn)就是要求你一定要實(shí)戰(zhàn),學(xué)習(xí)時(shí)間全職學(xué)1.5個(gè)月,上班兼職學(xué)3個(gè)月,需要的可以私聊我。 免費(fèi)的關(guān)注看我的b站視頻:https://www.bilibili.com/video/BV1ah411d7Y3/
