当前位置: 首页 > news >正文

嵌入式 学习

自学嵌入式当然可以,但别做单片机,单片机有基础就够了,别太深入。

先上结论,嵌入式方向太多了,学生时期最重要的是把某一方向的基础学扎实。嵌入式主要方向有Linux应用开发,Linux驱动开发,BSP,操作系统开发,Android应用开发 。当然,嵌入式远不止这些方向,但是这些方向,挣钱快。

其中,最建议Linux应用和驱动,或者BSP(其实BSP和驱动也没差太多),这些方向,是最容易和AI接轨的,别一看到AI就劝退,而且AI肯定是不能自学的,但是通过嵌入式在工作中接触AI,给自己多一个选择,多好,题主才研一,对自己要求高点挺好的。做嵌入式,也别太底层,太硬件,除非你能成长为芯片人 才,否则太偏硬件没什么好处的

我觉得题主最想问的是学嵌入式以后能干啥,能去哪些公司,做什么工作吧,下面分享一下我的看法。

一定要学Linux,而且最好以Linux应用开发作为你嵌入式学习的起点(当然,硬件基础和Linux命令行基础就不说了,是起点开始前就要掌握的),应用开发比较好找工作,可以去一些通信公司做路由器或交换机的应用,或者一些AI公司做一些交互软件,因为大部分AI算法最终会搭载在嵌入式设备 上的,其实绝大部分嵌入式设备都是需要Linux应用的,只不过通信和AI需求量会大一点,这个方向,钱可能比互联网少但不会差太多。

学完应用开发后,就可以学驱动开发 或BSP,难度会比较大一点,因为需要比较扎实的硬件基础,也要深入理解Linux内核 ,但薪水自然会高,可以去芯片厂做BSP或者去手机厂做驱动。国内会有一些做AI芯片的公司,对嵌入式的人才需求 会很大,不仅是BSP,还会有AI算法在嵌入式平台上的计算加速这样的需求,同样的,上述提到的做AI算法的公司,对驱动开发也会有需求的,手机厂就不用说了,况且你是硕士学历,国内几个手机大厂是可以考虑的,这个方向其实就和互联网的薪资差距就不大了。这个方向也可以去一些电脑厂商,但我不了解,就不多说了。

在熟悉Linux内核以后,你会发现嵌入式也可以做操作系统,(确实,嵌入式一大特点就是能做的领域太多了),其实驱动或者BSP已经是操作系统的一部分了,但国内专注做操作系统的公司太少了,岗位需求量也不是很大,慎重考虑。

或者,再偏软件一点,可以做Android,Android应用层开发基本靠Java了,这就比较有意思了,Android原则上属于嵌入式领域,但人们一般不把Android工程师 叫做嵌入式工程师 ,(可能就是因为依赖Java吧),Android就业是不愁的,这么多有移动客户端的公司,大部分都需要Android工程师,还有一些做智能家电的公司,尤其是智能电视,智能电视的操作系统都是Android,当然,手机厂自然也有大量的Android岗位需求。

Android,往底层一点,就是framework(框架),这就比较嵌入式了,但这个方向其实就不建议自学了,这是一般工作以后才可能接触到的吧,自学应该学不到啥东西,我只是提一嘴有这么个方向。

你会发现我提到的方向都是偏软件的,因为提到嵌入式,大家想到的都是没钱途,是这样的,因为嵌入式大部分岗位还是偏硬件,偏底层,偏硬件的嵌入式工资当然低。因为嵌入式的硬件,在硬件领域是偏应用层的,在计算机领域是偏底层的,结构偏简单的,是芯片的"应用",而硬件领域挣钱的活或者说难度大的活是做芯片,做芯片和用芯片,天壤之别,真正去“做"硬件的,那就不叫嵌入式了,所以嵌入式硬件 ,几乎是最简单的计算机技术 之一,薪资低很正常。

所以我建议你放弃单片机,没意义,嵌入式一定要和前沿领域去接轨,所以我上文中提到了很多AI,现在人工智能是搞计算机技术必然绕不开的,绕开它,钱也就绕开你了。嵌入式+AI 是我最建议你去涉及的领域,(当然不是让你去自学AI,那样大概率找不到工作,因为没有几乎公司会在校招时要非AI专业的AI工程师),嵌入式AI涉及的前沿领域,自动驾驶,可穿戴设备 ,医疗器械等等。除了专做AI的公司,可以考虑刚才也说过的手机厂,或者做智能终端 的公司(主要是智能家居),因为我感觉很多做智能终端的公司会把重点放在"终端"而不是"智能",所以我没把它归为AI,当然了,这些领域薪资高,门槛也就高了,但你才研一嘛,我觉得门槛高不是问题。

总而言之,嵌入式不是不能学,但学嵌入式一定要偏底层的同时偏软件,硬件的话有个扎实的基础知识就够了,以后做嵌入式领域的工作一定涉足科技前沿,前沿科技对嵌入式的需求一定不会少的,别老想着你的单片机,咱不是因为什么鄙视链瞧不上单片机,是因为这个真不挣钱。如果没什么技术信仰,还是学来钱快的技术吧。甚至,要是不太排斥,学着学着Linux应用就转互联网了也不一定是不是?哈哈哈别太早给自己设限就对了,三年的快乐时光等着你呢,别太浪也别太焦虑,好好学就行了,加油吧!

link

相关文章:

  • 【Linux】vim编辑器的使用
  • 强化学习笔记:基于策略的学习之策略迭代(python实现)
  • 1. Spring 基础入门
  • springboot 分布式全局唯一id的生成-雪花算法snowflake
  • 如何使用VMware虚拟机(带你快速了解)
  • Python---学生管理系统(pyinstaller)
  • 客快物流大数据项目(一百零八):Spring Cloud 技术栈
  • ZYNQ IP核之RAM
  • Day10 C++STL入门基础知识七——案例1【评委打分】
  • 计算机相关专业混体制的解决方案(考公务员)
  • OpenCV-PyQT项目实战(1)安装与环境配置
  • 【HTML | CSS】春节将至,为网页挂上精美的灯笼吧(附源码)程序员的浪漫
  • 字节青训前端笔记 | Next.js 入门
  • 下载Windows ISO镜像的方法 (超详细 适合新手入门)
  • OpenCV实战(8)——直方图详解
  • SegmentFault for Android 3.0 发布
  • 03Go 类型总结
  • 0基础学习移动端适配
  • create-react-app项目添加less配置
  • ECS应用管理最佳实践
  • FastReport在线报表设计器工作原理
  • MySQL用户中的%到底包不包括localhost?
  • node学习系列之简单文件上传
  • OSS Web直传 (文件图片)
  • 搭建gitbook 和 访问权限认证
  • 基于Android乐音识别(2)
  • 如何编写一个可升级的智能合约
  • 如何胜任知名企业的商业数据分析师?
  • 微信小程序实战练习(仿五洲到家微信版)
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • !!java web学习笔记(一到五)
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • (LeetCode) T14. Longest Common Prefix
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (已解决)什么是vue导航守卫
  • (转)德国人的记事本
  • .htaccess配置常用技巧
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .Net IE10 _doPostBack 未定义
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 解决重复提交问题
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .net通用权限框架B/S (三)--MODEL层(2)
  • /boot 内存空间不够
  • @ConditionalOnProperty注解使用说明
  • [ 环境搭建篇 ] 安装 java 环境并配置环境变量(附 JDK1.8 安装包)
  • [Ariticle] 厚黑之道 一 小狐狸听故事
  • [CISCN 2023 初赛]go_session
  • [CUDA 学习笔记] CUDA kernel 的 grid_size 和 block_size 选择
  • [hdu 4405] Aeroplane chess [概率DP 期望]