Android 進階探索 爲什麼別人成長那麼快?

大家都清楚,我們提升自己的學習方式,一般分爲

  1. 自學,自我提高的一個過程;

  2. 跟着公司項目成長,就是我們所說的做業務迭代的過程。

算了算,我也快工作三年了,這三年在不同時期有着不同的認知,也浪費了不少的學習機會,不過也總結了一些良好的學習習慣,今天跟大家分享下如何正確的利用工作環境學習。

1. 線上疑難雜症

首先工作環境下,和自學是不同的,這裏是實戰,也就是將你所學的知識應用到線上,經過無數用戶對你的代碼進行驗證,在不同配置的機型,不同的使用習慣,不同的網絡環境下,會遇到很多問題:

  1. crash ,一般爲應用添加監控主動上報

  2. 兼容性問題,一般由用戶主動反饋

以上兩類,一般業務上引發的問題,都能解決。

最後在平臺上,都會剩下一些非常難解決,影響也不大的,我們稱之爲線上疑難雜症。

這類問題,想必大家都會遇到,很多時候,我們的態度是:

"沒什麼影響,大家都有"

"又不是我搞得,不管"

這樣的態度是極其不正確的,這些問題纔是學習的非常好的材料。

很久以前,曾經我參加過一次面試,問題就是有沒有遇到過一些難搞的異常,是如何解決的?

當時我參與業務開發並不多,一時語塞,自己好像並沒有特別關注過這些。

現在想想,是極其不應該的。

很多時候,我們抱怨做業務沒有成長,恰恰相反:

我們在業務過程中,面臨百萬甚至千萬級用戶,總會遇到各種各樣難解的問題,這些問題恰好是幫主我們成長的非常好的學習資料,而往往被我們自己懶惰 or 逃避的心態放棄了這樣的學習機會。

所以,如果你看到這篇文章,不妨多關注這些問題。

有一個好消息是這些方案,一些業界大廠都會比較追求極致,往往也會分享一些技術性文章解釋如何解決,我簡單舉幾個例子:

  1. finalize time out Exception

滴滴曾經分享:

  • 滴滴出行安卓端 finalize time out 的解決方案
  1. bad token Exception

bugly 也分享一篇 window 的文章,其中對 token 也有一定的解釋:

  • 淺析 Android 的窗口

也有一些非常優秀的個人開發者,針對 toast bad token exception 開源自己的方案:

https://github.com/PureWriter/ToastCompat

  1. SharedPreference 導致的anr

頭條技術團隊,對於 SharedPreference apply 引發的 ANR 問題的分析與解決。

剖析 SharedPreference apply 引起的 ANR 問題

  1. webview的一些崩潰與兼容性問題

  2. RxJava 使用不當引發的一些奇怪的問題

...

這些疑難雜症就擺在你的面前,而且有非常多的解決方案,可以讓你去嘗試解決,線上的環境又可以支撐你去驗證。

不妨追求極致,嘗試去修復這些問題。

這些可是自學環境下學不到的,即使你自學學到了這些問題的解決方案,也沒有足夠的條件讓你線上驗證。

另外,在工作中有什麼追求極致的想法,例如一些極致的優化方案等,千萬不要藏着掖着,嘗試幹一波,上線驗證一波。

不經過線上驗證的都是紙老虎,你永遠沒有辦法瞭解方案的穩定性。

關於大廠相關文章查找,我也給大家做了個系列:

Android 這些內容你應該知道 | 3 期

Android 你可能錯過的信息 | 2 期

Android 優質技術分享 1期

2. 線下疑難雜症

另外,我們在正常的業務迭代過程中,自己或者同事,偶爾也會遇到一些比較難搞,或者極度不符合預期的問題,一般有:

  1. 正常開發過程中遇到的難搞的需求;

  2. 實現過程中與預期極其不匹配的情況;

  3. qa報的比較偶現的bug;

這些問題,可以適當的關注一波,當然並不是把這個問題攬過來,可以去了解下這個問題,嘗試自己解決下,或者思考爲什麼會這樣,有結論了可以和同事討論一下,共同解決。

沒有結論,作爲未知知識,後續同事解決了,問一波,再看下代碼,也算學到了。

不是所有的需求都能遇到疑難雜症,遇到了不要退縮,反而應該慶幸,感覺要學到了,今天又賺到了。

記得有一次,我們遇到一個非常奇怪的線上問題,和同事一起搞了好多天,連續發了多個版本驗證,針對遇到的問題,各種猜想、驗證。頂着壓力解決後,後面回顧這段時間,都會說道:

這波不虧,學到了。

在一個團隊中,這樣做事不設邊界,除了能學到更多,也能和同事相處更加融洽。

**

  1. 總結**

很多時候,有同學問我

「鴻洋,有哪些知識學了之後就能成爲高級工程師呢?」

沒有。

職級都是公司賦予你的,並沒有什麼知識學完就是高級工程師了,更多的還是要結合實際的項目經歷,所以選擇一個自己認可的公司,不斷學習與積累,跟隨項目成長,最終得到認可,賦予你 "高級"的 title。

而想要快速成長,文中給出了兩點可以借鑑的方案。

其次,咱們這一行,絕大多數問題都不需要拼智商,90%的你遇到的問題,別人都遇到過,都能靠着搜索引擎解決。

但是每次解決後,如果你有心,去探索背後的原理:

1. 爲什麼會有這個問題?

2. 這個解決方案,最終解決問題的本質是?

3. 瞭解了本質後,是否還有更佳的解決方案。

長此以往,差距慢慢就顯現出來了。

”有些同學遇到問題,依舊依靠搜索引擎“

”有些同學遇到各種問題,基本上看一眼報錯,結合上下文,馬上能想到問題的本質。“

想要快速技術成長,先擺正自己的態度,做好長期積累的準備。

爲什麼週六,我不好好休息推文了呢?

因爲最近廣告推送佔據了一些推送機會,所以我會額外花時間,補一些文章給大家,這些文章一般在次條 or 週末。

推薦閱讀:

最近 Flutter 爭氣了! Flutter 也可以做這麼炫酷的動畫

開源一個 Android 圖片壓縮框架

我在一個羣分享Android 好像被我分享得沒人說話了... 2期

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章