大家都清楚,我們提升自己的學習方式,一般分爲
-
自學,自我提高的一個過程;
- 跟着公司項目成長,就是我們所說的做業務迭代的過程。
算了算,我也快工作三年了,這三年在不同時期有着不同的認知,也浪費了不少的學習機會,不過也總結了一些良好的學習習慣,今天跟大家分享下如何正確的利用工作環境學習。
1. 線上疑難雜症
首先工作環境下,和自學是不同的,這裏是實戰,也就是將你所學的知識應用到線上,經過無數用戶對你的代碼進行驗證,在不同配置的機型,不同的使用習慣,不同的網絡環境下,會遇到很多問題:
-
crash ,一般爲應用添加監控主動上報
- 兼容性問題,一般由用戶主動反饋
以上兩類,一般業務上引發的問題,都能解決。
最後在平臺上,都會剩下一些非常難解決,影響也不大的,我們稱之爲線上疑難雜症。
這類問題,想必大家都會遇到,很多時候,我們的態度是:
"沒什麼影響,大家都有"
"又不是我搞得,不管"
這樣的態度是極其不正確的,這些問題纔是學習的非常好的材料。
很久以前,曾經我參加過一次面試,問題就是有沒有遇到過一些難搞的異常,是如何解決的?
當時我參與業務開發並不多,一時語塞,自己好像並沒有特別關注過這些。
現在想想,是極其不應該的。
很多時候,我們抱怨做業務沒有成長,恰恰相反:
我們在業務過程中,面臨百萬甚至千萬級用戶,總會遇到各種各樣難解的問題,這些問題恰好是幫主我們成長的非常好的學習資料,而往往被我們自己懶惰 or 逃避的心態放棄了這樣的學習機會。
所以,如果你看到這篇文章,不妨多關注這些問題。
有一個好消息是這些方案,一些業界大廠都會比較追求極致,往往也會分享一些技術性文章解釋如何解決,我簡單舉幾個例子:
- finalize time out Exception
滴滴曾經分享:
- 滴滴出行安卓端 finalize time out 的解決方案
- bad token Exception
bugly 也分享一篇 window 的文章,其中對 token 也有一定的解釋:
- 淺析 Android 的窗口
也有一些非常優秀的個人開發者,針對 toast bad token exception 開源自己的方案:
https://github.com/PureWriter/ToastCompat
- SharedPreference 導致的anr
頭條技術團隊,對於 SharedPreference apply 引發的 ANR 問題的分析與解決。
剖析 SharedPreference apply 引起的 ANR 問題
-
webview的一些崩潰與兼容性問題
- RxJava 使用不當引發的一些奇怪的問題
...
這些疑難雜症就擺在你的面前,而且有非常多的解決方案,可以讓你去嘗試解決,線上的環境又可以支撐你去驗證。
不妨追求極致,嘗試去修復這些問題。
這些可是自學環境下學不到的,即使你自學學到了這些問題的解決方案,也沒有足夠的條件讓你線上驗證。
另外,在工作中有什麼追求極致的想法,例如一些極致的優化方案等,千萬不要藏着掖着,嘗試幹一波,上線驗證一波。
不經過線上驗證的都是紙老虎,你永遠沒有辦法瞭解方案的穩定性。
關於大廠相關文章查找,我也給大家做了個系列:
Android 這些內容你應該知道 | 3 期
Android 你可能錯過的信息 | 2 期
Android 優質技術分享 1期
2. 線下疑難雜症
另外,我們在正常的業務迭代過程中,自己或者同事,偶爾也會遇到一些比較難搞,或者極度不符合預期的問題,一般有:
-
正常開發過程中遇到的難搞的需求;
-
實現過程中與預期極其不匹配的情況;
- qa報的比較偶現的bug;
這些問題,可以適當的關注一波,當然並不是把這個問題攬過來,可以去了解下這個問題,嘗試自己解決下,或者思考爲什麼會這樣,有結論了可以和同事討論一下,共同解決。
沒有結論,作爲未知知識,後續同事解決了,問一波,再看下代碼,也算學到了。
不是所有的需求都能遇到疑難雜症,遇到了不要退縮,反而應該慶幸,感覺要學到了,今天又賺到了。
記得有一次,我們遇到一個非常奇怪的線上問題,和同事一起搞了好多天,連續發了多個版本驗證,針對遇到的問題,各種猜想、驗證。頂着壓力解決後,後面回顧這段時間,都會說道:
這波不虧,學到了。
在一個團隊中,這樣做事不設邊界,除了能學到更多,也能和同事相處更加融洽。
**
- 總結**
很多時候,有同學問我
「鴻洋,有哪些知識學了之後就能成爲高級工程師呢?」
沒有。
職級都是公司賦予你的,並沒有什麼知識學完就是高級工程師了,更多的還是要結合實際的項目經歷,所以選擇一個自己認可的公司,不斷學習與積累,跟隨項目成長,最終得到認可,賦予你 "高級"的 title。
而想要快速成長,文中給出了兩點可以借鑑的方案。
其次,咱們這一行,絕大多數問題都不需要拼智商,90%的你遇到的問題,別人都遇到過,都能靠着搜索引擎解決。
但是每次解決後,如果你有心,去探索背後的原理:
1. 爲什麼會有這個問題?
2. 這個解決方案,最終解決問題的本質是?
3. 瞭解了本質後,是否還有更佳的解決方案。
長此以往,差距慢慢就顯現出來了。
”有些同學遇到問題,依舊依靠搜索引擎“
”有些同學遇到各種問題,基本上看一眼報錯,結合上下文,馬上能想到問題的本質。“
想要快速技術成長,先擺正自己的態度,做好長期積累的準備。
爲什麼週六,我不好好休息推文了呢?
因爲最近廣告推送佔據了一些推送機會,所以我會額外花時間,補一些文章給大家,這些文章一般在次條 or 週末。
推薦閱讀:
最近 Flutter 爭氣了! Flutter 也可以做這麼炫酷的動畫
開源一個 Android 圖片壓縮框架
我在一個羣分享Android 好像被我分享得沒人說話了... 2期