当我在写的时候,整个招聘市场还有很多Android开发找不到工作
同时也有很多企业招不到Android开发
真是个奇妙的时代~魔幻的时代~
细数Android开发经过的这些年,有混沌初开的“乱时代”,有争相探索的“大航海时代”,有百家争鸣的“兴时代”,有初感凛冽的“寒时代”,有步入成熟的“稳时代”,有春风再起的“复兴时代”
早期Android还处于萌芽状态,根本没有那么多的开发手册开发资料,也没有什么规范不规范,大家都是盲人摸象似的一点一点摸索,市场整体招聘要求堪称为零,那时说得上“Activity”就可以想想什么时候拎包入职了,是“乱时代”
Android经过一段时间的摸索,并且有了成功的例子以后,第一个听到风声的是资本,当时的互联网公司都想通过一个小小的APP实现上市梦,市场也涌现出一大批Android培训机构,市场人人转Android,人人学Android,是Android开始火爆的“大航海时代”
经过一段时间的发展,整个Android逐渐形成一套自己的技术体系,很多技术都被开源出来,各厂也开始纷纷探索Android的一些黑科技,并将之开源,许多优秀的App、开源框架、开发者在这个时间阶段涌现,大厂鼎立格局初步形成,是“兴时代”
开源库越来越多,Android开发的门槛也慢慢降低,早前的培训机构也快速生产了一大批Android开发,市场开发者水平参差不齐。而很多优秀的创意也都一一被实现过了,即便再有也难逃资本的压制,市场已经被各大厂的全家桶式APP占据得差不多了,很多互联网公司开始发现,写个APP不难,难的是引进流量,而问题在于,市场已经没有多少“干净”的流量了……于是乎,合并、退场,“大航海时代”的那些小船,终究还是抗不过大风大浪……寒冬已至,“寒时代”降临
寒冬之后,招聘市场先于人才市场一步冷静下来,开发者们明显可以感知到企业招聘门槛的提高。市场是个很奇妙的东西,人人都会就等于人人都不会,当我发现开源库原理问不倒你的时候,我可能要拿Framework、性能优化开刀了……可惜,即便是知道这些,但技术可不是一朝一夕就可以提升上来的。借此时机,许多公司开始进行“换血”,优化技术落后的、补充功底扎实的,“滥竽充数”终究还是没逃过市场的洗刷,这是“稳时代”
寒冬终其原因还是市场饱和导致的薄暮,而一些基础设施的技术飞跃、社会事件的背后,或许也隐藏着不一般的机会。物联网、人工智能的发展引出一批Android开发细分领域;5G普及、疫情反复直接造就了音视频开发在移动端再度崛起;车企“缺芯少魂”刺激了车载开发走上风口,在手机应用开发这块,或许Android略显乏力,但各个细分领域如百花争艳一般绽放,Android将在各个细分领域迎来又一春,是“复兴时代”
就未来发展来说,当然是选择一个正处于时代风口的细分领域深耕最佳
像Android开发可以分为:应用开发、Framework开发、逆向安全、跨平台开发、游戏开发、音视频开发
进一步衍生可以再由领域又分几类:
Android手机、电视/电视盒子、IoT、车载、VR/AR等
简单举例比如说:
应用开发:手机应用、电视/电视盒子应用、物联网应用、车载应用、VR/AR应用等
Framework开发:手机厂商、电视/电视盒子系统、物联网系统、车载系统、VR/AR系统等
……
其他很多就不再一一举例了,其实把这些全部列出来,很容易就会发现,技术都是一样的技术,各端略有差异,归根结底只是Android开发借由不一样的落地端又重新火了起来
手机应用开发转去做物联网应用、车载应用就不会做了吗?不见得吧
手机系统开发转去做物联网系统、车载系统就不能做吗?更加扯淡
底层的东西是更新迭代非常慢的,很多时候我们往往着眼于什么新框架、新技术,其实扒开他们那层绚丽的外衣,底层的东西还是那些
此前像很多人说的“Android凉了”“Android没前景”主要还是体现在应用开发层面,并且大部分说这样话的开发者,或许还够不上一个所谓的“合格的Android开发”
也听过很多朋友说要转行,白白浪费了几年经验不说,那些转Java、转前端、转人工智能的难道就没竞争了吗?难道就不卷吗?同样要从基础学起,你猜企业是要刚毕业的大学生还是二十七八的你?
不论是哪一行,初中级人才永远都是供大于求的,而高级人才往往都是极其短缺
与其说考虑转向哪一边,不如埋头提升自身技术,扎实基础
当达到高级之后,就会发现人才到哪都吃香!
人才永远是呈金字塔型分布,越往上层走,人越少,上层20%的人要占据80%资源
路漫漫,共勉!
这里也分享一些珍藏资源,从面试简历模板到大厂面经汇总,从大厂内部技术资料到互联网高薪必读书单,以及Android面试核心知识点(844页)和Android面试题合集2022年最新版(354页)等等,这些资料整理给大家,希望踩过的坑不要再踩,遭遇的技术瓶颈一次性消灭。
如果需要的话,可以顺手帮我点赞评论一下,直接私信我【笔记】免费领取!
Java部分,像序列化、注解、泛型、反射、JVM、编译时、动态代理等等,都是非常重要的,尤其是越往上走越重要,在大厂中是必问的版块,很多中小厂以及校招也会着重考量Java基础
Kotlin部分,刚推出的时候大家都不太愿意学习,现在官方新文档、Sample代码、大厂面试、实际工作都已经纷纷转向Kotlin了,作为官方主推的语言,国外基本都已经转换过来了,但国内稍显慢半拍。一直到现在,Kotlin已经是一个很明显的趋势了,很多新技术都需要结合Kotlin一起使用,还不上车就晚了。
Jetpack+Compose,Jetpack可以让我们可以摆脱不断造轮子抄轮子的窘境,而Compose作为Google I/O 2019 发布的新的声明式的UI框架,目前API已经稳定,构建、预览等开发体验也已经趋于完整,新的声明式UI开发也已是共识,必将是日后App极为重要的编程方式。
Framework,作为框架层,给我们提供了很多的API,但很多机制都是封装好直接用的,如果不深入了解原理的话,很难在这基础上进行优化。Framework的学习不是一蹴而就的,但是当你慢慢理解的时候,就会发现很多日常工作中的问题都迎刃而解了。更何况,兄弟们,面试必问啊!!!
也可以继续向下,Framework开发、SDK开发,不过岗位会比应用要少一点,不过薪资和稳定性会更好一点
如果需要的话,可以顺手帮我点赞评论一下,直接私信我【笔记】免费领取!
性能优化,这块就是软件工程的深水区,也是衡量一个开发技术水平的标准。因为想要搞懂性能优化,必须对各种底层原理有着很深的了解,各种case要有非常丰富的经验,不管是APP从0到1还是从1到N,都离不开性能优化。也是面试中最容易考验出个人技术功底的部分
很多大厂的性能优化专家,真的是可以当大爷……
开源框架+架构设计,各个开源框架,除了会用之外还要主动学习其底层原理、设计思想,一方面是因为面试中经常会问到,一方面也是因为在大厂中,很容易遇到需要自己写框架的情况。相关的原理以及对架构、设计模式的理解,在高工岗是不可或缺的。
退可高工,进可架构,但作为架构师的话,对于知识的广度又有要求了
车载,最近很火的细分领域,也可以说是Android的又一春,对于底层要求会更高一点,涉及Framework固件烧写、System UI、桌面程序、底层 Window Display、底层协议USB通信、硬件以及串口通信、蓝牙通信
身边也有转车载的,薪资很香!
音视频,这块自疫情那段时间就突然走上了风口,一方面是突发事件带来的风口,一方面也是5G的带宽带来更好的体验,各厂纷纷入局,但由于音视频这块自学比较困难,很难招到合适的候选人,自然薪资也是水涨船高
涉及C/C++、JNI、H.264、H.265、OpenSL、OpenGL、编解码、网络协议、WebRTC、FFmpeg、IJKPlayer、librtmp等等
跨平台开发,跨平台框架主要解决的是UI和部分业务逻辑的跨平台,和平台相关的比如蓝牙、平台交互、数据存储、打包构建等都离不开原生支持。
所以跨平台和原生是共生的关系,如果原生都没了,我们还跨个der?该不会跨WinPhone吧?
跨平台作为一个老生常谈的问题,主要是增加代码复用,减少我们对多个平台差异适配的工作量,降低开发成本(可能主要是为了企业降本增效~)
尤其是在中小厂,成本有限的情况下,或许会更加倾向于原生开发掌握Flutter的情况
很多大厂也都已拥抱Flutter,掌握Flutter不仅可以帮助到面试,也可以拥抱跨端开发
如果需要的话,可以顺手帮我点赞评论一下,直接私信我【笔记】免费领取!