Android开发想加入阿里,该怎么做?P7以上要达到什么水平?
Posted 初一十五啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android开发想加入阿里,该怎么做?P7以上要达到什么水平?相关的知识,希望对你有一定的参考价值。
前言
之前老听人说加入了阿里,成了P6-P7,属实有点羡慕,不过看似光鲜亮丽的外表下,背地里肯定付出了常人不及的努力。
于是就有了今天的故事,专门去咨询了之前的一些前辈。送给那些跟我一样,没名校背景没大厂背景,但是想进阿里(或其他大厂),又有点迷茫不知该如何前进的人。
💡一丶P6,P7如何?
阿里技术岗以 P 定级,一般校招 P5,社招 P6起。 以前 P6还分 高级 与 资深,现在都统一成高级了。那么P6有何标准?首先技术达标的情况下要拥有独立负责某个或多个模块的开发工作的能力。
哪有人要问了,P7呢?看一下图:
P7 一般薪水在 70-100 万之间,超过 100 万的屈指可数,除非你是阿里 5 年以上的老 P7,薪资构成包括现金和股票:
- 现金部分:大概的月薪应该是 35K-45K 左右,年薪在 50-60W 左右;
- 股票部分:平均每年能拿到 25 万左右,不过最近股票行情下跌,所以对这部分收入影响较大。
所以一个新阿里 P7 的平均年收入是 80 W 左右,如果是待了 5 年以上老 P7,妥妥年薪 100 万往上,这金钱的味道,真 TM 香!
💡二丶如何能达到P7?
1.专业能力
计算机专业要学习的内容非常多,专业能力包含很多,光android
还不够,还有比如数据结构、算法、Linux
、网络编程、计算机原理等等等等等等,由于我做的是 Android
,那么这里就偏向 Android
来讲解了。
由于开源的精神以及互联网的伟大,我们能够不费吹灰之力使用世界上顶尖的三方库,比如很火的 RxJava
、EventBus
、Retrofit
、OkHttp
、Glide
等等等等。只要添加一行依赖,就能起飞,有一种自己掌握了全世界最牛逼的技术的错觉。
我见过不少人,也看到不少 人的Github 的库里写着 MVP+RxJava+Glide+Dagger
等等类似的内容,他们可能一线开源库用得很六,但是一旦问及原理,可能就一脸茫然,说不太上来。
这其实就是停留在使用阶段的表现。
你要知道,一个库再牛逼,这个牛逼是属于作者的,而不是你。
站在面试官的角度讲,这么多人都会用,又凭什么选你呢?对吧?!
这时候如果你懂一些原理,那你就能比别人更优秀一些了。
那么,怎么去深入理解原理呢?阅读源码!
其实所谓的原理,全都写在源码里面,毫无保留。
有的人一听看源码就会慌,不知所措,代码那么多,怎么看啊?
其实阅读源码也是有很多诀窍的,这里分享几点心得:
- 首先要会用。你要知道这个库是干什么的,掌握它基本的使用方法;
- 有目的性。针对某个功能有目的的去挖掘,这样就不会在茫茫源码中迷失方向;
- 不需要看完所有细节。有的人阅读源码爱钻牛角尖,非要把每一个小细节都搞清楚,以至于看了一天可能都没看明白主干是什么。
是不是有点道理?比如 EventBus ,你发送个 Event 怎么就传递到了订阅的地方?带着这么个小问题有目的的去看,会轻松很多。
阅读源码确实不简单,但是不要着急,从简单的源码开始,慢慢提升,学会抽丝剥茧,层层递进,逐渐培养阅读源码的习惯与能力。
相信我,学会看源码,对专业能力的提升有巨大的帮助。
2.技术方向
-
有自己的技术体系,精通的领域的技术
举个例子,比如说精通音视频方面。是否懂H264
编码器流程详解,Mediacodec
解码H265原理?Mediacodec
源码分析,opengl
采集点和绘制点,视频变速详解,WebRtc
环境搭载和编译等等 -
知识广度,别人知道的你要知道的更多更深层次,别人不知道的你要知道。比如现在火热的音视频技术,车载技术。
-
知识深度,每个技术点的各种原理,源码,定位问题的思维。
-
要有很强的分析和解决问题的能力。及时发现问题并且解决。
-
系统架构方面足够强的设计能力。
3.业务技能
需要具备的业务技能:
- 具有协调多条业务的技术 PM 能力,有较强的技术整合能力,对负责业务上下游链路技术风险具备识别能力,且能提供合理的满足各方诉求的总体解决方案,并且能拿到业务结果。
- 有结构化思维和定义指标能力,贴合业务大目标清晰地理解自己团队的定位和核心发力点,具有架构演进和规划落地的能力,并取得有数据佐证的业务结果。
- 负责一小型业务线,能够拆解产品需求并进行平台化沉淀,同时具有反向驱动业务发展
4.保持学习,学会积累
前面说了多看源码的同时在平时工作过程中也要时时刻刻保持学习,只有自己不断的进步才能不被退下来。如果不能保证每天,起码要保证每周学习一次。加深自己的理解,扩大知识面。
有人要问了,怎么学?如果你的技术达到一定层次,就会深刻意识到自己那个模块的不足之处,比如Framework
底层原理方面有点欠缺,就能知道是AMS
原理还是PMS
原理还是WMS
机制。但是可能稍微薄弱一点的,我建议第一手多看看官网的介绍。
比如之前刚出现的车载工程师,说实话我对这方面目前还是一知半解。能找到的资料也是寥寥无几,所以我去看了官方的介绍才不算是一无所获。起码可能了解到这项技术最基本的知识。
又看官网介绍又看源码,说实话也是不够的,因为官网介绍很多只是一个最基础的介绍,并不深入,要学以致用,不妨自己维护一个GitHub,把自己平时的误到的写下了,就会发现平时觉得懂了东西想要输出出来发现并不是想象中那么轻松。比如我自己的GitHub属于更新面试类的文章,目前才1000stars。
或者可以请教一下身边对整个Android体系内容比较了解的前辈,看看别人从那些方面入手,那些地方需要学,需要巩固,加深。
比如之前收集到的一份Android体系内容,算是比较全面了。视频+文字的结合版更好是理解吸收权当参考。
包含(视频+文字):
Android
基础-性能优化-Framework
-compose
开源项目-音视频初中高-架构-车载-Flutter
-Kotlin
-Harmony OS
+音视频详细文档。
一丶T10级Android工程师必备基础技能
涉及: 注解、泛型、Retrofit
、架构动态编程技术原理、Butterknife
、JavaSSit
丶虚拟机丶并发内存丶Synchronize
丶并发原理之线程池丶数据序列化
二丶T10工程师核心优化能力
涉及: 启动优化、内存优化、启动优化速度、卡顿优化、布局优化、崩溃优化、应用启动全流程(源码深度解析)等内容.
三丶Framework
涉及:Framework
通信、Framework
底层服务、Framework
事件机制等内容.
四丶Compose(开源项目)
五.音视频开发
涉及:C和C++基础语法,H264
编码基础和进阶,H265
编码原理和应用MediaCodec
硬解码,Media
内核源码,WeChat
视频通话。初级-中-高
附带音视频开发预习资料文档
涉及:视频区,视频压缩,音视频同步,FFmpeg
,OPenGL
,OpenSL ES
,抖音美颜滤镜,交叉编译,视频变速,FFmpeg
实现音视频同步
六丶Android资深架构师
涉及:Arraylist
,Okhttp
,Retrofit
,图片加载,Dagger 2
,MVC
.MVP
.MVVM
,Jetpack Room
七丶Android车载工程师
涉及:Android Auto
,汽车媒体应用,构建Android Auto
即时通信应用,构建车载导航和地图注点应用,构建Android Automotive OS
视频应用,测试Android
车载应用,分发Android
汽车应用,适用于汽车的Google Play
服务,Android Automotive OS
的通知.
八丶Flutter高级工程师
涉及:Dart
语法,Flutter
动画丶组件丶网络请求以及Flutter3.0
简介。
九.Harmony OS
涉及:Ability
组件,分布式任务,事件总线,Harmony OS
线程,UI
自定义控件
十丶Kotlin相关
涉及:对象丶类丶继承丶变量丶常量丶拓展函数等20多个内容**
P7虽香,也需要一步一个脚印干掉 95% 的同学,你也能成为那 5% 的精英。😆
以上是关于Android开发想加入阿里,该怎么做?P7以上要达到什么水平?的主要内容,如果未能解决你的问题,请参考以下文章
Android开发三年,连续两次晋升,成为了阿里P7技术专家
从入门到精通系列Android高级工程师路线介绍,阿里P7亲自教你