再说嵌入式入门

我之前写过几篇嵌入式入门的文章 

不过我的读者还是觉得不够过瘾,我觉得还是要着重说一下嵌入式软件应该重点学习什么,guoqing收假最后一天写文。

精通C语言 

精通C语言 

精通C语言

C语言对于嵌入式软件来说就是他的命脉,不懂C语言的人根本就不能说想搞嵌入式,而想学好嵌入式,那么就必须要精通C语言,你在大学,可以不参加电赛,不跟老师做项目,但是一定要学好C语言,如果说切菜是厨师的基本功,那么C语言就是嵌入式程序员的基本功,这也是很多招聘公司把C语言来考察面试者的原因。

分享一份C语言学习资料,这个资料是比较全面的,都是电子书,大家有选择性阅读,目前为止应该是最全面,最好的C语言学习pdf资料了。

链接: 

https://pan.baidu.com/s/15LZKixjFQzs0ZNfOo2ZWpQ

提取码: 

gx7w

熟练数据结构和算法

数据结构和算法有点因岗位而异,有的岗位基本很少用到数据结构和算法,可能工作十来年,挂着一个嵌入式软件的头衔,结果没写过一个链表,基本的语法都是一些 if 和锁 ,控制GPIO口之类的,但是用不到不等于不学,我们所知道的所有操作系统,都脱离不开数据结构和算法,而且嵌入式软件是需要和操作系统代码强相关的,嵌入式软件的代码依赖操作系统的代码来运行,学习好数据结构和算法,可以让你看到猪是怎么跑的,但是至于以后入职工作,能不能用这方面的技术来吃猪肉,那就要看缘分了。

数电模电基础

嵌入式软件不同于互联网,很大一部分就是因为跟硬件息息相关,所以必须要有数电和模电基础,像一些锁相环,与门,或门之类的东西,我们是需要清楚的,纯软件开发可能不需要懂这方面,但是电子技术的话,这些基础是必不可少的。

模电是很多人的一个心病,我当年也是学不好,像三极管,二极管,mos管之类的,还要理解一些电路设计,这部分是大学电子课程的基础,当然,如果你没有这个机会,可以买几本书来学习下。

从51单片机开始

我觉得搞电子的每个人都应该学习51单片机,很多直接从ARM开始学习的也学得很好,能找到一些不错的工作,但是我还是建议从51开始,51学起来也不难,还能练习C语言,51用来裸跑是非常不错的,理解CPU的工作原理,学习一些通信协议,比如I2C,SPI,点亮LED灯,练习下中断,定时器,后面再做做多任务,学完多任务后,就可以去学习系统相关的东西了。

学习嵌入式系统

嵌入式系统,这个东西就比较多了,在学习51之后,你可以学习STM32,STM32标配的就是freertos系统,系统是从多任务衍生过来了,你理解了多任务,再学习系统就不是什么难事了,实时系统我还是推荐学习freertos。

分时系统的话,那肯定是Linux了,如果你跟我一样,特别喜欢Linux,你也可以直接上Linux 学习,Linux是一个很大的东西,有应用,驱动,运维,如果你做嵌入式,就一定不是运维之类的工作,所以,Linux私房菜 这类的书籍是不适合你的,你要看的是《Linux 设备驱动》,《Linux内核设计和实现》这类的书籍。

嵌入式软件面试

C语言是每个嵌入式软件面试必备的,我记得我在毕业的时候,去参加一个公司面试,被要求当场写一个键盘扫描的程序,刚开始是比较紧张的,我拿到这个题目的时候,也是一愣一愣的,后来我缓了一下,我认为我自己的知识储备完全可以拿下这样简单的面试题,就是那次,我当场在面试官面前写了键盘扫描的程序,虽然是很简单的代码,但是第一次面试还是比较紧张的。

我想说明一件事情,我们从大学里面学到的东西,如果都认真学习了,完全可以应对面试题目,但是面试的松弛程度,紧张程度,是需要我们不断练习,最后孰能生巧,不紧张了,表现好自己,拿下offer的概率就会增大的,网上那些100%拿下offer的分享,我是不相信的,面试本身就是技术加临场表现的,现在的毕业生,我看来技术都是差不多的,特别现在学习资料都差不多,即使刚开始有点差距,如果有学习的心态,后面能补回来也是很快的。

嵌入式工作会做什么?

我前面说了下,嵌入式的工作是万金油,这个也只是相对来说的,在大企业里面,不可能让一个人从事非常多的任务,这样会导致一个问题,风险非常大,你承担的任务越多,那么风险就越大,所以大企业需要的是在某个领域非常专业的人才,从事的事情也是非常专业的,单一的。

单一的工作需要一个Leader来指挥,这就需要一个架构师,这个架构师需要指导你往哪里天聪你的代码,你拉了一车砖头过来,不能随便就乱扔吧,这就需要规则,需要架构师来制定这个规则,所以就出现了各种软件总工。大企业需要单一的某个领域的人才,但是小企业,需要的就不是了,他们需要比较全面的人才,他们没有那么多钱来请各个方面的人才,比如你要做一个手环,在小公司,那你就需要把驱动,应用,后台通信,各个功能子模块都一个人来完成。但是如果你在大公司,你可能就只负责手环的功耗部分,如果功耗有问题就来找你,其他的事情,就不是你负责的范围。

音视频

音视频这部分一直都是一个大模块,企业应该把这部分脱离开来找人,所以如果你是从事这部分相关工作的,可以深入专研。很多企业,专门成立多媒体部门,研究的就是音视频相关的技术,编解码等等,数据传输等等,都是他们要做的技术。

算法相关

有的嵌入式岗位专门研究算法的,比如一些openface等算法一直,还有用matalab做一些算法运算,这些都是嵌入式相关,也是比较专一的岗位,当然了,工资也是比较高的,研究算法的人才因为对某些东西比较有研究,反过来做一些系统或者应用的开发也是如鱼得水,技术相关的东西很多都是相通的。

平台相关

嵌入式硬件的不同平台,导致了在不同平台上有经验的人才就不一样,如果你是做rockchip的,那么你就具备这部分的经验,你可以一直从事rockchip方面的开发,这就是平台性相关,如果你是做全志平台的,那你可能更擅长全志平台的,如果跳槽,你找全志平台的话,会更有竞争力,别人也更看重你之前的工作经验。

对于文章中的学习资料可以在公众号回复 「 1024 」 获取,有些资料链接过期的,可以私聊我获取。

参考:https://blog.csdn.net/qq_33835307/article/details/83062526



640?wx_fmt=jpeg

扫码或长按关注

回复「 加群 」进入技术群聊

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java ios 开发工具_iOS应用开发的五个Java开源工具

随着第三方工具的不断壮大,开发人员逐渐摆脱政策束缚,对于iOS系统的封闭性为其他语言(如Java)开发者诟病得到解脱,开始使用自己熟悉的语言来编写iOS本地应用,或将其他平台上的应用移植到iOS上。本文为你介绍5款开源的开发工具&…

hive 时间转字符串_大数据面试杀招——Hive高频考点,还不会的进来挨打

一、什么是Hive,为什么要用Hive,你是如何理解Hive?面试官往往一上来就一个“灵魂三连问”,很多没有提前准备好的小伙伴基本回答得都磕磕绊绊,效果不是很好。下面贴出菌哥的回答:Hive是基于Hadoop的一个数据仓库工具&a…

java jpa jar_JPA 开发所需的Jar包 (基于Hibernate)

JPA 开发所需的Jar包 (基于Hibernate)(一)下载Sun 的JPA规范(即:Jar包)登陆JavaEE 的 Technologies 页面:http://java.sun.com/javaee/technologies/index.jsp选择 Java Persistence 2.0选择 Final Release 中的 Download Page 后进入下面的界面:下载如下…

C语言入坑指南-数组之谜

前言在C语言中,数组和指针似乎总是“暧昧不清”,有时候很容易把它们混淆。本文就来理一理数组和指针之间到底有哪些异同。数组回顾在分析之前,我们不妨回顾一下数组的知识。数组是可以存储一个固定大小的相同类型元素的顺序集合。为了便于我们…

mysql服务器查绑定的域名查_MySQL使用show status查看MySQL服务器状态信息

MySQL使用show status查看MySQL服务器状态信息这篇文章主要介绍了MySQL使用show status查看MySQL服务器状态信息,需要的朋友可以参考下在LAMP架构的网站开发过程中,有些时候我们需要了解MySQL的服务器状态信息,譬如当前MySQL启动后的运行时间&#xff0c…

Fiddler抓包使用教程-安装配置

转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/72876628 本文出自【赵彦军的博客】 Fiddler是什么? Fiddler是一个http调试代理,它能 够记录所有的你电脑和互联网之间的http通讯,Fiddler 可以也可以让你检查所…

VS2019调试查看变量_你很可能需要知道这个调试小技巧

缘起 最近在调试的时候,需要观察第三方容器中每一个元素的值。默认情况下,vs 并不知道如何显示第三方容器的内容,只能手动观察容器中的每一个值,超级不方便。我找到一个非常给力的好办法,你还知道其它好办法吗&#xf…

Linux i2c子系统驱动probe

I2C 子系统I2C 子系统使用的概率非常大,我之前有做过手机的经验, 手机跑的安卓系统,内核是Linux,手机的很多器件都是用I2C通信的,我经历过从板级设备到dts设备树的阶段,知道I2C在整个系统的举足轻重&#x…

java生成flash_web-flash发布了代码生成插件

web-flash 是一个基于 Spring BootVue.js 的后台管理系统。现在发布了其基于 Intellij IDEA 的代码生成插件!你可以再 idea 插件仓库中搜索 webflash-generator (目前插件在发布审核中,可能会搜索不到),或者直接从本地安装插件:flash-generat…

JAVA多线程程序ProgressBar

JAVA多线程程序ProgressBar 题目简介: 思维导图: 实验代码:建议先看CalThread类,计算线程的实现,再作基本CalFrame类的界面, 然后作ReadThread类,结合CalFrame的组件,最后完善CalFra…

为什么Linux内核里大量使用goto,而很多书籍却不提倡使用?

关于C语言的goto语句存在很多争议,很多书籍都建议“谨慎使用,或者根本不用”。Linux之父Linus在Linux中大量使用goto,也是在启示着我们可以合理使用goto语句。存在即合理,既然是C语言中的一个知识点,我们还是有必要学会…

python特征匹配 查找_特征匹配+单纯形查找对象

我尝试使用opencv获取一个查询图像并在一个基本图像中进行匹配。我看了一下在线教程,你看,他们有示例代码来做这件事。所以我复制并粘贴了代码,并尝试用一些试用图像来运行它。下面是代码和一组图像示例。在import numpy as npimport cv2from…

python数据类型有哪些、分别有什么用途_python中的数据类型有哪些

python中的数据类型有9种,分别是1、字符串2、布尔类型3、整数4、浮点数5、数字6、列表7、元组8、字典9、日期。1、字符串 1.1、如何在Python中使用字符串 a、使用单引号() 用单引号括起来表示字符串,例如:strthis is string; print str; b、使…

java access jdbc_Java连接Access数据库

JDBC(Java DataBase Connectivity)是Java数据库连接API。JDBC能完成与一个数据库建立连接,然后向数据库发送SQL语句,再处理数据库返回的结果。JDBC在设计上和ODBC相似。JDBC和数据库建立连接的一种方式是首先建立起一个JDBC-ODBC桥接器。首先安装office2…

五分钟搞懂什么是红黑树(全程图解)

红黑树,对很多童鞋来说,是既熟悉又陌生。熟悉是因为在校学习期间,准备面试时,这是重点。然后经过多年的荒废,如今已经忘记的差不多了。如果正在看文章的你,马上快要毕业,面临着找工作的压力&…

SequenceFile文件

SequenceFile文件是Hadoop用来存储二进制形式的key-value对而设计的一种平面文件(Flat File)。目前,也有不少人在该文件的基础之上提出了一些HDFS中小文件存储的解决方案,他们的基本思路就是将小文件进行合并成一个大文件,同时对这些小文件的…

win10右键闪退到桌面_WIN10设置闪退,桌面右键个性化显示设置等均无效

开始菜单点击设置,会报错,详细信息记不清了,提示路径C:\Windows\ImmersiveControlPanel\SystemSettings.exe,使用fix it修复工具无效尝试更新系统,更新至最新版本后仍然存在问题事件管理器中找到了这个错误应用程序名称…

Linux 内核红黑树分析

Android binder 内核实现是用红黑树的,理解红黑树我觉得是每一个Linux er的重中之重,感谢格子森同学的投稿,周末愉快。内核版本为 linux4.2.1 本文主要从红黑树的代码实现入手,来讨论linux内核中是如何实现红黑树的(主要是插入和删…

postgresql数据库安装及简单操作

自从MySQL被Oracle收购以后,PostgreSQL逐渐成为开源关系型数据库的首选。 本文介绍PostgreSQL的安装和基本用法,供初次使用者上手。以下内容基于Debian操作系统,其他操作系统实在没有精力兼顾,但是大部分内容应该普遍适用。 一、安…

周末随想,野路子

焦虑不知道是不是因为科技太发达的原因,晚上睡觉之前总是要看看手机,现在写公众号之后,也经常有读者问问题,总是担心错过哪条消息,所以时刻想看手机,而且因为太过于焦虑的原因,我把微信设置为静…