前言
昨天和一个百度的朋友闲聊,他说根据最近招聘 Android工程师的经验来看,大部分候选人在工作 3 年的时候基本都会遇上一道难过的坎。
为啥这么说呢?
因为工作一段时间之后,大部分工程师都已经完成了最原始的基础技能积累,大家的技术水平差距集中在语言、框架、工具的使用熟练度上。而这个差异不会很大,就算大,也很容易追赶。
但如果一个工程师一直停留在业务开发,一直沉浸于工具的使用熟练度,那他自然就会遇到能力瓶颈。这个瓶颈就是前面说的那道坎
跳过去了,你就发现了一片新天地,可以在下一个区间里继续生长。
跳不过去,就可能不停地在原地打转。
在我的追问下,他给我谈了谈他对大厂招聘的认知。
大厂需要什么样的 Android 开发?
1. 所有大厂或者说所有公司都会看重候选人的教育背景以及工作背景,说不看重的那绝对是客套话。
如果候选人之前已经有过一线大厂的工作经验,或者学历背景还不错,那绝对是大大的加分项。
2. 很多候选人都会花很多精力在简历的优化上,其实没必要。
对于字节、阿里这样的公司,他们基本都是 15 个人里选一个。看简历的时候,很简单,直接看关键字,那些虚头巴脑的东西就免了。
3. 从实际情况看,如果你做研发,那首选还是应该去大厂。
第一,大厂更尊重技术,也愿意为技术人付更高的薪水。不吹不黑,大部分小公司老板根本意识不到技术的重要性。
第二,大厂有更大的用户量,更好的技术应用场景。
4.对于一个优秀的安卓开发来说,首先摆在第一位的还是他/她作为一个软件工程师的基本素养。
无论你是做前端还是后端,最后定义你的优秀程度的还是作为软件工程师的基本素养,学习能力和编程能力,还有设计能力。
5. 进入大厂后,候选人相当于给自己建立了一个秘密通道。
因为进入大厂后,和你一起共事的小伙伴也有可能会跳槽,他们找到的新机会大概率会更好,这时候,如果你也优秀,那自然会被裹挟进来。
听完之后,我特别触动。于是也和他回顾了下自己这些年的招聘经验。
确实,3 年或者 5 年绝对是一个初中级 Android 工程师和高级Android工程师的分水岭,能越过那座山丘,那他马上就会进入一个全新的发展阶段。
很多初中级开发者卡在20K这个门槛始终迈不过去,想要学习又不知道该怎么着手,大多从做上层应用开始,到做 Framework 层就浅尝辄止。
那么,作为Android 开发者,该怎样规划自己的学习路线,然后一步一个脚印的向中高级进阶呢?
接下来我想分享一下这些年来,我对于技术一些归纳和总结,和自己对作为一名Android高级开发者需要掌握那些技能的笔记分享,希望能帮助到有心在技术这条道路上一路走到黑的朋友!
《高级UI》
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。
不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!
《Framework精编内核解析》
- 深入解析Binder
- 深入解析Handler
- Dalvik VM 进程系统
- 深入解析 WMS
- PackagerManagerService
《360°全方面性能调优》
1、设计思想与代码质量优化
2、程序性能优化
- 启动速度与执行效率优化
- 布局检测与优化
- 内存优化
- 耗电优化
- 网络传输与数据储存优化
- APK大小优化
3、开发效率优化
- 分布式版本控制系统Git
- 自动化构建系统Gradle
4、项目实战
- 启动速度
- 流畅度
- 抖音在APK包大小资源优化的实践
- 优酷响应式布局技术全解析
- 网络优化
- 手机淘宝双十一性能优化项目揭秘
- 高德APP全链路源码依赖分析
- 彻底干掉OOM的实战经验分享
- 微信Android终端内存优化实践
《Android第三方框架》
本篇内容要点(1042页)
- 热修复设计
- 插件化
- 组件化框架设计
- 图片加载框架
- 网络请求框架
- RXJava 响应式编程框架设计
- IOC 架构设计
- Android架构组件Jetpack
《NDK模块开发》
主要内容包含:
- NDK 模块开发
- JNI 模块
- Native 开发工具
- Linux 编程
- 底层图片处理
- 音视频开发
- 机器学习
《Jetpack架构组件从入门到精通》
- Android Jetpack - Navigation
- Android Jetpack - Data Binding
- Android Jetpack - ViewModel & LiveData
- Android Jetpack - Room
- Android Jetpack - Paging
- Android Jetpack - WorkManger
- Android Jetpack架构组件之Lifecycle
- Android Jetpack Compose 最全上手指南
- ......
《高级JetPack强化实战》
- 初识ConstraintLayout之实现登录页面
- Navigation实践之实现APP主框架以及Navigation的相关介绍
- 使用 Coroutines, Retrofit, Moshi实现网络数据请求
- 使用 TabLayout,ViewPager2 ,RecyclerView实现实现歌单广场页面
- 歌单页面MVVM架构改造及其ViewModel和LiveData的使用介绍
- Paging实现加载更多和下拉刷新,错误后重新请求
- vlayout嵌套横向RecyclerView和Banner 实现主页的展示,自定义Moshi的JsonAdapter
- Room数据库实现增删改查和事务处理
- Room数据库Migration
- ExoPlayer进行视频播放的实现
- ......
《Flutter技术进阶》
- 为什么Flutter是跨平台开发的终极之选
- 在Windows上搭建Flutter开发环境
- 编写您的第一个 Flutter App
- Flutter开发环境搭建和调试
- Dart语法篇之基础语法(一)
- Dart语法篇之集合的使用与源码解析(二)
- Dart语法篇之集合操作符函数与源码分析(三)
- Dart语法篇之函数的使用(四)
- Dart语法篇之面向对象基础(五)
- Dart语法篇之面向对象继承和Mixins(六)
- Dart语法篇之类型系统与泛型(七)
- Flutter中的widget、
- ......
由于篇幅限制,展示了部分内容截图,需要这些文档资料的,可以点赞支持一下我,然后【点击这里】免费阅读下载哦
最后
今天的文章可谓是积蓄了我这几年来的应聘和面试经历总结出来的经验,干货满满呀!
如果你能够一直坚持看到这儿,那么首先我还是十分佩服你的毅力的。不过光是看完而不去付出行动,或者直接进入你的收藏夹里吃灰,那么我写这篇文章就没多大意义了。所以看完之后,还是多多行动起来吧!
可以非常负责地说,如果你能够坚持把我上面列举的内容都一个不拉地看完并且全部消化为自己的知识的话,那么你就至少已经达到了Android高级开发工程师以上的水平,进入大厂技术这块是基本没有什么问题的了。