这些面试题你会吗?为什么有人说 Android 开发不再吃香?最全的 BAT 大厂面试题整理
正文
Android 行业主要问题是初级 Android 太多了,会写 xml 和 Activity 的程序员太多了,初中级程序员面临很大的竞争,现状也就偏于高级开发者。越来越多的初中级 Android 程序员找不到满意的工作,甚至根本找不到工作!所以很多人觉得 Android 要凉了,甚至不惜转行,从头学其它技术。
现在的 Android 招聘要求,已经不是多年之前的要求了。
移动端开发需要怎么增强自己的式?
首先明确一个观点,那就是移动开发是必须有的,只要平台在原生开发就必须有。但是浑水摸鱼的日子没有以前那么好过了,因为小程序和各种跨平台开发让企业有了更多的选择。
所以正如我在 《有关于未来 Android 开发从业方向问题?》 和 《做 Android 开发的,想转行,如何选择呢?》回答的一样,如果你还想做界面开发,那么增强你的能力广度是必须的,比如:
小程序的上手并不难,同时还有诸如
uni-app
、taro
、chameleon
可以帮助上手。通过学习
React-Native
来认识前端开发,学习React
、CSS
、JavaScript
等相关能力,只要你会RN
其实等同于你已经学会了小程序。了解学习诸如
Flutter
、PWA
、WebAssembly
等新的技术迭代。
当然,最后不要落下数据结构与算法、计算机原理等基础知识,这些才是程序员后期的竞争力,如果想要把握更多的当然你也可以学习后端开发相关的知识。
怎么学习
其实我更希望做无论是哪端的开发,都可以让自己的成长为工程师而不是单纯的 Api 码农,很多时候大家都在忧虑学多而不精,但是抚心自问学得少的自己,现在有“精”吗?
知名博主《一个程序员的五年总结,给你不一样的角度》写过的一段我很喜欢的话:
因为技术是具备可迁移性的,比如:学习 Dagger
和 Spring
的时候;学习 React Native
和 Flutter
的时候;学习 Kotlin
和 JavaScript
的时候。这样的选择可以让我们节约成本的过度。
在增加自己技术储备的同时,也开拓自己的眼界,我个人更希望自己的生涯是去 “精通” 开发,而不是定位于某种语言或框架, 在《能力陷阱》 一书里提过:
“我们很乐于去做那些我们擅长的事,于是就会一直去做,最终就使得我们会一直擅长那些事。做得越多,就越擅长,越擅长就越愿意去做。这样的一个循环能让我们在这方面获得更多的经验。而它就像是毒品一样,我们被它深深吸引,因为我们的快乐和自信都来源于它。它还会让我们产生误区,让我们相信我们擅长的事就是最有价值的且最重要的事,所以值得我们花时间去做。” ——《能力陷阱》
所以我会保持去关注新的行业动态,了解一些新兴技术实现,即使只是知道它的名字和作用。危机感和兴趣让我有动力这么做,当然,在某个领域保持深度还是有必要的,毕竟吃饭的东西不能丢, 但是保持学习和好奇心,是让职业生涯更有生命力的保证:
“同样地,每年我们都会看到,在一个新的技术发布后,曾经在某一领域具有权威的领导者失去他的领导地位,这正是因为日常工作占据了进行策略性思考的时间,从而让你没有时间去做一些更有价值的事。” ——《能力陷阱》
最后推荐:《曾经优秀的人,怎么就突然不优秀了》这篇文章,如文中所说:
在经历了前期的野蛮生长后,优秀的门槛会越来越高。而想要成为一名优秀的 Android 开发,你需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样~。
学习福利
【Android 详细知识点思维脑图(技能树)】
其实 Android 开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。
这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司 19 年的面试题。把技术点整理成了视频和 PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
由于篇幅有限,这里以图片的形式给大家展示一小部分。
详细整理在 GitHub 可以见;
网上学习 Android 的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
评论