2023给自己规划一个新的起点---Android车载工程师
Posted 不入流Android开发
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2023给自己规划一个新的起点---Android车载工程师相关的知识,希望对你有一定的参考价值。
想了很长时间,觉得自己还是需要花时间去学习一下android车载工程师需要掌握的技能知识,因为这部分的知识是我个人目前比较欠缺的,而且是目前工作上刚好需要用到的知识。我个人认为Android车载工程师的技能要求应该是这样的:熟悉C++开发语言,然后就是对通信协议有足够的了解。例如:蓝牙通信、usb通信,网络访问等等。
为什么要掌握这些知识呢?就我个人来看,主要原因有以下。
1.面试需要
相信很多人都知道,很多汽车企业都开始主打售卖新能源汽车,新能源汽车如今的市场行情相信大家也是有目共睹的。但你们可能不知道的是,新能源汽车的中控系统主要是应用的Android技术,而由于目前android岗位在市场的行业并不理想,就导致Android车载这方面的技术人员非常少,也就是我们所说的人才稀缺。如果说能掌握着方面的技术,那面试和薪资方面肯定不需要担心。
2.个人技术需要成长
每个人都应该给自己定一个好的,清晰地职业发展规划。这样才能清楚的知道自己目前所掌握的技术实在什么层面,最缺什么。因为我们不可能一直在一个地方不停的原地打转,我相信有很多从事Android开发的小伙伴都遇到过这样的情况,自己在一家公司工作了三五年,发现自己的工资和技术都没有提升。由于现在的薪资水平无法满足自己现在的生活要求,就会想着向领导提出加薪要求,但因为个人技术没有提示,领导肯定不会同意你的加薪申请,跳槽吧就更不可能了,所以就会陷入这进退两难的状态。所以,只有想要打破主要的困境,就只能往更高级的技术层面学习。
3.市场需要
在目前Android开发市场上,Android工程师的岗位已经逐渐进入了一个饱和状态。只有选择往更高级的阶段进阶,面试机会就会更大。由于目前Android的市场行情,很多人会选择目前非常热门的计算机专业学习,因此就导致能在网上收集到的Android相关的资料和教学视频就很少。很多时候在工作中遇到问题,都只能自己默默去解决。
Android车载学习分享
下面列出来的知识点都是小编通过请教很多技术大佬后整理出来的,掌握了这些知识点,基本在找工作方面不会有什么问题,而且你发现没有,通过面试我们能解锁的很多新的技能和知识点。接下来我们就一起学习,一起讨论和进步。
- usb通信
- 串口通信
- CarFramework框架
- CarLuncher
- Automotive系统
- SystemUI
- WindowDisplay
- 车载蓝牙通信
- 车载系统(HVAC)
最后分享一份我正在学习的Android车载开发学习手册,内容讲述了车载功能的实现内容,感觉挺受用的,大家可以看看,由于篇幅太长就不给大家展示了,大家可以访问下方链接获取。
Android车载开发学习手册
docs.qq.com/doc/DWEl0blBabXVvU2Nw
2022给自己一个新的规划新的起点---架构师
Java架构师应该是Java程序员技术追求的一个里程碑了,但是有些人工作十年也达不到,可是有些人工作三四年就达到了。这个是不是很气人,这个原因究竟在哪呢?可能大家会比学历,会比背景等,但架构师本身就是以技术来衡量的。所以还是要看真本事的,架构师比较抽象的来拆解能力其实就两方面 技术+项目
足够的技术栈深度和广度再加上足够的项目经验其实是完全可以驾驭架构的岗位的。那么你要提升的方向其实就很清楚了,首先项目经验等你工作了三四年肯定也积累了四五个项目了,所以项目这块难度其实不大。
提升的关键是你的技术能力,也就是技术栈的深度和广度,光有广度而没有深度是没用的,所以重点还是要提升技能的深度,而技术的深度提升是很耗费时间的,如果花了一年的时间才搞清楚了MyBatis的架构设计,那这个工作10年也达不到架构的要求了,这个就是要求你必须具备很强的学习能力。
说到学习能力,举一个简单的例子,如果你初中和高中学习都很烂,然后想在大学里面凭自己的能力要把每门课程都学的很好基本是不可能的,这时你只有把初中和高中落下的内容都补充起来,那么你大学的课程才能轻松驾驭。
所以和上面一样的道理要提升你技术的学习能力,你同样需要把编程语言需要具备的基础要抓起来,比如计算机网络,操作系统,数据结构,常用算法,JVM等等,非常非常的多,到这儿你可能又懵逼了,这么多的内容,怎么学?可能计算机网络还没看完,就把学习的动力给消磨没有了,对吧。这个其实也是阻碍很多人提升的关键了。
针对上面的问题怎么来解决呢?嗯,关键就是学习路线的设计了,为什么这么说呢?大家应该有这样一个感受,如果我是为什么了学什么而学习那么容易遗忘掉,比如为了面试突击了JVM,但是找到工作后,天天开发的内容又和JVM没有关系那么是很容易忘掉的。但是如果你学习的内容和你的工作有很强的关联或者是你学习下一个内容的前置内容,那么就会非常的有效果。
比如工作中我们会用到SpringCloud中的相关组件,比如Ribbon,这时你需要研究Ribbon的底层设计,Ribbon本身会用到的技术点(SpringBoot的自动装配,动态代理,Spring容器,负载均衡的各种算法,定时调度,RPC通信等等)那么要看到Ribbon的源码首先你需要搞定的是SpringBoot的自动装配的原理。如果你不清楚自动装配的原理,那么你连Ribbon的入口你都找不到。
然后我们在研究SpringBoot中,你又发现SpringBoot是基于Spring实现的一个脚手架,那么Spring容器又是一个非常重要的前置内容。
然后我们去看Spring的源码,你会碰到两方面的知识阻碍,第一是Spring本身的架构设计,第二个是查看源码必须具备的Java基础,Spring从04年发布第一个版本到现在Spring6.0快出来了,已经发展了18年了,所以你要把Spring的整体架构设计搞清楚难度还是非常大的,而且你本身的java基础都不扎实,那么难度进一步增大了。这时我们可以把这个难度拆解下来。
我们可以先学习MyBatis的源码,MyBatis的整体架构设计是非常简单的,就是一个ORM框架,难度更多的是在Java基础,这样一说其实我们在看MyBatis源码之前需要先补充查看MyBatis必须具备的Java基础了。
这时我们先把Java基础中的集合API,反射,注解,泛型已经相关的设计模式先搞定,然后在看MyBatis源码,在MyBatis源码中消化前面的基础,增强对MyBatis的理解,支撑Spring源码的学习。这样一来,一条路线不就出来了吗?
Java基础+设计模式–》SSM框架源码–》SpringBoot源码–》微服务组件源码 这样的路线就出来了,可以看到相关的学习都是环环相扣,最终又和我们的关系有很强的关联关系,这种学习不出效果都难了。
到这儿又得回到架构这个问题了,通过前面的一条路线的学习,你会掌握到最核心的基础内容,然后我们可以在拆解设计第二条路线,比如为了搞定自定义协议的RPC框架的设计,来拆解一条路线 计算机网络+操作系统 --》BIO + 多线程 --》NIO + 线程池 + 多路复用 --> Netty -->Tomcat Redis Zk Dubbo —>自定义协议RPC框架。
有了第一条路线第二条路线,你再设计对应的第三条路线,这样每条路线的交集会越来越大,那你对应的学习难度就会越来越低,学习的效率就会越来越高,也就是你的学习能力就会越来越强。那么与之对应的技术栈的广度和深度就能在有限的时间里面来实现了哦。而项目就在工作中来积累吧,
如此一来,Java架构的路线清楚了吗?
以上是关于2023给自己规划一个新的起点---Android车载工程师的主要内容,如果未能解决你的问题,请参考以下文章