安卓開發淺談——寫在2016年底

為何要寫這篇文章?

寫這篇文章,主要的目的是總結和展望。現在我只能算入門水平,不過只要我堅持下去,總有一天能夠窺見一些門道。我希望記錄自己的成長歷程,日后再看,能夠有一些感悟。因此,這篇文章寫給未來的我。

2016.12.27

我從上Web課程開始自學安卓,到2016年1月11日找到第一份實習,算起來將近1年開發經驗了。
這一年下來,確實學習了不少東西。現在的我,能夠使用大部分第三方庫,對安卓SDK有一定了解,知道如何追蹤和解決bug,知道MVP架構和一些簡單的設計模式。
當然,這篇文章不是談論我會什么,而是要探討安卓開發到底有哪些重要的東西,以及如何進階。

Java

Java是安卓采用的語言。我個人覺得安卓對Java的要求并不是很高,Android Studio的各種自動完成和提示也很好用。當然,對Java的基礎語法還是必須要掌握的,Core Java這本書就可以選擇性地看一看基礎的內容,我覺得寫的很不錯。

輪子

在碼農界,一直有這么一個爭論:到底要不要自己造輪子?
在我看來,不造輪子,但得知道輪子的原理。假如沒有現成的,自己要能夠造出來。或者能拿別人的輪子來修改。
所謂輪子就是現成的庫或者別的工具。一般而言拿過來就用,很方便省事。但是假如到此為止,不去讀源碼搞清楚實現原理,等到自己有需求又沒有現成的東西,就無計可施了。
一般自己從無到有造一個庫比較困難,而對他人的庫進行修改以滿足自己的需求相對而言更為可行。第三方庫的學習和分析是一個費時費力的過程,但回報也同樣豐厚。
而自己做庫是一個非常耗時耗力的事情,再牛逼的人也不可能說所有輪子都自己造。
所以,結論就是不強求自己做庫,但是在能使用第三方庫的基礎上,要有修改第三方庫滿足自己需求的能力。

源碼

在讀第三方庫的過程中,當然會遇見很多問題。一個非常明顯的問題就是缺乏對安卓源碼的了解。說到安卓的源碼,又是一個坑。因為安卓的源碼可不小,有各種類和函數,更別說更加底層的東西和安卓的快速發展變化。總而言之這個東西很重要,但要學會取舍,不可能眉毛胡子一把抓,而是要重點學習那些常用的東西。

經驗

安卓開發的經驗是一個很玄的概念,可能有些人3年經驗就和一些人的5年經驗差不多水平,因此用經驗判斷水平是不太可取的。
話雖如此,要是說1年經驗能強過5年經驗,這個概率還真的蠻小的。找工作的過程中我發現大部分安卓全職工作都要求至少3年經驗,這明顯是一個分水嶺。
為什么我選擇安卓開發呢?因為看到自己的app會有一種成就感,尤其當這個app被用戶認可的時候。當然要是有人指責這個app,不免有點跳腳。app就像自己的作品一樣。
回到經驗這個話題,年份是一個因數,而干了什么又是另外一個因素了。大學4年自己自學安卓,畢業了就可以聲稱有4年經驗嗎?工作和自己自學完全是兩碼事情。
總的來說,是要積累經驗,但同時也不能不學習,重復干一些工作來堆年份。現在技術發展日新月異,如果沒有不斷學習的能力,二十年經驗也白搭。

技術與進階

假設有了可觀的經驗,保證不會在簡歷就被刷下去的時候,就可以來看看那些待遇優越的安卓崗位都要些什么東西,可以向這些方向努力,雖然說到時候肯定會變,但總有不變的東西。
算法和系統設計,這兩個是進大公司必須的東西,和安卓開發說實話關系不算很大,算是額外要求。
登上玻璃門,看看三番的一些高級安卓工程師崗位的要求和報酬:

Imgur - Rating 4.7 - Senior Android Engineer $130k-160k

What You Bring To The Table:

  • B.S. or higher in Computer Science, or equivalent in work experience
  • Minimum of 3+ years Android development experience
  • 5+ years of general software development
  • Enthusiasm for Android development
  • A passion for beautiful, pragmatic code paired with a strong sense of product design
  • Love for the Imgur product

這個公司的要求屬于比較寬松的那種,其實就一個工作年限。5年的general SDE是什么鬼,真的有人轉行安卓嗎?
當然,符合要求不代表就能進去,人多位置少,bar自然就高了,但是至少有過機會。

RideCell LLC - Rating 4.4 - Senior Android Engineer $140k-160k

About You:

  • B.S. or M.S. Computer Science or related experience
  • 3+ years of object-oriented software development experience
  • 2+ years mobile application development at the user interface and system levels
  • Proficient knowledge of the android SDK
  • Gradle build system expert & ability to maintain multi flavor project
  • Java OOP expert
  • Proficiency with Google API's (maps, places, gcm most important)
  • knowledge of RESTful implementation in android and communicating with backend API's
  • Proficiency with android lifecycle events in activities and fragments
  • At least 1 application deployed in the play store
  • Must be willing to work on-site in our San Francisco office

Great to Have:

  • Knowledge with 3rd party injection libs (android annotations, butterknife, dagger etc...)
  • Knowledge of android development patterns, preferebly MVP or MVVP
  • Knowledge of websockets
  • Other languages to know (python, js, cocoa, swift, c++)

這個工作總算提出一點實質性的要求了。經驗相對而言寬松一些,2-3年的完全夠了。要求會谷歌的一些API,這些說實話不是很難,都是拿來就用的東西;然后加分項有依賴注入庫,MVP,websocket,還有一些其他語言。這些東西倒是值得注意。
更多的也不再貼上來了。當然,要明白這里的要求很可能不是完全準確的要求,因為有些公司可能要求喜歡寫的寬松一些,但是實際上Bar很高;或者有的公司要求寫一堆,但很多都是可有可無的。
很多知識,假如沒有遇到過,說實話并不好去學習,因為太寬泛了。比較靠譜的就是安卓相關的一些東西,然后擴展一些就是ios開發可以了解一下。至于個別公司的一些特殊要求,沒有必要特意去追求,因為適應面太窄。

總結與展望

CS的領域如此廣闊,現在大熱的一個是Machine learning,還有Big data,安卓和ios開發也還可以。對于初出茅廬的我來說,太多選擇卻相當于沒有選擇,先在一個領域里面積累足夠的經驗,做到站穩腳跟,生存下來,才能再談其他。因此未來幾年之內,我會選擇繼續干安卓開發。好在我個人而言還算喜歡這個工作。至于以后的事情,現在說很多也沒有用,只能說多多努力吧。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,963評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,348評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,083評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,706評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,442評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,802評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,795評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,983評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,542評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,287評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,486評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,030評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,710評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,116評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,412評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,224評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,462評論 2 378

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,720評論 25 708
  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,476評論 2 45
  • 文/孤鳥差魚 風中的炸彈 沒有定時 你別擔心 我只是為了嚇唬 不知足的鬼 吃著碗里 看著鍋里的癖好 得改掉
    孤鳥差魚閱讀 202評論 0 2
  • 大學校園的某個午后,小池在球場上踢球,一腳不慎將球踢中了路過某班班花小芬的腦袋,小池趕忙上去準備道歉,卻不料小芬二...
    平底鍋先生閱讀 343評論 0 0
  • 最近倆寶在家帶著到公司開早會有點難度,今天出門發現還有十五分鐘九點,到公司也是不能打卡,索性沒有上班,去幼兒園...
    倆寶的媽咪閱讀 179評論 2 2