1. 程式人生 > >從輟學到名企資深開發工程師,一名 Android 開發者逆襲血淚史

從輟學到名企資深開發工程師,一名 Android 開發者逆襲血淚史

原文:I’m an Android developer
作者:Michell Bak
翻譯:ASCE1885
審校:蘇宓,關注移動開發領域,尋求報道或投稿請發郵件[email protected]

我今年 26 歲,作為一名資深 Android 開發者,同時也是一位大學輟學者,我以犧牲正規教育為代價換取了實踐經驗,目前就職于丹麥最大的電信和寬頻公司-並不是因為我有很好的教育背景,而是因為我有大量的實踐經驗。接下來是我的故事。

一切的開始

我對 Android 開發的興趣可以追溯到 2007 年和 Android 的第一個里程碑版本。今年將會發布 Android 8.0,目前代號是 “O”。時間過得真快!

那時我沒有 Android 裝置,所以偶爾玩幾個小時的模擬器就感到滿足了。作業系統幾乎是裸機,但還是挺有意思的,我對 API demos 極度喜愛。作業系統映象的更新相當頻繁,看到它如何從方向鍵和鍵盤導航模式變化到基於觸控的使用者介面,是一件很有趣的事情。

從那以後發生了很多變化。我們親眼目睹數以千計 API 的新增;成百上千的 API 被廢棄或者介面發生改變;增加了對平板電腦和各種螢幕顯示尺寸的支援;“碎片門”(譯者注:指 Android 平臺的碎片化)和 support library(或者 libraries);Eclipse 的衰落和 Android Studio 的崛起;Android 智慧手錶、電視、汽車甚至是“物聯網裝置”的推出。

作為一名開發者,你需要跟上這一切。學習並緊跟最新技術的最佳途徑是實踐。我做過大量的 App 專案。有些是小型專案,從來沒有其他人見到過,有些是擁有成千上萬下載量的中型或者大型的 App。

現在所有東西都有對應的 App,這意味著要創造出真正令人興奮的東西要難得多。當我開始 Android 開發時,情況不是這樣的。我只需要找到沒有被系統 Apps 或者 Android 市場上數量有限的第三方 Apps 覆蓋到的應用場景,並自己為它建立一個就行了。

於是我那時候就這樣做了好幾次。

釋出到 Android Market

我在 2010 或 2011 年就開始在 Android Market 上釋出簡單的 Apps。我的 Apps 很快就收到數以萬計的下載量。Android Market 上 Apps 的數量有限(約等於 50,000),只要你的 Apps 的標題或者描述中有某些關鍵字,就可以很容易的實現使用者量有機的增長。真的是超現實的。

我的第一個有用的 App 實現攔截手機收到的 SMS 訊息的功能,同時彈出一個對話方塊,在其中顯示對方的聯絡資訊同時提供一個文字輸入框可用於快速回復。這是我在非 Android 手機上經常使用的一個功能,所以我也很自然的在 Android 手機中引入它。下面是它的樣子:


1-gARUvjEBiOPbPHe6CjBT0w.png
安裝在索尼愛立信的第一個 Android 手機上的 SMS 彈窗 App

很簡單,對吧?嗯,是的,但它使我接觸到 Android SDK 的很多特性:Intents、系統廣播、activities、window flags、content providers、聯絡人、圖片載入,當然還有隱藏/文件未記錄的 APIs(SMS)。

我有很多像這樣的小型個人 App 專案,而且每一個在某方面都是有用的。這些年也有過一些小的自由職業專案,這顯然也有助於建立個人聲譽。

在 2011 年夏天,我買了第一臺 Android 平板電腦,因為我要去度假,在飛機上需要消遣一下。我選擇了 Acer Iconia Tab A500。它是一頭野獸(譯者注:效能強勁),非常適合看電影。10.1 英寸的電容顯示屏,1280 x 800 畫素的解析度,NVIDIA Tegra 2 晶片組,1 GHz 雙核 Cortex-A9 處理器,1 GB記憶體,它甚至有一個全尺寸 USB 埠和 HDMI 輸出!

顯然,我需要某種漂亮且易於使用的使用者介面來瀏覽我的電影。我開啟 Android Market,出乎意料,沒有找到我想要的東西。應用市場上當然有檔案管理器,但我需要的是可以讓我實際觸控電影封面,並能夠充分利用平板電腦大螢幕的 App。像 XBMC(現在的 Kodi)或者 Boxee,它也是基於 XBMC 的,但有一個更好更簡單的使用者介面。

這是一個創造 Android Market 上缺少的 App 的大好機會。在 2011 年 7 月 14 日,Mizuu Movies 誕生了,後來因添加了對電視節目的支援而改名為 Mizuu

下面是它當時的樣子:


1-VJ__hv8oODjIUz9FbRaFMQ.png
安裝在我的第一個平板電腦 Acer Iconia Tab A500 上面的第一個版本的 Mizuu Movies

漂亮,對吧?好吧,也沒有很漂亮。但在當時,它實際上已經相當不錯。請記住,當時沒有人真正知道如何設計 Android Apps,更不用說 Android 上的平板 Apps 了。當時沒有 Material Design,所有人都是自己獨立設計的。儘管如此,我還是不斷進行設計的迭代,結果,Google 的設計負責人 Matias Duarte,Material Design 背後的男人,在 Google+ 上寫了一篇關於它的文章(https://plus.google.com/u/0/+MatiasDuarte/posts/HQaLCmxJbxp)。

有趣的事實:這個 App 中使用的 Gallery 元件現在已經廢棄。大多數人可能甚至都不知道它是什麼。它本質上是一個沒有檢視回收功能的中心鎖定(譯者注:每次滑動停止後,其中的檢視會顯示在中心)的橫向列表。可以想象,它的記憶體佔用和初次渲染時間會隨著列表項的增加而增加。因此,我很快了解了檢視回收的重要性以及像 view holder 模式這樣的技巧。當時很少人知道這種模式,在應用中使用它確實有種鶴立雞群的感覺。

開始繁忙的工作

Mizuu 釋出後,我開始花大量的時間進行 Android 開發,一年後,我在自己的 App 專案中(主要是 Mizuu)至少保持全職工作的狀態,而我在哥本哈根大學的 IT 課程基本處於荒廢狀態。

在接下來的幾年裡,我更多的關注 Android 開發,而較少關注我的學業,只處理最重要的作業和考試。對我來說,每週工作 80~100 個小時同時跟上學校的課程,這種情況並不少見。最終改變了我的生物鐘,和周圍人相反。我大概下午 5~6 點起床,吃晚飯然後開始工作直到第二天中午。洗個澡然後如此迴圈往復了好幾年,這感覺太棒了。


1-jqSaaRcY40AhoaqhRyhyVg.png
GitHub 上面 Mizuu 倉庫的貢獻記錄

這種緊湊的工作意味著我學習和提升的速度和大部分人不同。全職員工需要花一年才能完成的工作,我大概四個月就可以完成。換句話說,我一個人的工作成果等同於大約三個全職員工。這事真的發生了。

Mizuu 總共下載量超過 250,000 次,儘管這個 app 使用者面比較窄。在開發活躍的那些年它收到大約 1,500 個使用者評價,平均評級 4.7~4.9。

1-yyac8jbOCBKN6bo_eO0mNQ.png
2014 年 6 月平均累積評級為 4.7/5.0,來自 Google Play 控制檯的截圖

龐大的使用者基數意味著在那些年我每天收到來自成千上萬使用者的電子郵件和反饋。我的優點是通常在幾分鐘內回覆每一封電子郵件和評論。我聽取每一點反饋並實現使用者所要求的修改和特性。如果使用者遇到問題我很熱情的給予幫助。因此往往我與單個使用者的電子郵件往來就有幾百條訊息。

你可以想象,這很難跟上,我花了很多時間在上面。花在寫電子郵件上面的時間越多,花在開發上面的時間就越少,而我是一名開發者,所以這種情況並不理想。同時這也很有壓力,曾經我一度不停的思考著不能讓網上的這些使用者失望。我只好繼續提供高水平的支援,同時保持技術的領先,不斷的為使用者體驗和 App 設計設定新標準。

1-pQcaxMMKK3PbSbBHSMjTtw.jpeg
Mizuu 的最終迭代版本,執行在 Nexus 9 上面

高強度的工作和不斷湧入的新電子郵件開始給我帶來負面影響。我幾乎同時體驗到每一種可能的壓力症狀。我不想對其作過細的描述,但足以說明我的情況是不可持續的。不管怎樣我需要做出改變。

在這時候,我還在學校學習電腦科學,但我對學校感到厭倦,我想全身心投入 Android 開發。在 Mizuu 上我真的沒有賺到一分錢,所以全身心投入 Mizuu 並不是一個可行的職業發展道路。我需要一份工作,也需要離開 Mizuu 一段時間從而好好放鬆我的神經。

最終我停止 Mizuu 的一切開發工作,同時在郵箱中增加一個過濾規則來忽略所有關於 Mizuu 的郵件。Mizuu 目前作為一個開源專案託管在 GitHub 上(https://github.com/MizzleDK/Mizuu),有 800+ 的 stars。

第一份全職工作

2014 年 12 月,我收到了第一份全職工作的 offer,年薪是 420,000 丹麥克朗(約等於 65,000 美元)。我不敢相信有人願意付錢讓我去做我喜歡做的事情,這筆錢對我而言是一個全新的體驗。

我很想接受,但不得不考慮退學。這是一件可怕的事情,也是我一生中做過的最可怕的事情之一。然而,奇怪的是,這也是我真正覺得對我而言是正確的決定。

我相信接受正規教育和獲得學位對很多人來說是最好的選擇,但我一直都覺得正規教育不如實踐經驗,實踐能夠向別人展示你的能力和你擅長做的事情。

我接受了這份工作,很快就注意到和在學校學習相比,我更喜歡工作的一些原因:

  • 實踐工作比理論工作更令人興奮。
  • 當你結束一天的工作後你就自由了,令人難以置信-沒有作業。
  • 金錢提供了很多自由,而我渴望自由。

我在工作中幹得不錯,剛開始工作一個月就得到了第一次加薪。接下來一個月又一次加薪。兩個月後,我的年薪是 540,000 丹麥克朗(約等於 83,000 美元)。

一年後,我的年薪是 660,000 丹麥克朗(約等於 101,000 美元)。

我多年的辛勤工作和漫長的夜晚得到了回報。我有一份高薪的工作,我還沒有一次面臨需要正規教育的情況。

後來我發現最初的加薪是為了讓我在那裡工作。他們害怕我離職。這給我上了很重要的一堂課。作為一名熟練的軟體開發者,你是許多公司的寶貴資產,在這種情況下,你可以選擇想去哪裡工作。

這也改變了我的心態,我開始考慮供給和需求的概念。原來在我的國家有我這種特殊技能的開發人員是有限的,需求大大超過供給。因此,我能夠在多次談判中獲得更高的薪水。

跳槽

我在去年四月離開了我的第一份工作,僅僅在那裡呆了一年半。在接下來的一個月內我接受了 TDC 集團的一個新職位。

作為一名高階 Android 開發人員,在就業市場上是相當狂野的,像是一個搖滾明星。第一週,我被招聘人員聯絡了 10~15 次,幾乎可以選擇任何我想去的公司。

除了通過招聘人員的途徑之外,我還發現了一些感興趣的工作。通常情況下,你需要把你的簡歷傳送過去,但我有點自大,我不想在這樣的東西上面花時間。我的意思是,他們可以在 LinkedIn 上面查詢我,或者在 Google 上面搜尋我。我就是這麼跟他們說的。這樣起作用了嗎?是的,非常成功。我得到了兩個職位,最後選擇了 TDC 集團的提供的職位。

在我有空閒時間的那個月裡,我又開始做一些業餘的 Android 專案,我建立了一個簡單的開源 Android 函式庫(https://github.com/MizzleDK/IntroActivity)。我也開始一個基於 Mizuu 的新的開源 App ,名為 Jolly,我很快就告訴所有人。這是我直到今天還後悔的一件事。現實是自從開始新工作後,我就沒有時間來從事業餘專案的開發了。我讓許多相信我的人失望了。

現在和將來

我還在 TDC 集團工作。它是一家擁有數千名員工的大公司,你必須適應它。大公司通常比小公司工作節奏要慢得多。我傾向於把這看作一個挑戰。如果我能夠在一個大的組織中產生影響和改變,那就沒有什麼能阻止我了。

經過一年的工作,實際上我開始認為我已經產生很大的影響了。雖然現在言之過早,但我可以這樣說:作為丹麥最大公司之一的一名員工,我是它未來商業戰略的實質性改變背後的驅動力之一。在我開來,這是很酷的,而且值得我為之驕傲。

我知道我將繼續從事 Android 開發工作,只要我能跟上 Google 和 Android 社群提供的最新和最偉大的技術發展。當有一天跟不上時,我可能會轉向管理職位,在那裡我可以激勵和引導其他人通過一行一行的程式碼改變未來。

這篇文章的目的是幫助其他 App 開發者,同時較深入介紹我是如何開始 Android 開發的,以及如何由業餘開發者轉變為職業開發者。

相關推薦

輟學名企資深開發工程師 Android 開發者血淚史

原文:I’m an Android developer 作者:Michell Bak 翻譯:ASCE1885 審校:蘇宓,關注移動開發領域,尋求報道或投稿請發郵件[email protected]。 我今年 26 歲,作為一名

作為Android開發者你有過迷茫嗎

前言經常聽新進的小白問道,Android是不是飽和了?想寫一篇關於Android開發者憂慮的文章很久了,今天才提起勇氣寫。最近不管是在微信、QQ群,還是在各大部落格網站,都隨處聽得到Android開發不景氣的聲音,而現在的大資料、人工智慧的火爆程度,很大程度上對Android開發者不免有一定的影響,寫這篇文章

作為Android開發者你有過迷茫嗎?

前言 經常聽新進的小白問道,Android是不是飽和了?想寫一篇關於Android開發者憂慮的文章很久了,今天才提起勇氣寫。最近不管是在微信、QQ群,還是在各大部落格網站,都隨處聽得到Android開發不景氣的聲音,而現在的大資料、人工智慧的火爆程度,很大程度上對Android開發者不免有一定的影響,寫這篇

Android開發者的微信小程式填坑之路(2)

前言 上一篇是九月二十七日寫的,而這一篇我動筆的時間是十月十日(特殊的日子),中間相隔十三天——當然是因為國慶節。說老實話,這十三天裡面我都沒有碰和小程式有關的東西——畢竟學習小程式的開發也只是起於興趣,而平時的工作並不會涉及與其相關的東西——但是在這十三天裡

Android開發者的微信小程式填坑之路(1)

前言 首先要宣告的是,我是一名 Android 開發者,之前基本沒有前端開發經驗,甚至連 JS ,HTML 都是為了開發小程式現學的一些皮毛——所以文章中所提到的一些點也許在資深前端開發者看來只是小case,但是站在一個 Android 開發者的角度來看確實是

北京web開發工程師畢業我為什麼連生病買藥的錢都沒有

  記得畢業後的第YI年,我做了一年的銷售,因為工作需要,我每天要搭不同的車見不同地方的客戶。公交和地鐵就是我ZUI常用的交通工具,也練就出我在任何交通工具上都能睡著且不坐過站的本領。     像狗一樣活著,生存而不是生活。感覺就是很多大學生剛畢業

北京web開發工程師月薪3千到3萬我做了什麼

  我身邊有很多朋友,他們的起點很低,原本生活在社會的底層,只是用了一兩年或三五年就實現了人生的逆襲,過得很滋潤。   當然他們實現人生價值的方式各不同,有的是炒房,有的在前幾年自媒體公眾號紅利期就寫文章,還有的人是做抖音做小程式發家的。  

新濠環主管簡單介紹了“遊戲開發工程師”這職位的主要職責和社會現狀

主管 招商 玩家 大戶首選 工作性質編輯工作內容1、了解並致力於遊戲總體設計;2、配合主程序完成遊戲架構及各大功能的設計、開發、調試和其他技術支持;遊戲開發工程師遊戲開發工程師3、負責遊戲開發工具和運營維護工具的設計與開發;4、完成遊戲服務器端模塊代碼及相關文檔的書寫、優化對已完成代碼進行單元

40天緊急備戰PMP成功報名到通過考試次PASS!!!

image mark 一段時間 多次 再次 推薦 process http 安排時間 總體來說,我是幸運的,40天的時間,從網上了解到51CTO學院開設此課程(因本人有10余年的工作經驗,相對還是比較容易理解),到成功報名,離考試時間也就40來天,功

身為前端開發工程師你需要了解的搜尋引擎優化SEO.

網站url網站建立具有良好描述性、規範、簡單的url,有利於使用者更方便的記憶和判斷網頁的內容,也有利於搜尋引擎更有效的抓取您的網站。網站設計之初,就應該有合理的url規劃。 處理方式: 1.在系統中只使用正常形式url,不讓使用者接觸到非正常形式的url。 2.不把session id、統計程式碼等不必

身為前端開發工程師你需要了解的搜索引擎優化SEO.

ide 收藏 htm des 頻道 最適 主題 開發工程師 用戶 網站url網站創建具有良好描述性、規範、簡單的url,有利於用戶更方便的記憶和判斷網頁的內容,也有利於搜索引擎更有效的抓取您的網站。網站設計之初,就應該有合理的url規劃。 處理方式: 1.在系統中只使用正

北京房山前端開發工程師你撐不下去的時候就是成長的時候

  昨天和好朋友聊天,他準備辭職,在北京學個技能找工作,我很難想象他揹負著高額房DAI,家人的壓力,朋友的壓力,伴侶壓力的時候,支撐他堅持下去的理由到底是什麼?   成長。他告訴我當你承受不住壓力的時候,不要逃避,而是忍著大多數人都不能忍的事,哪怕是跪著堅持下去,你就

北京前端開發工程師今天你比昨天更竭盡全力嗎?

之前去面試一家公司,到了地方才發現微XIN聯絡的時候沒有問具體的面試地點,打了三個電話沒人接,微信過了十分鐘也沒有回,才發現不遠處有一撥人,一問知道他們也是來面試的,沒有被告知具體的地點,而且也聯絡不到面試官。   這時候一個人嘟嘟囔囔的說著不靠譜就走了,帶走了大半的人。我一

北京web前端開發工程師別讓這個習慣毀了你

  ZUI近,我發現周圍一些朋友有個共性:做事有激情,很積極,也有自己的目標,但是總是對待目標沒有進展,因為他們覺得現在做不能做得很好,反而就不去做了。 大家可能覺得這個理由很莫名其妙,但其實這是很常見的一種現象。大家都會報一些有意義有價值的網課在週末學習,但為什麼有的人報了

只給10分鐘面試java開發工程師網友:面試造航母工作擰螺絲

在如今的網際網路開發行業中,要說熱門的程式語言,大多數程式設計師都會說Java,Python,JS,PHP等較熱門的語言,而要說其中應用最廣泛的,非Java莫屬。如今的Java程式設計師職位,從薪資待遇上來看,年薪高的上至百萬甚至千萬,低的月薪或許不超過4k,就職業薪資跨度來說是很大的。而從專業程度

我是如何在2年內成為BAT年薪40W的資深開發工程師的?

身邊的師弟師妹經常問到: 非計算機專業出身,你是在2年內如何逆襲成BAT年薪40W的資深開發工程師的。其實很簡單——努力! 我16年畢業於普通的二本學校,非計算機專業出身,只因為對軟體開發感興趣,所以找工作的時候就一直投IT行業的職位。剛踏入這個行業時,以為突擊一下東拼西湊的面試材料,就能有

北京web前端開發工程師不走捷徑其實你已經選擇了彎路

  腳踏實地,一步一個腳印,不要想著捷徑,天上不會掉餡餅。這句大多人聽得都應該起繭子了,從小我們也是這麼被老師父母教育過來的,我昨天看到有人說了一句:“所有你以為的捷徑,ZUI後都變成彎路”     大家可能對捷徑有著深深的誤解,捷徑並不是真的等天

一個合格的HTML5開發工程師需要掌握哪些知識呢?

HTML5開發不同於網頁設計,是網頁設計的深化,更關注於網站如何互動和瀏覽。web前端開發人員使用的技術CSS和HTML、JavaScript,根據設計師設計的雛形來編寫程式碼。佈局,框架,瀏覽器涉及到不同的領域知識廣度,把網站介面更好地呈現給使用者。一個合格的HTML5開發工程師,需要掌握哪些知識

eclipse配置ant開發環境鍵部署專案

  ANT出現之前,編譯和部署Java應用需要使用包括特定平臺的指令碼、Make檔案、不同的IDE以及手工操作等組成的大雜燴。現在,幾乎所有的開源Java專案都在使用Ant,許多公司的開發專案也在使用Ant。Ant的大量使用,也自然帶來了對總結Ant最佳實踐的迫切需求。   

年薪百萬都招不到人的區塊鏈開發工程師到底憑什麼這麼火?

被稱作下一代網際網路技術的區塊鏈,最近半年時間可謂火遍全球,從幣圈、鏈圈到礦機圈,各種暴富神話都