二本畢業,我是如何成為BAT 安卓開發工程師?
過往的點點滴滴,
會在你未來的生命裡,
以某種方式串聯起來,
讓你遠離平凡,變得與眾不同。
---賈伯斯
座標:杭州
現任職位:BAT某公司資深開發工程師
畢業院校:普通二本(化工專業)
13年,我從一個二本學院的化學專業畢業。許多同學畢業後都是在製藥工廠上班,朝九晚六,拿著微薄的工資。那個時候的自己很迷茫,總覺得未來不該如此淡然無味。一波波得招聘資訊裡面,最熱門也最誘人的是網際網路/IT領域。
順勢而為勇者勝。當機立斷,我決定轉戰網際網路行業。
不過,那時的我僅僅會一些C語言,投了幾十份簡歷都石沉大海——就我這專業,就我這經驗,想要很好的offer應該有點天方夜譚吧,現實也的確給了我響亮的一巴掌。
不服輸,我堵上了所有的勇氣立志從頭開始全面學習IT網際網路相關的知識。
生活總是會眷顧有準備的人,不久我還是拿到了一個offer,雖然公司不大,但總算也是對自己努力的彙報。
Part.1
對基礎原理不斷挖掘
進入公司,我的職位是Linux應用開發工程師,做App網路傳輸模組,本質上就是把本地的資料通過socket傳輸到服務端。用到的技術是C語言,網路程式設計,多執行緒程式設計。
那時是最痛苦的幾個月,因為非計算機出生,很多東西都不會,經常程式段錯誤,都不能定位到問題程式碼。
當時處於試用期間,秉承著不成功則成仁的心態開始惡補相關的基礎知識以及程式碼規範。那時網路上沒有現成的視訊資料,艱難地把計算機專業的書籍自學了一遍。例如,資料結構與演算法,計算機網路,作業系統原理,計算機體系結構……
熬過了試用期,產品也上線了,第一次體會到成就感爆棚的感覺。
現在回頭看,經驗就5個字:原理很重要。很多看起來沒用的原理,其實是重要基礎。比如:
你能講清楚函式的呼叫過程嗎?是怎麼呼叫的?怎麼返回的?引數是怎麼傳遞的?函式的記憶體佈局是怎麼樣的?
如果瞭解這些原理,就可以快速使用各種開源庫。可以更快地熟悉各種中介軟體sdk的使用方法。剛入行技術不求多,熟練掌握一項技術,能把原理講清楚,拿得出手才有基本競爭力。
Part.2
專注方向
瞭解技術全貌,做合格架構師
基礎僅僅是開始,技術要有應用場景,轉化為產品才能最大化地產出價值。
後來,我自學了Android開發,比如UI開發,網路開發。當時也是夜郎自大得以為UI開發就是Android的全部。投遞了很多大廠的Android崗位,卻沒有收到面試邀請。回過頭來再做分析崗位需求時,才發現自己技術棧背景確實不匹配,就算進了面試,好多問題也都答不上。比如:
1. 動態化混合渲染技術架構是怎麼樣?怎麼提高開發效能?
2. 產品的DAU有多少,如何保證穩定性高且可用的?
3. 如何跟蹤使用者行為,利用大資料完善產品功能,降低運營成本?
這些問題讓我意識到,語言、UI和原理只是程式設計師的基本技能而已。
想要進一步發展,不光只考慮個人技術,必須在整個產品生命週期、開發、運維、能效上有合理的架構,進而滿足行業的發展需求。你不光需要考慮業務需求如何實現,更多的重心需要關注開發提效,大團隊並行開發協作,大流量穩定性保障。
(文末掃碼獲取能力圖譜)
學習Weex技術,Rn技術後,顛覆了我對移動APP開發的認識。如果寫native頁面,可能一天一個頁面,Android iOS就需要2個人日,Weex是跨平臺渲染,一份程式碼可以在Android iOS兩個平臺使用。那開發一個頁面就只需要原來一半的資源。通過新技術合理架構提升研發效能,動態化技術提升釋出成本。
無論程式多麼完美,Bug永遠存在。對於線上故障,如果不能提前預防以及快速解決,損失可能不堪設想。所以線上運維,異常監控,效能監控,資料埋點是優秀架構師的必備技能。
自學的過程是痛苦的,移動端的技術日新月異,很多前沿的技術還沒有體系化的書籍,只能在論壇,部落格等看零碎的文章,學習效率比較慢。要想高效的學習一線技術,網路課程是一種新的選擇。有老司機指導方向,避免走彎路,事半功倍。
Part.3
沉澱經驗
適應發展,做技術的領頭羊
有良好的技術基礎,學會了行業流行的框架,可能只是獲得了進入大廠的敲門磚。多少人努力進入大廠,最終默默無聞地進去,悄無聲息地出來。沒錯,平臺很重要,但更重要的是你能在這個平臺上發展到什麼程度。
這個日異月新的時代,不光需要Follow一線技術,更重要的是要引領時代,才能在技術快速發展的階段不被淘汰,或者才能在下一次技術革命中抓住機會。
如果僅僅只掌握Android本身的技術是不夠的,比如說在iot時代有這樣一個需求: 做一個APP完成智慧硬體的一鍵WiFi配網。這個就需要對TCP/IP協議棧,WiFi加密,網路抓包等有深入的理解。
所以最重要的是突破當前崗位需求的設限,對各種技術融會貫通,創造新的技術框架,做技術的領頭羊,適應時代發展。
技術人成長不能再單打獨鬥,要學會與人交流,學會將別人的知識為自己所用。如果你依然覺得有些茫然,不如跟有多年Android開發經驗的資深工程師聊一聊。
1月22日-1月28日,網易雲課堂將會開展為期一週的Android進階免費系列直播課。
網易資深工程師帶你突破Android開發技術瓶頸,向你傳道UI/NDK開發 · 效能優化 · 架構設計 · Flutter開發,每天2小時,密集輸入Android開發相關知識及經驗,幫你快速實現技術和職業成長上的突破。
福利1 免費直播課程
《網易雲課堂Android進階免費系列直播課》
適聽人群:Android初、中級開發工程師
1.22-1.28 連續7天每晚8點準時直播
▼
1月22日:不用覆蓋安裝,靜默修復bug。安卓頂尖技術:熱修復
1月23日:餓了麼跨程式通訊架構分析-帶你手寫最優異的程式通訊架構
1月24日:事件分發機制完全解析,帶你從原始碼的角度徹底理解
1月25日:Android人工智慧離你並不遙遠,OpenCV實現人臉識別
1月26日:RecyclerView你還沒觸及的架構祕密, 今天帶你從零手寫RecyclerView
1月27日:安卓元件間通訊非常麻煩?事件匯流排框架讓你不再糾結
1月28日:安卓黑科技:圖片終極壓縮,支援自定義配置、不失真和批量處理
報名方式:
掃描下方二維碼新增助教小姐姐微信,
通過稽核後即可免費報名
福利2 Android開發資料包
想要參與Android進階免費系列直播課
獲取Android開發工程師資料包
掃描下方二維碼,
新增網易雲課堂Android課程助教小姐姐
網易雲課堂Android進階免費系列直播課報名通道
免費課程,名額有限,先到先得~~
相關文章
- 我是如何在2年內逆襲成為BAT年薪40W的資深開發工程師的?BAT工程師
- iOS開發高階工程師,為什麼Bat面試官偏偏看上了我!iOS工程師BAT面試
- 致畢業生:那些年我們錯過的“BAT”BAT
- 前端leader找我談心:我是如何從剛畢業的前端菜鳥一步步成長為前端工程師的?前端工程師
- 我是如何從測試開發做到年薪50萬的?揭秘測試開發工程師成神之路工程師
- [Flutter翻譯]在我畢業之前就成為Flutter的GDEFlutter
- 我是如何自學安卓的安卓
- 普通二本,畢業三年,北漂之後,我是怎麼成為程式猿的。
- 如何成為一名大資料開發工程師大資料工程師
- 我是如何成為一名機器學習工程師,並很快找到工作的?機器學習工程師
- 被‘辭職’後,我是如何從安卓開發轉型大資料開發的安卓大資料
- 如何成為一名優秀的iOS開發工程師iOS工程師
- 作為應屆畢業生,怎麼才能成為一名後端開發工程師?後端工程師
- 我是如何成為一個Java Web開發者的JavaWeb
- 普通二本,畢業三年,北漂之後,我是怎麼成為程式猿的。| 掘金年度徵文
- 畢業兩年,我是如何從技術「轉型」到管理的?
- 如何成為一名後端開發工程師(附路線圖)後端工程師
- 我是如何從通訊轉到Java軟體開發工程師的?Java工程師
- 什麼是Web開發?如何成為一個Python Web開發人員?WebPython
- 招聘:群控(雲控)開發工程師/安卓逆向開發工程師工程師安卓
- 如何讓自己成為一個專業的高階開發?
- 前端修煉の道 | 如何成為一名合格前端開發工程師?前端工程師
- 開發達人是如何養成的?
- 「我是美餐 BUG 開發工程師,我們正在招聘技術大牛」工程師
- 我是如何從礦工成為程式設計師的程式設計師
- 如何成為 10 倍軟體工程師軟體工程工程師
- 阿里P7談:如何成為一名卓越的前端開發工程師!阿里前端工程師
- 大學畢業生如何在短期內提升Java開發技能?Java
- 成為優秀前端開發工程師的進階之道前端工程師
- 我是如何從煤礦工成為程式設計師的程式設計師
- 招聘:赴匯豐銀行java開發工程師(應屆畢業生均可)Java工程師
- 如何成為 DevOps 工程師:分步指南dev工程師
- 如何成為全棧增長工程師?全棧工程師
- 7月23日雲棲精選夜讀丨前端leader找我談心:我是如何從剛畢業的前端菜鳥一步步成長為前端工程師的?前端工程師
- Dubbo 畢業,成為 Apache 基金會頂級專案Apache
- 我是如何學習軟體開發的
- 雲來了!我們該如何成為一個好的運維工程師運維工程師
- 我是如何從Web開發轉向移動開發的?Web移動開發