
上天總是“神不知鬼不覺”地偷走你的時間,每當我們回顧的時候才倍感珍惜。
2019年初規(guī)劃的“豪情壯志”,如今看來,已然被時間長河掩埋和腐化:
- Android 深入學習
- 深入 Kotlin 語言學習和實踐
- 了解跨平臺開發(fā)及前端開發(fā)
- 了解Flutter并作實例訓練
- 穩(wěn)定維護一個開源項目
學習 Python 和數(shù)據(jù)爬蟲、分析等技術文章每月至少發(fā)表一篇了解項目管理相關專業(yè)知識技術、產品、職業(yè)發(fā)展、個人成長等相關書籍 × 10五款框架源碼閱讀、解析和實戰(zhàn)應用
劃線部分就是今年未完成的計劃,有一半都被擱淺了,想來著實慚愧。不過,雖然期間也有很多突發(fā)事件打斷了原本計劃,比如公司業(yè)務變遷、項目職責變更、個人興趣轉變、生活瑣事等等,但也還是 Get 到了一些計劃外的收獲,也算給焦躁的內心帶來一絲安慰。
回顧 2019
2019,這短短的一年經歷了大大小小的事情,雖然錯過了很多,卻也收獲了很多。首先從技術領域說起。
Android 領域
自畢業(yè)開始到現(xiàn)在,我已經在 Android 方面摸爬滾打了兩個多年頭了。2019,已經不像前一年那樣進步飛快了,取而代之的是“步履維艱”,讓思考和經驗來沉淀自己,這應該也算是每個技術人員必經的時期吧。以往開發(fā)過程中更多的是“站在巨人的肩膀上”去快速開發(fā)和完成任務,缺少個人的思考和對于技術縱向深度的領悟,以至于出現(xiàn)某些特定問題沒有給出良好方案去解決的情況。
于是乎,今年便開始了“痛苦而充實”的進階之路,書籍、博客、課程、文檔等等知識涓涓細流灌輸于心,讓我自身在考慮和解決問題角度及態(tài)度方面發(fā)生很大轉變。比如,在工作流程上,以往完成一項需求開發(fā)任務會直接手繪出大概業(yè)務邏輯和復雜點,然后便直接著手開發(fā);而今,會在開發(fā)前先去通過“需求看板”來細分需求,而后借助于流程圖去理清業(yè)務關系和用戶交互細節(jié),接著通過 TDD(測試驅動開發(fā))模式來編寫單元測試并編寫和跑通對應的功能代碼。當然,在編寫代碼前也需要考慮很多事情,如選擇不同的實現(xiàn)思路,對應的前期投入、開發(fā)成本、維護成本等可能會大相徑庭。此外,在經歷一段時間小團隊開發(fā)形式后,開發(fā)規(guī)范的重要性也日益凸顯,這就要求我們需要形成一個統(tǒng)一、規(guī)范化和系統(tǒng)化的開發(fā)模式,同時要養(yǎng)成代碼重構的習慣(代碼規(guī)范可參考阿里Android開發(fā)規(guī)范)。
另外,比較“幸福的一件事”是采用了 Kotlin 語言慢慢代替先前的 Java 語言,并著手新項目開發(fā)以及老項目的迭代和維護工作。就 Android 開發(fā)而言,采用哪種語言并沒有絕對的好與壞、優(yōu)與劣之分,關鍵在于“持劍的人”:一把絕世好刀在大俠手中可能就是劫富濟貧的利器,而在屠夫手中可能只是一把充滿血腥味的普通的刀而已。
最后,在系統(tǒng)源碼閱讀方面有了一些進展,通過查看和分析源碼,進一步熟悉 App 從安裝到啟動再到正常運行的過程、UI繪制的流程、組件通信的過程等等,可以很好的學習各種設計模式在Android源碼中的靈活應用并顯著提升解決問題的能力和代碼規(guī)范性。當然,過程痛苦,但想要蛻化成蝶,就必須要經歷這個思想磨礪的過程。
此處附今年已讀部分Android書單:
- 《Android 開發(fā)藝術探索》
- 《Android 進階之光》
- 《Android 源碼設計模式解析與實戰(zhàn)》
- 《Gradle in Action》
- 《Android 移動性能實戰(zhàn)》
- 《Kotlin in Action》
Flutter 方面
今年,偶然機會接觸了Flutter,雖然問世不久,但從 GitHub 的火熱程度以及性能來看,未來發(fā)展形勢肯定也是一片大好。大概在 11 月初,我參與了公司新項目技術方面的選型和研究,由于新項目需求并不復雜,就考慮到項目可以通過 Flutter 技術來實現(xiàn)的可能性。經過幾天的分析和討論,最后終于確定下來新項目采用 Flutter 來構建。如今,我們小組已經借助于 Flutter 來開發(fā)項目有一個多月了,雖然有些磕磕絆絆,但也并沒有發(fā)現(xiàn)比較棘手的問題,近期項目也一直處于穩(wěn)步的開發(fā)過程中,預計將于年前上線。
開源項目
幸運的是,2019 年初,一個偶然的機會,我和幾個朋友討論一些 Android 面試方面的問題,于是便涌起了一個特殊的想法:何不將面試題通過“每天一問”的形式在 GitHub 上面創(chuàng)建一個開放倉庫呢?基于這個世界最大的技術社區(qū),大家可以通過 Issue 來討論每天的面試題,暢所欲言。接著,這個計劃 —— Android daily Interview 就于幾天后被成功實施,并一直堅持維護到了現(xiàn)在:在不知不覺中已經 300 天了,累計有 200 期了。在此期間,也感謝洋哥的多次推薦,讓更多小伙伴參與進來,不論是建議還是參與答題又或是提供面試題,不辭辛苦,都為了這個項目奉獻了自己的力量,在這里我要對他們表示最真摯的感謝??。
如果你近期或后續(xù)有換工作需要,又或是有心想?yún)⑴c進來,歡迎答題 or 一起堅持、維護下去!?
另外,最近著手開發(fā)一個個人應用 —— Sight,基于 Kotlin 和 JetPack,預計將于年后上架并開源。
文章創(chuàng)作
回顧這一年,技術文章產量降低了,雖然更加忙碌了,但始終無法以此為理由來搪塞自己。不過,文章創(chuàng)作上更加有條理性和系統(tǒng)了,不再像以前那樣揮筆疾來了,而是先構思一下并思考編撰方式,當然,隨之而來的是時間成本的增加,不過,顯然這些付出是值得的。也是在今年才陸續(xù)在掘金上發(fā)表文章,雖然數(shù)量僅有幾篇,所幸文章的曝光度和反響都還不錯,收獲了大概 2000 關注度,這也將繼續(xù)激勵我進行后續(xù)的文章創(chuàng)作。
技術活動
2019 下半年,有幸參加了幾場技術分享盛會,收獲良多。9 月份的 Google IO 大會上,我再一次感受了科技進步的魅力,幾乎每年都能感受到技術變化帶來的驚喜,這種喜悅并不只是針對我們技術人員,對于廣大民眾和整個互聯(lián)網(wǎng)市場來說也是機遇無限。從 Android 10 問世到 Kotlin 與 JetPack 的進一步發(fā)展,Android 應用開發(fā)成本大幅度降低,技術棧也更加完善卻也呈現(xiàn)“百家爭鳴”之態(tài);從 Flutter 1.0 問世到 1.9 版本的發(fā)布,跨平臺開發(fā)將呈現(xiàn)更大的發(fā)展態(tài)勢;從 ARCore 增強現(xiàn)實技術到 TensorFlow 機器學習的不斷改進,科幻電影中的“黑科技”將離我們不再遙遠。 隨著 Material design 設計思想的推廣和傳播,新的設計的風格也正在一點點被大眾所接受......
業(yè)余閱讀
除了技術書籍以外,我也在一些“邊邊角角”的時間看了一些其他方面的書籍。從《窮查理寶典》中,能細品查理?芒格的人生智慧,受用無窮;從《增長黑客》中學習了如何零成本推廣和發(fā)展產品;讀《烏合之眾》一書,進一步解讀大眾心態(tài)和心理,同時要在普遍從眾的現(xiàn)象中保持自我,而不是淪為單純的“一群只會攻擊的野獸”。
新一年規(guī)劃
接下來的 2020,又將是一個新的開始。從若多案例來看,我深知咱們搞技術的如果學不動或者停滯了向前,那么我們離被淘汰也就不遠了。生活中肯定不能一直抱著“船到橋頭自然直”的心態(tài),提前規(guī)劃學習目標和制定成長路線顯然才是上策。
-
Android
Android 方面才是主技能,吃飯的家伙可不能丟掉,新的一年將繼續(xù)研讀源碼、深入研究 View 繪制、Binder 機制、插件化深度探索、JVM虛擬機、Kotlin Coroutines 等內容。后續(xù)將盡量減小橫向技術的發(fā)散,進一步加強縱向技術深度。Android 涉及業(yè)務領域眾多,我相信,如果在任何一個領域站穩(wěn)腳跟,那么未來的路都不會太差,重要的是努力找準自己的方向并堅持“鉆子精神”。
-
Flutter
Flutter 僅僅接觸了不到兩個月,雖然時間較短,但作為一項個人輔助技能也是未來可期。所以,未來要加深這部分技術的學習以及部分源碼的解讀,研究和實踐混合開發(fā)的那些事,并運用到個人的實際項目中,有必要的話還是需要稍微了解一下 iOS 的打包、倉庫配置和插件開發(fā)相關知識,畢竟既然接觸了跨平臺的開發(fā)技能,如果僅實踐于 Android 端,那也實在說不過去了。
-
其他
除了加深移動端系統(tǒng)方面的學習,也要留意數(shù)據(jù)結構算法的步伐不能落下,后續(xù)也需要進一步制定各部分的詳細計劃監(jiān)督和督促自己,防止不了了之的情況出現(xiàn)。Leetcode 題庫的繼續(xù)收割和訓練、操作系統(tǒng)和計算機組成方面知識的回顧和鞏固等,這些東西雖然看似平實壓根用不上,但是很多地方究其根源還是會牽扯到這部分的擴展,何況也屬于面試必考察的知識點,不可忽視!
提到這,突然想到自己的簡歷也好久沒更新了,年后考慮跳槽,近期需要重新準備一下中/英版簡歷,此任務優(yōu)先級較高。
-
博客
在文章創(chuàng)作方面,預計堅持 1-2 個月產出一篇較高質量的文章,同樣,基本都會配上 demo 地址。文章大部分主要發(fā)布在掘金這種垂直性的技術社區(qū),文章內容以移動端技術實踐和新技術嘗鮮為主。并會根據(jù)“修煉成果”嘗試在下半年創(chuàng)辦個人的公眾號,主要以技術文章為主。
-
開源項目
預計在 2020 年主要維護兩款開源的項目,即我上面提到的 Android daily Interview 和 Sight。
每日面試題的項目基礎題庫已經快接近尾聲,后續(xù)將在 Android 系統(tǒng)源碼、難題解決方案、數(shù)據(jù)結構算法、Kotlin 實踐和源碼分析、架構等方面來出題,題目幾乎來源于國內外各大公司的內部題庫,也請大家拭目以待啦!當然,如果你有好的題目,歡迎提交 PR,與我們一起“并肩作戰(zhàn)”!
至于 Sight 這款應用(暫命名),主要用來熟悉和實戰(zhàn) Kotlin 以及 JetPack 全家桶,嚴格遵循 Material Design,努力達到一款“產品級”應用要求,并將會上架于 Google 和國內應用市場,到時候歡迎大家前來體驗和提出 Bug ??。此外,該項目后續(xù)也將通過 Flutter 來混合開發(fā)部分頁面,并 Clone 項目和 Flutter 重構,嘗試將其應用到多端。最終代碼將會在應用上架后開源。
-
個人身心
這是最重要的一點!近期網(wǎng)上各種同行 ICU 或者被逼迫辭職的案例屢見不鮮。一方面,我們也要學會武裝自己,利用一些業(yè)務時間接觸一些法律、心理、創(chuàng)業(yè)等其他方面感興趣的知識,不至于“破釜沉舟”的時候才發(fā)現(xiàn)自己只是別人的“墊腳石”。另一方面,對于我們潛心“修煉技術”的人來說,“技術是第一生產力”,但更要明白:身體才是革命的本錢。沒了健康,你所擁有的一切也許只是虛妄。所以,大家在做技術的同時一定要堅持鍛煉,保持良好的生活態(tài)度,心不老,氣長存。

往事不回頭,歲月不饒人。留給我們的時間不多了,2020,路漫漫其修遠兮,吾將上下而求索,一起加油吧!
最后,送上我喜歡的一句話:“我的劍,留給能夠揮舞它的人”。希望大家 2020 年能夠揮舞自己心中的那把良劍,斬獲 offer,一夫當關萬夫莫敵!