年关将近,很多小朋友都在考虑换个坑蹲蹲,我也不例外,实际上我定义的初中高级开发对应如下:
- 初级工程师 1-3年
- 中级工程师 3-5年
- 高级工程师 5年以上
初级工程师:前两年基本都是——多处理一些场景,也就是扩展广度,在两年到三年的这一年是很关键的,需要扩展广度的同时,还要扩展深度,不过这个深度具体是大到什么程度,就根据个人情况了。
举个例子:我用了一个框架,这个框架怎么用?哪种场景使用?为什么这么用?原理是什么?
中级工程师 :由于我自己已经工作了三年,现在可以说是中级工程师了,一般来说现在是个“坎”,因为我觉得该分方向了:
- 跨平台:实际上跨平台也就是RN了,这个感兴趣的小伙伴自己搜索。
- 全栈工程师:可以胜任任何的前端工作,只要是前端工作,就没有“盘”不下来的。
- SDK开发:也就是现在很多的驱动开发,自定义framework开发,这个需要对Android系统架构以及实现细节有深刻的了解,现在很多大厂商就是需要sdk开发高级人员,嗯,这个高级。
- 应用层开发:实际上我们刚入门都是在应用层开发的,但是说实话仅仅是上层的单一开发的话,以后的压力会越来越大,因为RN以及全栈都来希望分一杯羹,坏消息是flutter也来了。。。所以这种情况下,还是对于我们比较危险的,因为你从SDK转上层可能是容易的,但是反过来难度可想而知。 总之一句话:如果你开发上层,那么不要把鸡蛋放在一个篮子里!
- 智能家居(人工智能):实际上智能家居一直说要火,但是怎么多年也没有想象中的那么火,但是这里我给智能家居单独列出一条,非常重要的就是,在开发过程中,你可以跟自家底层C工程师的驱动交互数据,这一块也是挺叼的。
高级工程师:两年后补充。。。。。。。
对于Android端开发的态度,我觉得现在Android开发技术已经非常成熟了,对于初级甚至是中级工程师挑战是非常大的,但是永远都是缺少Android高级开发工程师。很多人说Android市场不行,那是针对技术不过硬的人,对于技术过硬的人,Android市场还是非常火爆的。
最近一直在面试,也陆续收到了offer,关于面试的问题,我大致罗列了一下:
- 项目框架 (ARouter)+ 代码框架 (MVVM)+ 网络访问框架(框架原理)
- Android 6.0到9.0的适配爬坑总结
- View的绘制流程
- Activity四种启动模式
- findViewById源码
- OkHttp原理分析
- APK瘦身
- 内存性能优化
- View的事件分发机制
- View的加载流程(源码)
- Glide4.0使用与原理分析
- EventBus3.0原理分析
- Fragment懒加载
- 理解setContenView的源码
- Activity启动流程
- Application创建流程
- Binder机制
- handler机制
- AsyncTask原理分析
- HandlerThread以及IntentService分析
- LeakCanary内存泄漏原理分析
- Dialog + PopupWindow原理以及区别分析
- SharedPreferences原理分析
- 线上异常捕获
- 自定义View以及ViewGroup
以上是最近在面试过程中被问到的问题,与君共勉。
关于Android开发进阶,
推荐大家一个课程:Android开发高手课
推荐大家三本书:《Android开发艺术探索》《Android进阶之光》《Android进阶揭秘》
Android开发学习交流群: