想了很久怎么樣可以讓文章的標(biāo)題不那么悲觀,但是各種文案都在我腦海里面不斷的被否定,要么是不那么抓眼球,要么是立意不匹配。最后想了想,這個(gè)標(biāo)題是真的符合我最近的感悟。加上已經(jīng)四個(gè)月沒有更新,就寫一篇我自己的感想。不過在開始正文之前,我想先聲明一下,這篇文章絕對絕對不是一個(gè)負(fù)能量的文章,而是作為一個(gè)小小的安卓開發(fā),這四五年來的一些思考,和這種思考給我個(gè)人帶來的升華。希望看過文章,能有同感的朋友也能多思考一下。
最近因?yàn)橐咔榈年P(guān)系,相信很多國內(nèi)的小伙伴都逐漸開始了解到在家上班的體驗(yàn)。在美國基本上work from home在IT公司里面算是比較常見的現(xiàn)象了。一般大廠每個(gè)周都會(huì)有一天被劃為No Meeting Day,說只是不開會(huì)日,但通常都會(huì)被大家當(dāng)成在家辦公日。不開會(huì)嘛,那我在家和在辦公室也沒區(qū)別不是??????????????。
也正是因?yàn)殚e的時(shí)間多了,看文章的時(shí)間也多了。我是個(gè)不喜歡看書,更傾向于看碎片化文章的人,沒事翻翻掘金,翻翻Android Weekly,是我上廁所蹲坑時(shí)候的首選項(xiàng)。。。
但是讓我感到悲傷的是,好多安卓技術(shù)博主,就在這么一個(gè)月兩個(gè)月之間消失了。點(diǎn)擊他們的個(gè)人主頁,你會(huì)發(fā)現(xiàn)上次更新可能都是好幾個(gè)月,甚至是一年前的事情了。粗糙的以為是因?yàn)橐咔?,其?shí)想一下,這個(gè)事情符合技術(shù)這行的發(fā)展規(guī)律。
我是從15年末正式開始做安卓開發(fā)的,當(dāng)時(shí)安卓開發(fā)界比較出名的像Trinea, 任玉剛等等。尤其是Trinea當(dāng)時(shí)的安卓源碼分析項(xiàng)目,給了還是一個(gè)安卓小白的我一個(gè)非常好的學(xué)習(xí)機(jī)會(huì),那個(gè)Volley 源碼分析,讓我知道如此短小精煉的代碼可以把那么復(fù)雜的邏輯組織的如此的有條理。說實(shí)話,因?yàn)楝F(xiàn)在公司的app還是在用volley做最底層的網(wǎng)絡(luò)庫,因?yàn)槭熳x源碼的原因讓我在出現(xiàn)網(wǎng)絡(luò)問題的時(shí)候debug的速度比其他組員快很多(畢竟知道哪里打斷點(diǎn)。。)
當(dāng)時(shí)還加了Trinea大神的qq,發(fā)了簡歷給他還得到了大神對我簡歷上的指點(diǎn),清晰的記得Trinea把我簡歷上的IOS改成了iOS。。。還說我這樣寫非常不專業(yè)。。。
但是自從Trinea大神在跳槽到滴滴之后,就漸漸開始忙了起來,我和他最后的一次通信停留在了2016年,我告訴他我有機(jī)會(huì)去參加當(dāng)年的GoogleIO大會(huì)了,他微笑的點(diǎn)了個(gè)贊。。。也自此之后,他的個(gè)人博客主頁更新的更多的是滴滴的職位內(nèi)推等等。。
16年之后,RxJava開始火了起來,在這個(gè)神奇的框架還沒被大部分人吃透的時(shí)候,扔物線出現(xiàn)了,這位江湖人稱凱哥的人在中文資料都還不是很齊全的時(shí)候,寫出了這篇給android開發(fā)者的RxJava詳解, 時(shí)光荏苒,馬上RxJava 3.0都出來了,但現(xiàn)在再回頭看這篇中文的RxJava文章,還是有許多讓人感慨的地方,凱哥在那個(gè)時(shí)候?qū)xJava的理解是超前的,雖然之后陸續(xù)有很多更棒的RxJava的文章,比如這個(gè)RxJava 沉思錄系列-> RxJava 沉思錄(一):你認(rèn)為 RxJava 真的好用嗎?
,但是凱哥的那篇文章還是對我產(chǎn)生了很大的影響,不只是對RxJava的理解,讓我力排眾議在當(dāng)時(shí)的小公司開始實(shí)現(xiàn)RxJava,還有他詼諧的行文風(fēng)格,促使我也開始寫技術(shù)博客。一年多以前凱哥開始辭職創(chuàng)辦自己的安卓進(jìn)階培訓(xùn)班,博客的更新速度就慢慢開始直線下降了(小聲逼逼一句,他的Coroutine教程還是很不錯(cuò)的),雖然心里覺得很遺憾,但是也能理解,畢竟大家都是要賺錢養(yǎng)家的。
16-17年算是安卓技術(shù)社區(qū)熱度跌下高峰前的夕陽紅時(shí)刻,加上國內(nèi)的熱更新技術(shù)的發(fā)揚(yáng)光大,那一年安卓技術(shù)線上線下的交流也達(dá)到了前所未有的熱度。我個(gè)人也或作為聽眾或作為演講者參加了好幾場國內(nèi)國外的技術(shù)交流會(huì)
也正是這一年我在博客上的持續(xù)輸出,得到了當(dāng)時(shí)西瓜視頻負(fù)責(zé)人的關(guān)注,還在簡書上私信了我,可惜當(dāng)時(shí)已經(jīng)有了亞麻和facebook的offer,還是沒加入現(xiàn)在已經(jīng)已經(jīng)如日中天的頭條。
不過奇怪的是,那一年開始,好像除了一直以來比較高產(chǎn)的 鴻洋_之外,沒有什么特別突出的后起之秀了。新出現(xiàn)的博主大多是更了兩三篇文章就消失了。貌似是官方也察覺到了這個(gè)趨勢,以前關(guān)注的InfoQ的安卓技術(shù)公眾號直接改名成了前端之巔,把iOS,安卓,web 合并在了大前端這個(gè)技術(shù)領(lǐng)域里面。這個(gè)信號對很多剛剛?cè)胄械陌沧啃“讉兙拖裨趧裢艘粯印?9年初,InfoQ官方的小編還寫出了這樣一篇文章,開頭是這樣的:
寫在前面
今天,我想給大家講一段故事,這個(gè)故事里包含有黑科技、天才少年,有意氣風(fēng)發(fā)的豪情和壯志未酬的遺憾。更重要的是,這是一段真實(shí)的故事,是我人生中的一段重要經(jīng)歷。
-----> 移動(dòng)開發(fā)的羅曼蒂克消亡史
這開頭就定了一個(gè)暗黑系的調(diào),果不其然,末了,作者還來了一個(gè)《萌芽》里面小說家族板塊式的結(jié)尾:
插件化熱潮注定成為技術(shù)發(fā)展的一段小插曲,也許再過幾年,不會(huì)有人記得了。那段激情飛揚(yáng)的歲月,終將成為 The Wasted Times。
做過什么,發(fā)生什么,到末尾一切都不值一提,然而我終究還是拿起筆,記下那些為了忘卻的紀(jì)念。
也正是自2019年起,好像的確沒有什么特別火爆的安卓技術(shù)可供大家討論了。倒是面試這個(gè)話題,成了很多安卓技術(shù)博客的爆款。
To go to 大廠or not,this is a question....
我記得以前有句話,叫
書是越讀越薄,然后再越讀越厚
我一向不是個(gè)悲觀主義者,我喜歡思考事情發(fā)展背后的真實(shí)。一開始在看到安卓技術(shù)社區(qū)不再像以前那么繁榮的時(shí)候,我也感到很失落過。直到去年開始,我才真正了解到那些消失的技術(shù)大佬們不再更新的原因,不是他們干得不好,恰恰相反,是他們干的太好了。
19年我接了一個(gè)大項(xiàng)目,而且重點(diǎn)是,我開始帶人了。不是轉(zhuǎn)做管理,而是作為項(xiàng)目的tech lead。從19年6月份開始,從項(xiàng)目的前后端通氣,設(shè)計(jì)客戶端架構(gòu),技術(shù)選型的調(diào)研,再到設(shè)計(jì)審核,到開發(fā),最后到項(xiàng)目交付的War Room,我從頭到尾每個(gè)環(huán)節(jié)都參與,并且負(fù)責(zé)。也是這一個(gè)項(xiàng)目讓我切身體會(huì)到了一個(gè)項(xiàng)目從開始到落地每一個(gè)環(huán)節(jié),作為一個(gè)負(fù)責(zé)人要做些什么。
一個(gè)團(tuán)隊(duì)的Lead,要做你帶領(lǐng)團(tuán)隊(duì)大部分人做不了的事情。技術(shù)上,怎么搭架構(gòu),做技術(shù)選型,讓團(tuán)隊(duì)的開發(fā)們可以順利的完成他們每天的開發(fā)任務(wù)。管理上,對下怎么劃分任務(wù),鼓勵(lì)團(tuán)隊(duì)的開發(fā)對自己做的"一畝三分地"保持熱情,不會(huì)感到枯燥乏味,對上,怎么及時(shí)匯報(bào)項(xiàng)目進(jìn)度,溝通需要上級的幫助。
這是我在lead完這個(gè)項(xiàng)目之后的感想。在項(xiàng)目開始的前兩個(gè)月,我沒有寫一行代碼,大部分時(shí)間在寫文檔,做技術(shù)調(diào)研,解決開發(fā)前期的環(huán)境配置(大廠的依賴真tm復(fù)雜。。。)。雖然不算是真正的做開發(fā)工作,但是這一個(gè)項(xiàng)目給我思維上的提升卻遠(yuǎn)遠(yuǎn)大于之前我做的任何feature。
再這之后,可能是老板覺得我還算靠譜,也希望我再自己不熟悉的領(lǐng)域多成長,就沒有再讓我進(jìn)行過多的業(yè)務(wù)邏輯的開發(fā),而是鼓勵(lì)我參與更多解決團(tuán)隊(duì)痛點(diǎn)的項(xiàng)目。在這些過程中,我接觸到了JNI,均衡器(音頻底層開發(fā)),團(tuán)隊(duì)代碼規(guī)范工具等等。這些小項(xiàng)目都在不斷的挑戰(zhàn)我自己的知識面。
回到開頭的那一句話,
書是越讀越薄,然后再越讀越厚
我現(xiàn)在算是充分的理解了。一開始大家總說安卓開發(fā)安卓開發(fā),學(xué)習(xí)重點(diǎn)在于一些安卓的具體實(shí)現(xiàn)細(xì)節(jié),這是一個(gè)書越讀越薄的過程。但是當(dāng)項(xiàng)目變的越來越大,越來越廣的時(shí)候,就不是安卓不安卓的問題了,而是一個(gè)寬泛的軟件開發(fā),管理的過程。當(dāng)產(chǎn)品足夠大的時(shí)候,一個(gè)團(tuán)隊(duì)所需要考慮的不僅僅是業(yè)務(wù)邏輯的開發(fā)了,作為一個(gè)Lead,需要的知識也就越來越需要向廣度來發(fā)展,做均衡器,你要了解線性代數(shù),濾波器,做代碼規(guī)范檢查,你需要了解編譯原理的詞法分析,語法分析,這又是一個(gè)書越讀越厚的過程。安卓開發(fā)到最后,需要超脫于安卓本身。
當(dāng)那些技術(shù)博主們,不再拘泥于一些安卓的小技術(shù)細(xì)節(jié),而是升到了一個(gè)更高層次的Tech Lead,或者是Manager的崗位,自然也就不會(huì)再發(fā)一些技術(shù)細(xì)節(jié)的文章,因?yàn)檫@不是他們該思考的問題了。
我記得之前有段時(shí)間很多人在知乎上抱怨,說像任玉剛,stormzhang這樣的“大佬”開始不務(wù)正業(yè),整天在公眾號上分享一些心得體會(huì),都沒有技術(shù)“干貨”了。其實(shí)如果真的能理解我上面說的,也就不難理解他們?yōu)楹螘?huì)這樣了。站在一個(gè)更高的維度去看軟件的開發(fā),會(huì)更加注重于開發(fā)的方法論,的確不會(huì)再像以前一樣發(fā)技術(shù)細(xì)節(jié)的文章了,再者,如果干了4-5年安卓開發(fā),還需要每天看諸如Java 線程池源實(shí)現(xiàn)原理這種文章,不覺得是不是太晚了點(diǎn)?
書越讀越厚,同樣也體現(xiàn)再溫故而知新上。
我最近關(guān)注了一個(gè)博主:卻把清梅嗅
他寫了一個(gè)反思系列的文章,我覺得非常好,他把我們之前很多一些感到理所當(dāng)然的一些安卓開發(fā)的方法論做了一個(gè)簡單易懂的總結(jié)
比如很多文章都在寫事件分發(fā)原理,但是大部分都是源碼復(fù)制粘貼,跟蹤代碼,說實(shí)話,沒有總結(jié)的分析都是耍流氓,分析了等于沒分析。很少有人能一針見血的指出安卓的事件分發(fā)就是深度優(yōu)先遞歸的一個(gè)實(shí)現(xiàn),有沒有人能思考一下不DFS行不行?BFS廣度優(yōu)先能不能一樣實(shí)現(xiàn)事件的攔截?
對已有知識進(jìn)行反思,同樣也可以得到進(jìn)步,而不是需要一昧的追求所謂的“新”知識。
最后,我想說,尤其是對于那些剛剛?cè)胄邪沧康呐笥褌儯μ嵘约?,進(jìn)一個(gè)更大更好的平臺,比自己躲在被窩里面死命鉆研所謂的“技術(shù)”要有用的多。只有在接觸到更大的平臺,你才能發(fā)現(xiàn),原來還有這么多自己不懂的東西。任何技術(shù)都有消失的時(shí)候,相聚離開總有時(shí)候,沒有什么會(huì)永垂不朽。唯有經(jīng)驗(yàn)與思維永存。
大家五一快樂!
共勉