
惯例,先简单陈述一下自己的,91年生人,164年三本毕业后在深圳工作,末流小公司,工资13k,无房,无车,无户口。
那时候感觉生活也还行,父母有退休金,我基本上不用太 *** 心,女朋友在一起很久了,很体贴,没有怎么要求我。
本来生活就这样一帆风顺下去我就满足了,但是去年初,女朋友家里出了一些事情,一点积蓄全给她了,后面疫情来了,家里开始催婚了,我感觉到了压力。
目前的工资无法满足生活,虽然这些年来有一点点的提升,但是,房价物价涨的更快,于是我决定跳槽。
从去年年底开始瞎投简历,回顾了一下,一共投了33份简历吧,只有3家企业感兴趣,还0家约面试。
(一开始还非常悲伤,后面……后面就习惯了)
接着就厮混了一阵子,就忽然间意识到不管是经济的寒冬,还是我的寒冬,都来了。
一 、Java 后端在我写过的 《AndroID程序员的Java后台学习建议》 中提到,因为 Java 的先天优势,AndroID 开发者在转岗选择时,转 Java 后端占据很大比例,因为 Java 后端岗位需求量较大,同时技术迁移成本也较低,比如现在 Java 开发中应用最广泛的 Spring全家桶:
作为 AndroID 开发者,如果你使用过或了解过 Dagger,那么理解和使用 Spring并不难。通过各类注解如 @Contorller、@Service、@Configuration等去标明类的用途,通过@autowired 去注入使用的方式,相信会让你倍感亲切。
如果说 Spring 是类似 Dagger 的注入和管理实体的容器框架,那么 SpringMVC 就是基于 Spring功能之上添加的 Web 框架。
对于 AndroID 开发而言,MVC 肯定是不会陌生的,实际上后台开发人员通常就是写个 Controller 提供个 Model给你。而 Hibernate 和 MyBatis 都是持久层框架,属于能方便使用如 MysqL 等数据库的 ORM 框架。
如果说 Spring 和 SpringMVC 是 AndroID 开发者较友好的选择,那么 Spring Boot 则是你的“绿色通道”。 Spring Boot又称之为全家桶,因为它集齐了各类常用的开发框架,同时降低了 Spring 开发的门槛,更是简化了各种配置过程,而且 Jetbrains大家庭支持它!所以现阶段而言,个人认为 Spring、SpringMVC、SpringBoot 是 AndroID 开发者学习入门 Java Web 的不错选择。
当然,作为 AndroID 开发者转后端,最大的问题就是开发思路和领域的变化,你需要关注的不再是当个设备上的业务逻辑,更需要关注的是大数据、并发、性能优化、分布式等等,这些都是转岗的你需要从头开始的,这是无可避免的成本。
二、大前端大前端在我理解中,一般包括 Web 前端、客户端、跨平台的集合。对于 AndroID 开发而言,继续从事 UI 与用户交互逻辑也是一条谋生之道,但是受市场红利结束、开发成本等影响,拓展能力成为大前端开发也是趋势之一。
在我的 《我的移动开发春季历程》 说过:随着各类移动跨平台的兴起,在 ReactNative、Weex、Flutter、 等框架的加持下,AndroID开发的能力已不再局限于 AndroID 领域,而各大厂商近些年也针对跨平台的不足进行逐步完善。
但这并不意味着原生开发的“没落”!无论哪种跨平台的加持,最终都离不开你的原生系统能力。大潮过去后更多是淘汰“裸泳”,而如今的市场愈发趋向大前端,竞争之下我觉得移动开发的边界可以更广。
所以有 AndroID 平台存在就会有需求,而利用跨平台开发,能让我们的能力更快的覆盖到 iOS 平台,同时如 ReactNative、Flutter、Weex 等,能够让你逐步接触并熟悉 Web 前端的世界,之后如 uni-app 、myvue 、Chameleon 、Taro 等框架还能丰富你的小程序能力,从而让你的业务能力走向新的巅峰。
AndroID 平台和 iOS 平台最不同的就是它的开源和影响力,多年后的今天,AndroID 已经不仅仅代表着手机平台,在电视、机顶盒、楼宇安防、自动售卖、广告展牌、智能家电、车载等领域都已渗透并精进,就像我 AndroID QQ 群内的小伙伴,现在还从事 App 开发的反而不多,但是在以上领域继续耕耘 AndroID 的反而很多。
5G 时代下物联网领域很有可能具备新的机会,华为的鸿蒙智慧屏、无人驾驶的车载平板、其他各类利用 AndroID 实现的无线智能平台,这都是 AndroID 开发者可以耕耘的机会。
当然,光是学习或者“纸上谈兵”,最终只会徒生焦虑,所以‘学习最好的方法就是“动手”,开源项目是你最好的学习方法,自己动手练练,才是你“转岗”的最好尝试。
尾声评论里面有些同学有疑问关于如何学习material design控件,我的建议是去GitHub搜,有很多同行给的例子,这些栗子足够入门。
有朋友说要是动真格的话,需要NDK以及JVM等的知识,首现**NDK并不是神秘的东西,**你跟着官方的步骤走一遍就知道什么回事了,无非就是一些代码格式以及原生/JAVA内存交互,进阶一点的有原生/JAVA线程交互,线程交互确实有点蛋疼,但平常避免用就好了,再说对于初学者来说关心NDK干嘛,据鄙人以前的经历,只在音视频通信和一个嵌入式信号处理(离线)的两个项目中用过,嵌入式信号处理是JAVA->NDK->.so->MATLAB这样调用的我原来MATLAB的代码,其他的大多就用在游戏上了吧,一般的互联网公司会有人给你公司的SO包的。
至于JVM,该掌握的那部分,相信我,你会掌握的,不该你掌握的,有那些专门研究JVM的人来做,不如省省心有空看看计算机系统,编译原理。
一句话,平常多写多练,这是最基本的程序员的素质,尽量挤时间,读理论基础书籍,JVM不是未来30年唯一的虚拟机,JAVA也不一定再风靡未来30年工业界,其他的系统和语言也会雨后春笋冒出来,但你理论扎实会让你很快理解学会一个语言或者框架,你平常写的多会让你很快熟练的将新学的东西应用到实际中。
初学者,一句话,多练。
让你很快理解学会一个语言或者框架,你平常写的多会让你很快熟练的将新学的东西应用到实际中。**
初学者,一句话,多练。
总结由于文章篇幅问题复制链接查看详细文章以及获取学习笔记链接:前往我的GitHub
以上是内存溢出为你收集整理的Android高级架构进阶之数据传输与序列化,逆袭面经分享全部内容,希望文章能够帮你解决Android高级架构进阶之数据传输与序列化,逆袭面经分享所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)