加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

从事单片机的工作,C语言要达到什么水平?

11/29 10:00
726
阅读需 4 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

这是我在知乎2022年写的一篇原创回答,最近看到重新翻出思考下:https://www.zhihu.com/question/429050536/answer/1574860404

C语言以其易于入门的特性著称,它允许开发者深入底层系统,直接进行内存操作,这一能力的核心在于其强大的指针机制,使得C语言在实现高效程序方面表现出色。上述这些特点自然就是嵌入式行业的首选语言,我记得大一开始学习51的时候就有位大佬跟我说单片机开发80%的难度在于C语言。

既然C语言这么重要,那需要达到什么水平呢?其实这种水平分几种,一种就是只针对语言本身的,这个其实你可以去牛客答一答华为的C语言面试题,如果基本都会,那语言层面你就没问题了。当然我也见过很多面试题答的很溜,实际上手不行的情况,这就是另一种考量,看实际的完成作品的数量和质量(这里的完成可以借鉴,但是必须自己的思考,否则后期很难提高)。

因为C语言是可以从事非常多不同类型的工作开发的,但就单片机开发而言,如果可以独立完成智能小车之类的产品,C语言其实就算入门了,主要涉及的技术就是模数电采集抓换,对IO的高效利用,代码量300左右可以独立完成平衡智能小车的设计,功能可以是自动寻迹,自动避障,遥控控制,原地转弯,蓝牙和WiFi接口的使用,代码量1000行左右,可以算大学就没白学吧。可以设计实现四轴无人机系统,完成单点控制,地图巡航,自动避障(可以参考大学生电子设计大赛作品),因为这时候使用了很多库函数,单纯的设计代码量6000行左右,基本毕业找工作是没什么问题了。

当然我自己本科也就达到这样的状态,后边C语言的提高其实更多的要靠工作的难度来提高,涉及非常多的困难,为了解决这些困难,顺带提高了能力,这也是去大公司好团队的意义所在,不然没有难度的工作只会浪费你的时间,你的收入自然也就上不去(小公司什么都做,持续内耗并不是难度哈,难度的定义是最终一定会有结论,但是小团队往往没有这样的执行力)。

当然上述说的C语言只是针对单片机开发而言,如果想达到更高的层次我个人建议最好伴随其他的基础学习,技术是综合的体现,不简单看一门技能,针对嵌入式开发的话,模数电和电路设计也是要学习的,因为实际的产品设计中最多的还是和各种信号打交道,不熟悉硬件是很吃亏的,但是要自己有所侧重,如果不准备走硬件工程师的路,那还是专注于软件吧,这部分可以看我之前写的学习之路那篇文章总之,C语言是一门入门简单,过程很精彩,精通很难的语言,对于嵌入式更是如此,要多看好的代码好的著作,多研究开发项目,那随着经验的增加水平自然也就越变越强了

未完待续,持续更新!以防后边找不到可以点赞收藏下!

相关推荐

电子产业图谱

90后500强外企软件研发工程师,专注C/C++/IoT等技术分享。