前言
前不久寫過一篇博客,里面介紹了一位朋友由二本渣渣畢業在外包公司工作兩年多后,跳槽逆襲成功,現在進入了OPPO公司的故事。
后面很多朋友私信我,表示想要這位朋友的面經。
其實我覺得,大家對面經完全沒必要這么執著,因為面試官的提問都是根據你的學歷、工作經歷、意向崗位和簡歷信息來的,而這些,大家都是不一樣的,所以,面經里面除了部分技術題可以參考一下,檢測自己的知識掌握程度,面試過程讓大家稍微熟悉一下,其他的借鑒意義不大。
這里特別提醒那些平時不努力,喜歡臨時抱佛腳的同學:不要指望多看些面經就可以應對面試官的提問,你要知道,這是面試,不是學校的考試。面試是擇優錄取,不是過分數線就行。
你花幾天就能記下學會的東西,別人也能,甚至比你做得更好,這樣做是沒有優勢的。只有長久的努力學習和沉淀才是別人學不來的,真正屬于你自己的東西,也只有這個,才是真正能讓你制勝的法寶。在這里希望大家馬到功成,拿到心儀的offer。
1.Android開發的幾個階段
我的10年開發生涯中,有9年都是做Android相關開發,以我個人的經歷來看,Android開發市場分為以下幾個階段,也許不是特別準確,但我覺得值得參考。
第一階段 :混沌期
這個階段大概在2009到2013年,Android剛開始出現在大家視野中,當時的Java開發有點像現在的Android開發,不是很熱門,競爭壓力大,因此很多Java開發轉了Android開發,我就是其中一員。在09年到10年時有個說法,說只要你會Activiy的生命周期,你就可以通過面試了,雖然說得有些夸張,但還是有點道理,你懂得一些基礎的概念,一般公司確實是可以進去的。這個時候大家都是摸著河去開發,網上的資料還有書籍都比較少,第三方框架也很稀少。
第二階段 :發展期
這個階段大概在2013到2015年,是Android開發發展最快速的3年,各種培訓機構傾巢出動,培養了很多Android開發者。這個時候大量的第三方框架百家爭鳴,插件化、Hybrid,MVP等技術開始占據大家的視野。網上的資料大量產出,也出現了一些經典的Android圖書。
第三階段 :平穩期
這個階段大概在2016年到2019年,是Android開發從神壇跌落,回歸普通的階段,不是說他涼了,而是有更火的技術,這使得Android開發黯然失色。同時由于供大于求,很多Android開發開始轉行,培訓機構幾乎不培訓Android。這個時候出現了很多重量級跨平臺框架,組件化、Kotlin、Android Jetpack、移動AI等技術映入了我們的眼簾,Android進階三部曲誕生在這個時期。
可以說現在的形勢看似不容樂觀,但是暗藏生機。下面說說Android開發的轉行和堅守。
2.Android開發轉行指南
轉行與否在于你對自己的定位,如果你就是想賺多些錢,到30多就解甲歸田了,就直接選擇適合自己的熱門技術,比如前一陣子python相關的技術很火,那么你就可以直接轉過去,速度要快,這個就不在本文的討論范圍了。
如果你的定位就是想在技術領域多呆幾年,成為技術專家及以上,那么轉行就需要慎重考慮了,因為轉行大部分都不是質變。
2.1 轉行大部分都不是質變
一個開發的質變可以理解為在一個領域的大幅提升,或者是不相關領域的跨界,舉個例子:可以在Android領域由高級質變為了專家,或者是由一個高級開發升到了Leader,再或者跨界開始做了一些技術相關的培訓、演講、出書等等而被人所熟知。
凡是能助力35歲后進入上升期或者平穩期的都可以看做是一次質變,而轉行很少是質變,更多的是倒退回到原點重新出發,形象點來說,就是換了個不同的磚頭接著搬磚而已(高技術含量的除外)。因此我們更應該去追求質變,而不是平行或者倒退,一次倒退可以承受,多次倒退就很難在35歲后進入上升期或者平穩期。
簡單來說,就是無論你轉什么,你都必須成為專家和leader以上,才能保證你的職業生涯得以延續,轉行只是將這個步驟延時了,終究還是避不開的。
2.2 要轉就盡早轉
如果你覺得所在的行業沒落了,無法施展才華,或者興趣不在本行,想要轉一個自己感興趣的。那么就要盡早轉行。
這個圖不完全準確,但確實能說明一些問題。從圖中可以看出,大部分人在35歲前是在加速期,35歲后是上升或者衰落期。以Android開發轉前端來說,假設一個Android高級A同學轉行前端會變為前端初中級,這時從事前端的人都在加速提高,A同學要想趕超前面的擁有同樣加速度的人是不可能辦到的,這就導致他在轉行前期極為被動,A同學還要保證在35歲前成為前端專家或者Leader才有可能在35歲后不進入衰落期,當然這時A同學的Android基本也就荒廢了,很難成為專家。如果還想要在技術領域走的更遠,就不要輕易的進行轉行,如果想要轉越早越好,越快越好,因為其他的競爭者都在加速提高,沒人會停下等你的。
2.3 轉什么好呢?
有的同學說,別說那有的沒的,我就是想轉,那我也說說轉什么比較好。
我周圍轉前端和后端的比較多,都還算順利吧。整體來講,轉前端比較順暢,因為很多理念都是相通的,而且Android配合前端的話,在大前端方向還是很有優勢的,算是一個很好的組合和補充。未來發展也看好,進可以帶大前端團隊和移動端團隊,退可以開發前端和Android,成為某一個分支的專家,前景看好。
轉后端的發展一般,因為跨度相對大些,后端跟Android相關聯的知識點有限,你在開發的時候,此前的Android知識并不能很好的助力后端。職業發展并不是像很多人想象的那么美好,只有成為技術專家和leader才可以延長職業生涯。什么?當CTO?想多了,后端厲害的海了去了,這好比一個后端開發學了兩年Android就跟10年經驗的Android Leader爭移動總監一樣,你覺得他的勝算有多少?
當然還有其他的選項,有的炒作水分大大了,我就不提了。當然如果你名校出身,天賦異稟,你想轉什么就轉什么,當個真·全棧也是輕而易舉,天高任鳥飛嘛。
結尾
最后,針對上面談的內容,給大家推薦一個Android資料,應該對大家有用。
首先是一個知識清單:(對于現在的Android及移動互聯網來說,我們需要掌握的技術)
泛型原理丶反射原理丶Java虛擬機原理丶線程池原理丶
注解原理丶注解原理丶序列化
Activity知識體系(Activity的生命周期丶Activity的任務棧丶Activity的啟動模式丶View源碼丶Fragment內核相關丶service原理等)
代碼框架結構優化(數據結構丶排序算法丶設計模式)
APP性能優化(用戶體驗優化丶適配丶代碼調優)
熱修復丶熱升級丶Hook技術丶IOC架構設計
NDK(c編程丶C++丶JNI丶LINUX)
如何提高開發效率?
MVC丶MVP丶MVVM
微信小程序
Hybrid
Flutter
接下來是資料清單:(敲黑板!!!)
領取通道在這里給你們擺上了~
點擊我的GitHub免費獲取
1.數據結構和算法
2.設計模式
3.全套體系化高級架構視頻;七大主流技術模塊,視頻+源碼+筆記
4.面試專題資料包(怎么能少了一份全面的面試題總結呢~)
不論遇到什么困難,都不應該成為我們放棄的理由!共勉~
如果你看到了這里,覺得文章寫得不錯就給個贊唄?如果你覺得那里值得改進的,請給我留言。一定會認真查詢,修正不足。謝謝。
理由!共勉~
如果你看到了這里,覺得文章寫得不錯就給個贊唄?如果你覺得那里值得改進的,請給我留言。一定會認真查詢,修正不足。謝謝。
[外鏈圖片轉存中…(img-nYCVzmgk-1621506431588)]