組件化與插件化的差別在哪里?附面試題答案

前言

本人水平有限,此文針對于自認為技術實力對標阿里P7,百度T5或者以下的讀者,如果是大佬不小心點進來了,可以自行點x略過。文內并不會出現每一家公司的面試過程細節,主要目的在于幫助大家怎么在像我一樣菜的情況下在這寒冬拿下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爭移動總監一樣,你覺得他的勝算有多少?

當然還有其他的選項,有的炒作水分大大了,我就不提了。當然如果你名校出身,天賦異稟,你想轉什么就轉什么,當個真·全棧也是輕而易舉,天高任鳥飛嘛。

3.Android開發堅守指南

看到這里,如果你是想轉行的話就不要看下去了,我們來說下Android如何提升競爭力,成功堅守,悶聲發大財!

3.1 選擇一個細分領域

Android現在細分的領域非常多,前面說到的有應用開發、逆向安全、音視頻、車聯網、物聯網、手機開發、SDK開發和智能電視盒子開發等等,在這些領域中選擇一個并不斷深入。比如音視頻,在9年前我剛入門Android時,音視頻就是悶聲發大財了(PC端),工資高的令人乍舌,現在在移動端,音視頻更是青出于藍,是一個非常好的選擇,如果想要入門可以看看何俊林《Android音視頻開發》。

3.2 盡量學習半衰期長的知識

知識半衰期指的是:隨著知識更新周期變短,知識裂變速度加快,一個知識落伍的周期。知識半衰期長的職業都是越老越值錢的,比如英語老師和外科醫生,知識更新慢并且幾乎不會落伍。這一點我們程序員是絕對比不了的,我們的大部分知識半衰期是比較短的,一個框架短短幾年可能就會被淘汰,這也導致程序員需要不斷的學習新知識,而我們每個人的時間和精力是有限的,那么根據知識半衰期,有策略的進行學習就變得尤為重要。

3.3 做減法,盡量專精Android技術

現在的社會,技術分工越來越細,越細就意味著大部分企業(小作坊除外)需要專精的人才(最好是精通一門通多門)。你會發現身邊脫穎而出的技術人大多都是靠一門技術,卻很少看到會一堆技術卻都不精通的冒出來。好比在武俠的世界,高手對決都在同一個時間段拿出看家武學,如果看家武學都不精,分分鐘被虐,剩下的武學也無需拿出來獻丑了。聯想到現實版本就是去大公司面試Android,結果Android技術了解不深,被各種虐,剩下的前端技術、后端技術、python什么的,面試官也沒興趣了解了。

所以并不是你會的技術越多越好,一定要做好減法,先專精Android技術,然后再去學別的技術。

3.4 順應時代,擁抱大前端

在專精Android技術的前提下,順應時代,學習前端和跨平臺的知識,擁抱大前端。這個是比轉行更保險也更平穩的做法,進可攻,退可守。

分享一個Android開發高級進階腦圖,堅守的同胞們可以參照圖中來補充、擴張知識

最后

在此為大家準備了四節優質的Android高級進階視頻:

架構師項目實戰——全球首批Android開發者對Android架構的見解

鏈接: 點擊文檔免費獲取!

附相關架構及資料

image.png

//docs.qq.com/doc/DSkNLaERkbnFoS0ZF)**

附相關架構及資料

[外鏈圖片轉存中…(img-3zbbNOZY-1618563338735)]

領取獲取往期Android高級架構資料、源碼、筆記、視頻。高級UI、性能優化、架構師課程、NDK、混合式開發(ReactNative+Weex)微信小程序、Flutter全方面的Android進階實踐技術,群內還有技術大牛一起討論交流解決問題。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386688.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386688.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386688.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

json轉成類對象轉成xml全過程

類對象 XStreamAlias("ROOT") public class ProjectBase implements BaseConverterBean {private ProjectInfo PROJECTINFO;public ProjectInfo getPROJECTINFO() {return PROJECTINFO;}public void setPROJECTINFO(ProjectInfo pROJECTINFO) {PROJECTINFO pROJECT…

細數Android開發者的艱辛歷程,全網最新

前言 這篇文章主要是分享今年面試心得,現已就職于某大廠有三個月了,近期有很多公司均已啟動秋招,也祝大家面試順利,獲得理想的offer! 之前找工作的那段時間感想頗多,總結一點面試經驗和人生思考分享給大家…

Mac安裝nginx配置過程

mac電腦系統重裝了,記錄一下安裝nginx的過程: 1、打開終端 2、安裝Command Line tools xcode-select --install 3、安裝brew命令 1 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 4、安裝…

2.用Python套用Excel模板,一鍵完成原亮樣式

from xlutils.copy import copy import xlrd import xlwttem_excelxlrd.open_workbook(日統計.xls,formatting_infoTrue)tem_sheettem_excel.sheet_by_index(0)new_excelcopy(tem_excel) new_sheetnew_excel.get_sheet(0) new_sheet.write(2,1,12) new_sheet.write(3,1,18) new…

面試中Handler這些必備知識點你都知道嗎?面試真題解析

前言 前幾天去參加了一場面試。面試的題目大多很基礎,有一道關于埋點的問題,面試官問我如果不用第三方SDK進行埋點,自己埋點的話,如何減少埋點對業務代碼的入侵。 當時沒想太多,就說創建一個 BaseView 類&#xff0c…

kubernetes對象之deployment

系列目錄 簡述 Deployment為Pod和ReplicaSet提供了一個聲明式定義(declarative)方法,用來替代以前的ReplicationController來方便的管理應用。典型的應用場景包括: 定義Deployment來創建Pod和ReplicaSet滾動升級和回滾應用擴容和縮容暫停和繼續Deploymen…

面試加分項!Android權限處理,手慢無

2021新的一年,開啟新的征程,回顧2020,真是太“南”了。 從年初各大廠裁員,竟然成為一件理所應當的事情,到四月份 GitHub 上“996.ICU” 引起了大家的共鳴。即使我們兢兢業業“996”,但依舊難以抵御 35 歲時…

面試加分項!程序員工作2年月薪12K,附架構師必備技術詳解

最近看到群里看到一個女生,講述了她從開始選擇Android,經過非常努力的學習和掙扎,然而最后面對當前的環境卻不得不放棄。看完以后真的非常替她感覺惋惜,如果早幾年入行可能結果會比現在好很多,但可惜,這就是…

物理機實時監控UI之grafana(SimpleJson)+gRPC

在時序分析及監控展示領域,Grafana無疑是開源解決方案中的翹楚,其靈活的插件機制,支持各種漂亮的面板、豐富的數據源以及強大的應用。典型的面板有Graph、Text、Singlestat、PieChart、Table、Histogram等,支持的數據源有ES、Grap…

Uva679

Dropping Balls UVA - 679 思路&#xff1a;和之前做的開關燈的題類似 只需要看小球的編號奇偶。 找規律就行&#xff0c;一直想推導出這個規律滿足所有情況&#xff0c;但是沒有想出來怎么推。 1 #include<bits/stdc.h>2 #define maxn 1053 #define LL long long4 usi…

面試大廠應該注意哪些問題?算法太TM重要了

前言 很多次小伙伴問到學習方法&#xff0c;我也很想寫這樣的一篇文章來跟大家討論下關于學習方法這件事情。 其實學習方法這個事情&#xff0c;我沒啥發言權&#xff0c;因為我自己本身都是沒啥方法可言的&#xff0c;就瞎折騰那種&#xff0c;但是大家想看這樣的一篇文章&a…

Spring Boot 與 Java 對應版本,以下表格由官方網站總結。

Spring Boot 與 Java 對應版本&#xff0c;以下表格由官方網站總結。 官網&#xff1a;https://spring.io/projects/spring-boot#learn https://docs.spring.io/spring-boot/docs/{verion}/reference/htmlsingle/ Go to [9. System Requirements] Sping BootSpring Framew…

Java開發環境之RabbitMQ

查看更多Java開發環境配置&#xff0c;請點擊《Java開發環境配置大全》 捌章&#xff1a;RabbitMQ安裝教程 1&#xff09;下載安裝Erlang 官網下載&#xff1a;http://www.erlang.org&#xff0c;有時比較難訪問進去 Windows版下載&#xff1a;http://www.erlang.org/download/…

Linux下GitLab的安裝及使用

一、初始GitLab GitLab是利用Ruby on Rails一個開源的版本管理系統&#xff0c;實現一個自托管的Git項目倉庫&#xff0c;可通過Web界面進行訪問公開的或者私人項目。 與Github類似&#xff0c;GitLab能夠瀏覽源代碼&#xff0c;管理缺陷和注釋。可以管理團隊對倉庫的訪問&a…

面試大廠應該注意哪些問題?隔壁都饞哭了

前言 說起程序員人們的第一印象就是工資高、加班兇、話少錢多頭發少。再加上現在科技互聯網公司太吃香&#xff0c;bat、華為小米等公司程序員加班情況被廣泛傳播&#xff0c;程序員用生命在敲代碼的印象刻在了很多人的心里。 與其它行業一樣&#xff0c;凡是有高級和普通&…

元類(metaclass)

目錄 一、引言二、什么是元類三、為什么用元類四、內置函數exec(儲備)五、class創建類5.1 type實現六、自定義元類控制類的創建6.1 應用七、__call__(儲備)八、__new__(儲備)九、自定義元類控制類的實例化一十、自定義元類后類的繼承順序十一、練習一、引言 元類屬于python面向…

Linux環境下使用rpm包安裝GitLab

1.安裝依賴環境 [rootgitlab ~]# yum install curl openssh-server postfix cronie 2.下載安裝GitLab包 我安裝的環境是Red Hat Enterprise Linux Server release 7.4 (Maipo) GitLab下載地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7 以上是清華大學開源…

面試字節跳動Android工程師該怎么準備?深度解析,值得收藏

前言 Android高級架構師需要學習哪些知識呢&#xff1f; 下面總結一下我認為作為一個資深開發者需要掌握的技能點。 1.Android開發的幾個階段 我的10年開發生涯中&#xff0c;有9年都是做Android相關開發&#xff0c;以我個人的經歷來看&#xff0c;Android開發市場分為以下…

以JSONobject形式提交http請求

總結一下設置圖標的三種方式&#xff1a; &#xff08;1&#xff09;button屬性&#xff1a;主要用于圖標大小要求不高&#xff0c;間隔要求也不高的場合。 &#xff08;2&#xff09;background屬性&#xff1a;主要用于能夠以較大空間顯示圖標的場合。 &#xff08;3&#xf…