前言
前几天我的一个大学学弟跟我吐槽他面试挂了,觉得现在的面试很卷! 听他描述完想起了之前我在知乎看到的一个问题----什么是高质量的Android面试! 当然质量高的面试,不仅仅针对于Android,毕竟,语言只是一个工具!
何为质量高?
有来有回,见招拆招。 所有的面试者都希望在自己的能力范围内,尽可能的展现自己的能力(我还不错,快给我发Offer吧),希望和面试官有的聊,聊的还不错。这就和大家刚开始找另外一半一样,共同“语言”,共同“话题”,是进一步深入的基础。 优秀的的面试官就像一个主持人,更多的是做一个引导,让你把才能展现出来。
例如:典型的夺命连环call。
面试官: 你在工作中有处理过性能优化么?
我: 有。
面试官: 那你都坐了哪些性能优化呢?
我: 启动速度、电量、页面、内存…
面试官: 看来你这块经验还是比较丰富的,那请你讲一下,你是如何减少APP启动时间?
我: …
面试官: ok,刚才你提到了内存优化,说一下你对内存泄露的理解。
我: …
面试官: …
我: …
面试官: 那内存抖动这块,你怎么看?
我: …
上面是一个典型的Android性能优化相关面试(大厂必问技能栈),不知道大家发现上面的套路了么? 优秀的面试官,一定是顺着你的话茬往下走,看看你到底有几斤几两,俗称的剥洋葱。 你会什么,我问什么。这就要求我们对自己“说的话,写的字”要负责。
说的话,为什么和面试官聊了没几句,就让我出门左转了?感觉面试官没有和我深入沟通的欲望,是不是气场不和,对我有偏见?或者招聘需求就是假的,过来调侃我的?
写的字,有没有同学投了简历石沉大海?明明感觉自己闭关修炼了1年,结果还是外包打电话找我面试;或者面试官就根本就没问我高分技能项,屠龙术无处可施。
面试问底层问源码就是卷?
为什么我什么话都想接?为什么我简历上什么都想写?OK,下面请大家看两条技能描述,你觉得他们能找到工作么?
如果我告诉你,凭借这两到三项技能,大厂Offer拿了个遍,惊不惊讶,意不意外?凭什么别人能凭借这两到三条,就能够拿Offer到手软。我写满了,连个面试机会都不给我?凭什么?
- 大家都懂Java/kotlin,但是程度一样么? 堆栈,方法区这些你日常工作中接触不到的内容,在你脑海里捣糨糊的时候,人家已经手动实现JVM核心模块了。
- 并发编程在你脑海里只是new Thread的时候,人家已经深入到操作系统级别去考虑并发安全和性能的问题。
- jekpack等开源框架,你会搭建,你会用(真的会么?);但是人家能够实现核心模块
- 你用的是别人给你造的脚手架,他是给你造脚手架的人,哪种人才更加稀缺?
IT找工作大家都说难,但是真的难么?5k,8k的工作还是搂搂就有的;难的是什么?我该如何成为金字塔尖,难得是我想在后面加个0。
但是为什么薪资和人数成的是反比?程序员基数这么大,这不就和大家高考一样么?择优录取! 为什么考试的时候,不会的问题,答案我抄问题也要写的满满当当,因为你不会,你心虚,我希望老师给我一个人情分。但是,不好意思,这里是职场,我希望你来,能给我创造剩余价值,这里没有人情可言。
然而当我得知跳槽是涨薪最好途径的时候,我发现外面高薪的需求,我怎么都匹配不上?这其实揭秘了一个IT职场中常见怪圈:对于你来说,我想要的是长足稳步的发展;而公司要的是,你在我这里,当好你的螺丝钉,你的后续,我可能没空也没能力管。
铁打的营盘流水的兵,这个矛盾,很难调和!
作为一名Android开发如何正确高效的提升?
如果想在写简历和面试的不心虚,这就需要你除了日常工作外,一定还要有计划的提升自己。能看到这里的,或多或少都会有提升自己的想法,让自己在职场里不再“心虚”,但是麻烦的在于:
- 我要工作,还要学习,时间怎么安排?
- 我该从哪里开始学?学什么?
- 为什么我学的时候,感觉还不错,学完之后就忘了,感觉是白给?
- 我该如何快速提升自己,年纪越大,感觉竞争力越低(我的目标除了星辰大海,还有升职加薪)
对标腾讯T9级Android高级架构师进阶路线图
下面给大家分享一份互联网快速提升的对标腾讯T9级Android高级架构师进阶路线图及对应的学习笔记和部分高频面试问题,看看你掌握了多少? 这些笔记和面试文档已经全部整理收录在我的Github上了,点击这来我的Github查看获取学习吧!
核心技术及面试题
Andorid从底层基础到架构成长笔记目录展示
Android开发必备底层技术模块
BATJ这些大公司都要求有扎实的Java语言基础和虚拟机底层原理,这一个部分就是Android开发中最常用的java语言相关知识。在这个里面,结合了Dex文件加密实战和热修复手写实战来让大家深刻体会Java语言体系的重要性以及在Android开发中的地位
FrameWork源码与UI及jetpack模块
在Android中,Framework泛指系统架构层。Framework的中文意思是“框架”,在软件开发中通常指开发框架,在一个系统中处于内核层之上,为顶层应用提供接口,被设计用来帮助开发者快速开发顶层应用,而不必关心系统内核运行机制,通常Framework都会隐藏main函数等应用程序必须的组件,开发人员只需把精力放在功能代码的实现上。说简单点,Framework具体的工作也就是为android应用开发的开发人员提供了一系列的服务和API的接口。
FrameWork源码解析: Binder+Handler+Zygote+ AMS+ PMS+WMS
UI底层源码深度剖析篇:UI绘制流程+ LayoutInflater + 事件分发机制+ 属性动画+ViewGroup+ View
Jetpack实战及大厂架构演进实践手册
Android性能分析与优化实战方案
作为一名Android程序员,说实话要做好性能这一块,真心不容易。*为什么这么说? 是因为需要接触的知识实在是太多了, Android 是一个整体,牵一发而动全身,不是说只懂一个模块就可以做好。这份*《Android性能分析与优化实战进阶手册》,让每一个想进入 Android 系统开发和优化这个领域的人,能通过这份笔记手册快速入门,同时也算是对知识的一个梳理,查漏补缺,终身学习。
- 内存优化
- 布局优化
- 启动优化
- 卡顿优化
- 稳定性优化
- 电量优化
- 线程优化
- 瘦身优化
Andorid高级音视频实战模块
- 基础语法
- H264视频编码
- H265编码原理及应用
- MediaCodec集训
- Opengl与音视频编解码
- 实战
Android架构师必备源码框架精讲解析模块
Gradle高阶实战模块
- Groovy语法
- Gradle Android插件配置
- 实战
Kotlin入门到精通模块
Flutter2.0混合式开发模块
- Dart语法
- Flutter2.0之UI
- Flutter2.0进阶
- Flutter2.0优化
- 实战
鸿蒙2.0系统开发模块
- Ability组件
- 分布式任务
- 事件总线
- 鸿蒙线程
- UI自定义控件
总结
同样是做Andorid,有的人工作5年工资没变化,有的人工作2年就已经年薪50W。这个现象或许前几年还不明显, 但随着近几年后端技术疯了一般的快速发展,曾经那个只要会个UI啥的就能走遍天下的时代早已不在了,人才水平的分化也越来越明显。
竞争永远都是非常残酷的,毕竟成为一个架构师不是那么容易的,一个架构师的成长来自于机会,努力及天分 !在这个后浪奔腾的时代,不管是你是刚工作还是有几年开发了,我相信以上这份Andorid从底层基础到架构成长笔记你都需要阅读阅读,希望能够对你的职业发展有所帮助。这些笔记和面试文档已经全部整理收录在我的Github上了,有需要的小伙伴点击这(这这这)来我的Github查看获取学习吧!