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