挨踢部落故事匯(22):從逃離北上廣到逃回北上廣
原創【51CTO.com原創稿件】司馬雼是玖哥的學長,先后在國內兩家top 10大廠擔任資深Android工程師,對Android技術有如癡如醉的熱情,并且樂于幫助同行,最難得的是他還有一個漂亮的女朋友,不愧是Android程序員中的人生贏家。玖哥將他的經歷稍作加工后用明清小說的筆法寫出來,希望每個讀到這篇文章的Android工程師都能走他的路。
司馬雼·Android攻城獅
***回:小廟無地容巨擘 大廠有禮迎碩士
詩曰:
老板摳門巧計乖,卻將忠義苦擠排。
基礎扎實績點高,蒼天豈能誤人才。
司馬雼2008年考入合肥工業大學,2012年保研本校,2014年進入合肥某小公司實習。
司馬雼一開始選擇的是JavaEE方向,他在實習期間就以專家的標準嚴格要求自己,不但讓服務端的內核穩定度提升了好幾個檔次,還讓內存消耗下降了好多個數量級。完成本職工作后還幫助運維那邊修復了幾次硬件的故障。不料老板嫉賢妒能成性,只愛奴才,不要人才。這個老板不但不給司馬雼升職加薪,還侮辱司馬雼:““雼”是“宕”的繁體字,你越俎代庖搞運維不怕把服務器搞宕機?”信而見疑、懷才不遇的司馬雼憤而辭職。司馬雼辭職剛好趕上某大廠(國內top 10)招Android實習生,他突擊學習了幾天Android就去面試了。
一面的時候主要考察Android和Java的基礎知識,比如Java的數據類型、運算符優先級和Android的布局以及生命周期,基礎扎實的司馬雼都能準確無誤地回答。
二面的時候面試官問了許多數據結構和算法、設計模式、架構的方面的問題,司馬雼不但能畫出好幾種設計模式的UML圖,還對MVC、MVP、MVVM的區別和優缺點發表了自己的看法。
***HR面的時候收了司馬雼的成績單復印件,對他4.0的GPA和專業top 5%感到很滿意。
司馬雼通過了面試,順利成為該廠的Android實習生。不久,司馬雼以專業top 5%的優異成績碩士畢業,轉正成為Android工程師。而那家小公司呢,不知道什么時候就因為bug太多導致用戶嚴重流失而倒閉了。
異史氏曰:Java玩得6的學生選擇Android作為發展方向是一個明智的抉擇,這個世界正處于、并將長期處于移動互聯網時代。校招面試除了考察Android和Java基礎知識,還考察你學習的基礎理論課程的知識,***通常還要收成績單的復印件。大廠的校招面試一般有固定的問題和模式,比如阿里校招筆試題來自《技術之瞳》,微軟校招筆試題來自《編程之美》等,盡管臨陣磨槍也有一定的成功幾率,但別忘了玩3年LOL的槍不可能比刷6年LeetCode的槍更快。(時間沒錯,沉迷LOL的大學生都考不上碩士)
第二回:榮升高級愁田舍 游子低頭思莼鱸
詩曰:
當年許汜初炒房,羞無才氣見劉郎。
如今司馬有遠志,卻愁無房迎新娘。
炒房團自古有之,祖師爺是東漢末年的許汜。當年許汜空有國士之名,卻全無救世之意,整天就知道求田問舍,因此被胸襟海闊,志向山高,憂國忘家的劉備鄙視。此事有辛棄疾《水龍吟》為證:“求田問舍,怕應羞見,劉郎才氣。”
司馬雼和許汜的志向有天壤之別,他的夢想就是把有限的生命投入***的Android技術中,他不甘心每天只做UI的微調,他發現App存在很大的改進空間,并付諸行動。
司馬雼對App的代碼進行了大規模重構,在MVP與MVVM中選擇了MVP架構,并自主研發了一套的網絡請求框架(結合了OKHttp和Gson,可以理解為國產的Retrofit)(該框架不開源,類似框架的源碼:https://github.com/qiujuer/OkHttpPacker)代替OKHttp。這樣一來不但減少了大量冗余代碼,層次結構也變得更加清晰。
訂單狀態這種需要和服務器實時同步的數據,以前一直用每秒一次的輪詢,司馬雼發現這是App又費電又費流量的禍根,采取了用推送代替輪詢的解決方案。
APK瘦身也是Android性能優化的重要組成部分,司馬雼去掉了很多不必要依賴和重復的工具類,讓APK打包后的體量輕了一半。
兩年后,這個App完成了從3.3到6.3共13個版本的迭代,App的啟動速度提升了120%,Crash 率也由8‰降低到1‰。立下汗馬功勞的司馬雼被任命為項目組長、技術指導、高級工程師。
盡管司馬雼工作兢兢業業,也為我國的開源事業添磚加瓦,還寫技術博客幫助了很多人。北京高昂的房價卻讓他有點羨慕那個被他鄙視了多年的許汜。
異史氏曰:Android工程師(在沒有“高級”等前綴時)每天最多的工作都是UI的改來改去,想在平凡的工作中取得不平庸的業績就要付出努力,提升App的性能是有效途徑之一。貢獻開源代碼和分享技術文章的時間也是可以擠出來的。如果在工作中有出色的成績,升職加薪只是時間問題。
第三回:桑梓惜別因緣淺 楷模入職即資深
詩曰:
北京買房要筑臺,還有堵車與霧霾。
回到省會想定居,一問工資又回來。
北京的房價、堵車、霧霾逼得司馬雼決定裸辭,逃離北上廣,他的目的地是上了七年學的合肥。他剛辭職,老東家的***競爭對手(全國top 20)和另一家全國top 10的大廠都邀請他去面試。他兩個月來參加了這兩家大廠和合肥當地兩家大廠的面試。
面試官首先詢問的總是Java和Android的高級特性,Java的高級特性主要有JVM模型、類加載機制和GC原理等,Android的高級特性主要有幾大FLAG和LauchMode的區別和使用場景、Binder的引用和實體以及權限系統的交互等。司馬雼對技術鉆研很有深度,總是對答如流。
面試的第二階段就是讓司馬雼自己去講他做過的項目,然后面試官會冷不丁的讓他去解釋其中某一部分,有時候讓他解釋當時為什么要這么做,有時候問他現在覺得有沒有更好的辦法。司馬雼處理問題的思路和解決問題的能力給面試官留下了深刻印象。
面試官有時候會問一些該企業所在行業需要關注的Android技術,比如研究輸入法的公司會詢問他Android手勢和多點觸摸,研究物聯網的公司會問他Bluetooth相關知識等。因為司馬雼廣泛涉獵Android知識,他的技術廣度也讓面試官嘖嘖贊嘆。
每次面試官問司馬雼:“你還有什么想和我說的嗎?”的時候,司馬雼就把他的技術博客和開源項目一股腦砸向面試官,面試官是司馬雼的粉絲或者面試官正在用司馬雼的開源項目的情況發生了好幾次。
司馬雼在合肥拿到了兩個資深Android工程師的offer,盡管合肥房價不到北京的1/3,可是最多30W的年薪讓司馬雼在合肥買房遙遙無期。這時司馬雼接到了一個電話,逃離北京前面試的全國top 10的大廠給了他60W年薪和項目經理、技術經理、資深工程師的title。他決定逃回北上廣,逃離北上廣的計劃剛開始就結束了。
異史氏曰:有多年工作經驗的求職者幾乎不需要在求職網站上投簡歷,想讓你做他的同時的同行朋友會內推你。社招面試和校招面試是不同的,社招面試沒有固定的問題和模式,臨時抱佛腳是行不通的。社招面試基本都會考察這幾個問題:***個階段是Android和Java的高級特性,考察技術深度;第二個階段是講述自己的項目,并在中間穿插著問題,考察解決問題的經驗;第三個階段(未必有)是問該公司所在行業需要掌握的Android知識,考察技術廣度和快速上手情況。技術博客和開源項目是很重要的加分項,如果平時不積累、不分享,求職者會失去很多機會。二三線城市的房價更親民,但工資非常不人性,逃離北上廣需謹慎。
第四回:專家立功施小計 淑女出閨成大禮
詩曰:
經驗豐富技術精,消除隱患立大功。
全球大會登講臺,抱得淑女入后宮。
話說司馬雼所在的團隊負責公司的Android客戶端的安全工作,工作內容包含保活、防攔截、防篡改和防反編譯等工作。他發現自家App存在不少可能被惡意利用的隱患:
首先,壞人可以通過NotificationListenerService攔截自家App的推送,給用戶造成自家App沒有推送的假象。
其次,在上一條基礎上。壞人可以在虛擬機里運行一個竊取推送App,收到自家App推送后,用AccessibilityService打開Notification對應的Activity,找到里面的WebView,然后取得鏈接及網頁中的內容,稍加修改(換logo、改名字)推送給壞人自己的App。
此外公司的微信公眾號打開自己App需要用瀏覽器打開鏈接,這也給壞人以可乘之機。
更有甚者,壞人最喪心病狂的手段就是卸載了自家App后,在肉雞中安裝一個與自家App的packgaeName一致,但Signature不一樣而且沒有launcher的假App,這樣肉雞的用戶永遠也安裝不了自家App,而且還不能用長按拖拽桌面icon進垃圾桶的方式刪除假App。
司馬雼花了兩年時間為公司消除了以上隱患,榮升架構師、技術專家(時間沒錯,這是小說,出現未來時間很正常)。各大IT論壇、IT活動的聘書和邀請函也如雪片般飛來,不是邀請他做特約作者,就是邀請他當講座嘉賓。
某IT大會在北京舉行,司馬雼作為特約嘉賓在臺上妙語連珠、口若懸河。大會期間,司馬雼結識了某IT社區的技術編輯椎名,這位淑女負責大會的后勤和報道工作。椎名不但知書達理、蘭心蕙質,相貌也傾國傾城,有詩為證:
樂天潯陽歌《長恨》,陳王洛水賦《感甄》。
摩詰青溪《西施詠》,瀟湘紅樓《明妃吟》。
沒錯,這詩集合了白居易《長恨歌》、曹植《感甄賦》、王維《西施詠》、林黛玉《明妃吟》,椎名的美貌用古往今來的美女詩都擱一塊也寫不完。淑女椎名傾慕司馬雼的才華,從此司馬雼正式脫單。
不久,年薪100W的司馬雼在北京買房定居。又過了幾個月,這對為我國IT事業做出了巨大貢獻的情侶在北京舉辦了盛大的婚禮。
異史氏曰:公司大到一定程度,別有用心的競爭對手就會搞小動作,因此想成為大廠的技術專家,懂點安全方面的知識是很有幫助的。程序員是經常被嘲笑為“注定孤獨一生”的群體,但出人頭地的程序員抱得美人歸的可能性非常大,畢竟女人的顏值通常和她的男朋友的收入成正比。
如果你也愿意分享你的故事,請加51CTO開發者QQ交流群 312724475聯系群主小官,期待你精彩的故事!
【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】