最近由於疫情的關係,相信不少國內的小夥伴都逐漸開始瞭解到在家上班的體驗。在美國基本上work from home在IT公司裏面算是比較常見的現象了。通常大廠每一個周都會有一天被劃爲No Meeting Day,說只是不開會日,但一般都會被你們當成在家辦公日。不開會嘛,那我在家和在辦公室也沒區別不是🐶🐶🐶🐶🐶🐶🐶。前端
也正是由於閒的時間多了,看文章的時間也多了。我是個不喜歡看書,更傾向於看碎片化文章的人,沒事翻翻掘金,翻翻Android Weekly,是我上廁所蹲坑時候的首選項。。。android
可是讓我感到悲傷的是,好多安卓技術博主,就在這麼一個月兩個月之間消失了。點擊他們的我的主頁,你會發現上次更新可能都是好幾個月,甚至是一年前的事情了。粗糙的覺得是由於疫情,其實想一下,這個事情符合技術這行的發展規律。web
我是從15年底正式開始作安卓開發的,當時安卓開發界比較出名的像Trinea, 任玉剛等等。尤爲是Trinea當時的安卓源碼分析項目,給了仍是一個安卓小白的我一個很是好的學習機會,那個Volley 源碼分析,讓我知道如此短小精煉的代碼能夠把那麼複雜的邏輯組織的如此的有條理。說實話,由於如今公司的app仍是在用volley作最底層的網絡庫,由於熟讀源碼的緣由讓我在出現網絡問題的時候debug的速度比其餘組員快不少(畢竟知道哪裏打斷點。。)面試
當時還加了Trinea大神的qq,發了簡歷給他還獲得了大神對我簡歷上的指點,清晰的記得Trinea把我簡歷上的IOS改爲了iOS。。。還說我這樣寫很是不專業。。。後端
可是自從Trinea大神在跳槽到滴滴以後,就漸漸開始忙了起來,我和他最後的一次通訊停留在了2016年,我告訴他我有機會去參加當年的GoogleIO大會了,他微笑的點了個贊。。。也自此以後,他的我的博客主頁更新的更多的是滴滴的職位內推等等。。網絡
16年以後,RxJava開始火了起來,在這個神奇的框架還沒被大部分人吃透的時候,扔物線出現了,這位江湖人稱凱哥的人在中文資料都還不是很齊全的時候,寫出了這篇給android開發者的RxJava詳解, 時光荏苒,立刻RxJava 3.0都出來了,但如今再回頭看這篇中文的RxJava文章,仍是有許多讓人感慨的地方,凱哥在那個時候對RxJava的理解是超前的,雖然以後陸續有不少更棒的RxJava的文章,好比這個RxJava 沉思錄系列-> RxJava 沉思錄(一):你認爲 RxJava 真的好用嗎? ,可是凱哥的那篇文章仍是對我產生了很大的影響,不僅是對RxJava的理解,讓我據理力爭在當時的小公司開始實現RxJava,還有他詼諧的行文風格,促使我也開始寫技術博客。一年多之前凱哥開始辭職創辦本身的安卓進階培訓班,博客的更新速度就慢慢開始直線降低了(小聲逼逼一句,他的Coroutine教程仍是很不錯的),雖然內心以爲很遺憾,可是也能理解,畢竟你們都是要賺錢養家的。架構
16-17年算是安卓技術社區熱度跌下高峯前的夕陽紅時刻,加上國內的熱更新技術的發揚光大,那一年安卓技術線上線下的交流也達到了史無前例的熱度。我我的也或做爲聽衆或做爲演講者參加了好幾場國內國外的技術交流會app
也正是這一年我在博客上的持續輸出,獲得了當時西瓜視頻負責人的關注,還在簡書上私信了我,惋惜當時已經有了亞麻和facebook的offer,仍是沒加入如今已經已經如日中天的頭條。框架
不過奇怪的是,那一年開始,好像除了一直以來比較高產的 鴻洋_以外,沒有什麼特別突出的後起之秀了。新出現的博主大可能是更了兩三篇文章就消失了。貌似是官方也察覺到了這個趨勢,之前關注的InfoQ的安卓技術公衆號直接更名成了前端之巔,把iOS,安卓,web 合併在了大前端這個技術領域裏面。這個信號對不少剛剛入行的安卓小白們就像在勸退同樣。19年初,InfoQ官方的小編還寫出了這樣一篇文章,開頭是這樣的:工具
寫在前面
今天,我想給你們講一段故事,這個故事裏包含有黑科技、天才少年,有意氣風發的豪情和壯志未酬的遺憾。更重要的是,這是一段真實的故事,是我人生中的一段重要經歷。
-----> 移動開發的羅曼蒂克消亡史
這開頭就定了一個暗黑系的調,果不其然,末了,做者還來了一個《萌芽》裏面小說家族板塊式的結尾:
插件化熱潮註定成爲技術發展的一段小插曲,也許再過幾年,不會有人記得了。那段激情飛揚的歲月,終將成爲 The Wasted Times。
作過什麼,發生什麼,到末尾一切都不值一提,然而我終究仍是拿起筆,記下那些爲了忘卻的記念。
也正是自2019年起,好像的確沒有什麼特別火爆的安卓技術可供你們討論了。卻是面試這個話題,成了不少安卓技術博客的爆款。
To go to 大廠or not,this is a question....
我記得之前有句話,叫
書是越讀越薄,而後再越讀越厚
我一貫不是個悲觀主義者,我喜歡思考事情發展背後的真實。一開始在看到安卓技術社區再也不像之前那麼繁榮的時候,我也感到很失落過。直到去年開始,我才真正瞭解到那些消失的技術大佬們再也不更新的緣由,不是他們乾得很差,偏偏相反,是他們乾的太好了。
19年我接了一個大項目,並且重點是,我開始帶人了。不是轉作管理,而是做爲項目的tech lead。從19年6月份開始,從項目的先後端通氣,設計客戶端架構,技術選型的調研,再到設計審覈,到開發,最後到項目交付的War Room,我從頭至尾每一個環節都參與,而且負責。也是這一個項目讓我切身體會到了一個項目從開始到落地每個環節,做爲一個負責人要作些什麼。
一個團隊的Lead,要作你帶領團隊大部分人作不了的事情。技術上,怎麼搭架構,作技術選型,讓團隊的開發們能夠順利的完成他們天天的開發任務。管理上,對下怎麼劃分任務,鼓勵團隊的開發對本身作的"一畝三分地"保持熱情,不會感到枯燥乏味,對上,怎麼及時彙報項目進度,溝通須要上級的幫助。
這是我在lead完這個項目以後的感想。在項目開始的前兩個月,我沒有寫一行代碼,大部分時間在寫文檔,作技術調研,解決開發前期的環境配置(大廠的依賴真tm複雜。。。)。雖然不算是真正的作開發工做,可是這一個項目給我思惟上的提高卻遠遠大於以前我作的任何feature。
再這以後,多是老闆以爲我還算靠譜,也但願我再本身不熟悉的領域多成長,就沒有再讓我進行過多的業務邏輯的開發,而是鼓勵我參與更多解決團隊痛點的項目。在這些過程當中,我接觸到了JNI,均衡器(音頻底層開發),團隊代碼規範工具等等。這些小項目都在不斷的挑戰我本身的知識面。
回到開頭的那一句話,
書是越讀越薄,而後再越讀越厚
我如今算是充分的理解了。一開始你們總說安卓開發安卓開發,學習重點在於一些安卓的具體實現細節,這是一個書越讀越薄的過程。可是當項目變的愈來愈大,愈來愈廣的時候,就不是安卓不安卓的問題了,而是一個寬泛的軟件開發,管理的過程。當產品足夠大的時候,一個團隊所須要考慮的不只僅是業務邏輯的開發了,做爲一個Lead,須要的知識也就愈來愈須要向廣度來發展,作均衡器,你要了解線性代數,濾波器,作代碼規範檢查,你須要瞭解編譯原理的詞法分析,語法分析,這又是一個書越讀越厚的過程。安卓開發到最後,須要超脫於安卓自己。
當那些技術博主們,再也不拘泥於一些安卓的小技術細節,而是升到了一個更高層次的Tech Lead,或者是Manager的崗位,天然也就不會再發一些技術細節的文章,由於這不是他們該思考的問題了。
我記得以前有段時間不少人在知乎上抱怨,說像任玉剛,stormzhang這樣的「大佬」開始遊手好閒,成天在公衆號上分享一些心得體會,都沒有技術「乾貨」了。其實若是真的能理解我上面說的,也就不難理解他們爲什麼會這樣了。站在一個更高的維度去看軟件的開發,會更加註重於開發的方法論,的確不會再像之前同樣發技術細節的文章了,再者,若是幹了4-5年安卓開發,還須要天天看諸如Java 線程池源實現原理這種文章,不以爲是否是太晚了點?
書越讀越厚,一樣也體現再溫故而知新上。
我最近關注了一個博主:卻把清梅嗅
他寫了一個反思系列的文章,我以爲很是好,他把咱們以前不少一些感到理所固然的一些安卓開發的方法論作了一個簡單易懂的總結
好比不少文章都在寫事件分發原理,可是大部分都是源碼複製粘貼,跟蹤代碼,說實話,沒有總結的分析都是耍流氓,分析了等於沒分析。不多有人能一針見血的指出安卓的事件分發就是深度優先遞歸的一個實現,有沒有人能思考一下不DFS行不行?BFS廣度優先能不能同樣實現事件的攔截?
對已有知識進行反思,一樣也能夠獲得進步,而不是須要一昧的追求所謂的「新」知識。
最後,我想說,尤爲是對於那些剛剛入行安卓的朋友們,努力提高本身,進一個更大更好的平臺,比本身躲在被窩裏面死命鑽研所謂的「技術」要有用的多。只有在接觸到更大的平臺,你才能發現,原來還有這麼多本身不懂的東西。任何技術都有消失的時候,相聚離開總有時候,沒有什麼會永垂不朽。惟有經驗與思惟永存。
你們五一快樂!
共勉