13年,我從一個二本學院的化學專業畢業。許多同學畢業後都是在製藥工廠上班,朝九晚六,拿著微薄的工資。那個時候的自己很迷茫,總覺得未來不該如此淡然無味。一波波得招聘資訊裡面,最熱門也最誘人的是網際網路/IT領域。當機立斷,我決定轉戰網際網路行業。(那幾年網際網路最火熱的時期,像我一樣半路出家選擇當程式設計師的真的很多)
半路出家學開發不過,那時的我僅僅會一些java語言,投了幾十份簡歷都石沉大海——就我這專業,就我這經驗,想要很好的offer應該有點天方夜譚吧,現實也的確給了我響亮的一巴掌。
不服輸,我堵上了所有的勇氣立志從頭開始全面學習IT網際網路相關的知識。
生活總是會眷顧有準備的人,後來我拿到了一個offer,雖然公司很小,但總算也是對自己努力的彙報。雖然起步只是一個小公司。但是我的目標是大廠,這不是容易達到的事情,我喜歡這種有目標有挑戰的刺激感。只要一直學,總能達到大公司門檻的。
網上學習 Android的資料一大堆,但如果學到的知識不成體系,遇到問題時只是淺嘗輒止,不再深入研究,那麼很難做到真正的技術提升。我根據學習計劃,開始重點攻破一些重點技術點,然後再把知識點關聯起來,形成一個系統化的知識體系。
對基礎原理不斷挖掘
進入公司,我的職位是Linux應用開發工程師,做App網路傳輸模組,本質上就是把本地的資料通過socket傳輸到服務端。用到的技術是java語言,網路程式設計,多執行緒程式設計。
那時是最痛苦的幾個月,因為非計算機出生,很多東西都不會,經常程式段錯誤,都不能定位到問題程式碼。
當時處於試用期間,秉承著不成功則成仁的心態開始惡補相關的基礎知識以及程式碼規範。那時網路上沒有現成的視訊資料,艱難地把計算機專業的書籍自學了一遍。
熬過了試用期,產品也上線了,第一次體會到成就感爆棚的感覺。
現在回頭看,經驗就5個字:原理很重要。很多看起來沒用的原理,其實是重要基礎如果了解這些原理,就可以快速使用各種開源庫。可以更快地熟悉各種中介軟體sdk的使用方法。剛入行技術不求多,熟練掌握一項技術,能把原理講清楚,拿得出手才有基本競爭力。
基礎僅僅是開始,技術要有應用場景,轉化為產品才能最大化地產出價值。
後來,我自學了Android開發,比如UI開發,網路開發。當時也是夜郎自大得以為UI開發就是Android的全部。投遞了很多大廠的Android崗位,卻沒有收到面試邀請。回過頭來再做分析崗位需求時,才發現自己技術棧背景確實不匹配,就算進了面試,好多問題也都答不上。比如:
1. 動態化混合渲染技術架構是怎麼樣?怎麼提高開發效能?
2. 產品的DAU有多少,如何保證穩定性高且可用的?
3. 如何跟蹤使用者行為,利用大資料完善產品功能,降低運營成本?
這些問題讓我意識到,語言、UI和原理只是程式設計師的基本技能而已。
想要進一步發展,不光只考慮個人技術,必須在整個產品生命週期、開發、運維、能效上有合理的架構,進而滿足行業的發展需求。你不光需要考慮業務需求如何實現,更多的重心需要關注開發提效,大團隊並行開發協作,大流量穩定性保障。
學習flutter技術後,顛覆了我對移動APP開發的認識。如果寫native頁面,可能一天一個頁面,Android iOS就需要2個人日,flutter是跨平臺,一份程式碼可以在Android iOS兩個平臺使用。那開發一個頁面就只需要原來一半的資源。通過新技術合理架構提升研發效能,動態化技術提升釋出成本
無論程式多麼完美,Bug永遠存在。對於線上故障,如果不能提前預防以及快速解決,損失可能不堪設想。所以程式碼框架調優,螢幕適配,程式碼品質調優是優秀架構師的必備技能。
自學的過程是痛苦的,移動端的技術日新月異,很多前沿的技術還沒有體系化的書籍,只能在論壇,部落格等看零碎的文章,學習效率比較慢。要想高效的學習一線技術,網路課程是一種新的選擇。有老司機指導方向,避免走彎路,事半功倍
適應發展,做技術的領頭羊
有良好的技術基礎,學會了行業流行的框架,可能只是獲得了進入大廠的敲門磚。多少人努力進入大廠,最終默默無聞地進去,悄無聲息地出來。沒錯,平臺很重要,但更重要的是你能在這個平臺上發展到什麼程度。
這個日異月新的時代,不光需要Follow一線技術,更重要的是要引領時代,才能在技術快速發展的階段不被淘汰,或者才能在下一次技術革命中抓住機會。
如果僅僅只掌握Android本身的技術是不夠的,比如說在iot時代有這樣一個需求: 做一個APP完成智慧硬體的一鍵WiFi配網。這個就需要對TCP/IP協議棧,WiFi加密,網路抓包等有深入的理解。
所以最重要的是突破當前崗位需求的設限,對各種技術融會貫通,創造新的技術框架比如各種前沿技術,音視訊開發,NDK,小程式開發等技術體系
我在搭建這些技術框架的時候,也整理了系統的高階進階教程,會比自己碎片化學習效果強太多,石墨文件可見;《Android架構視訊+學習筆記》
學而不思則罔。我們在學習和輸入知識的生活,一定要多思考,多總結。這樣才能真正的進步!