大家好,我是无际…

最近实在太忙了…每天基本工作到晚上12点多,感觉额头凉飕飕的(发际线又变高了…)

今天趁有时间来写一篇经验分享,希望对大家有帮助哇!

记得在2011年的时候我刚毕业,专业是电梯,考了高级维修证,但是对维修一窍不通,所有知识都是建立在理论层面。

当时我还是比较排斥这个行业的,风险高、工资低、工作时间24小时待命。

误打误撞我接触到了单片机,觉得挺有意思,玩硬件编程最大的好处就是,能让你体会到你学的东西真的能干点实事。

但是兴趣归兴趣,现实是现实,面临毕业,我最大的困境还是找工作。

干电梯是不可能了,别的行业又不会,只能盲目坚持自学单片机看能否转行成功。

当时我也不知道自己非对口专业、学历又不高的情况下,会不会有公司要。

更不知道自己学到什么程度能出去找工作,一切都是摸着石头过河,走一步算一步。

不过,最后还是被我摸对了,成功自学进入单片机开发这个行业,以前写的技术博客还历历在目。

10年前的任职要求和现在还是有挺大差别的,我找工作的时候只会下面几点:
1. C语言
2. 51单片机
3. 用51单片机做过智能小车项目
4. Protel99看原理图
5. 插件焊接能力

如果放到现在,你只会这些,估计很难找到工作,单片机开发也不单纯的只看C语言水平。

所以,下面我根据自己这10年被面试和面试的经历来跟大家分享下,现在如果你想从事单片机开发,需要具备哪些能力比较有竞争力。

很多人以为从事单片机开发,主要是学单片机。

这是一个误区,要改,单片机只是工具,掌握这门工具是必须的,但重点不是研究工具。
单片机厂家和型号太多了,我们不可能每个都去学习,我们只需要学习主流的就可以了,比如说:
1. STC单片机
2. STM32单片机

会用这两个,基本其他品牌型号的单片机,你1-2周就能把它用起来。

学习这些单片机最好的办法就是买开发板,把常用的外设都用起来就够了,工具会用了你就没必要去深究工具是怎么造出来的。

然后开始锻炼你的功能实现能力(简称产品思维),同时提升C语言编程水平。

这些从开发板上都无法学习到,只能做项目。

即便你没系统学过STM23,给你做几个基于STM32单片机的项目,你都用的溜溜的,我就是这样学会STM32的。

锻炼产品思维需要你多做项目,学习不同的产品功能,要如何去实现。

而锻炼C语言编程水平就不一定看你做过的项目数量了,而是看你能不能碰到一个好老师,能不能接触到一些不错的代码。

如果没有,也接触不到,STM32的标准库就是你最好的老师。

很多人不知道C语言编程的水平的好坏会体现在哪里,反正写的好坏,最终都能实现功能,从产品运行来上看不到任何区别。

确实,如果是一些小项目,不管你代码写的怎么样,都不影响产品正常运行。

但是一旦项目代码量上去以后,比如说上万行代码,编译出来有30K左右的代码量的时候,你就能体会到,C语言编程水平有多么地重要。

没有一定的水平,你根本写不出中大型项目代码,最直接的体现就是写着写着发现功能之间有冲突,然后改,改完以后又跟另外的功能有冲突,最后砸键盘泄愤!

别问我怎么知道的,我就是这么过来的。

所以,C语言的编程水平,主要体现在两个方面:
1. 架构
2. 算法

架构是你整个代码的架构,是不是模块化的,移植性怎么样,扩展性怎么样。

关于架构,我自己在19年录制了一套还比较系统的教程,这个架构做过编译后60K以上代码量的项目,稳定性没问题,也解决了很多产品的痛点,可以无偿提供给大家学习,需要直接到我公号【无际单片机编程】回复入门资料拿。

算法是你程序整体执行的效率,实时性怎么样,比如用左移代替乘法执行的机器周期会更短,一般的产品对算法没太高的要求,即便整型数据你用浮点数据方式运算,都功能效果上都体现不出来。

所以,提升C语言的编程水平,首先是提高代码的架构水平,然后才是算法(如果有需要的话),毕竟算法的沉淀,不是一朝一夕的,有时候一个算法就够你折腾一个月。

除了单片机、产品思维、C语言编程能力,你还需要具备基本的电路分析能力,要会使用画图软件看原理图等等。

下面我大概来总结下,到底需要哪些能力?
1. 掌握51和STM32单片机这两个工具使用。
2. 掌握C语言。
3. 会用AD软件看原理图。
4. 懂基本的电路分析(至少要知道是什么信号和协议进到单片机)。
5. 做过2个项目。

重点就是第4,也是公司招聘最看重的,项目可大可小。

所以,想从事这个工作,不是说单纯看C语言水平的,而是你的综合能力,这个综合能力就是给你一个项目,你懂不懂分析电路原理,懂不懂软件怎么去实现它,哪怕是会维护程序也行。

如果你能达到这个水平,我相信找个工作还是没问题的,前面不要要求薪资多少,先入行,有资本了再去提要求,通常半年跳槽工资至少翻一倍。

从事单片机工作,C语言要达到什么水平?相关推荐

  1. 单片机开发工程师需要学哪些,单片机工作的基本条件

    记得刚毕业的时候,同学们都很迷茫,不知道自己以后要做什么工作. 有部分同学向社会低头,做了本专业,每天累死累活干的像条狗,10年过去了每天也才拿着上万块出头的工资. 也有一部分人选择为自己而活,去做自 ...

  2. python微控制器编程从零开始-单片机可以使用Python语言来控制了!

    告诉广大Python爱好者一个好消息,单片机可以使用Python语言来控制了. Arudino虽然在开源硬件领域非常流行,但是对于不懂C/C++编程语言的玩家来说,还是需要一段学习时间. Damien ...

  3. 《例说51单片机(C语言版)(第3版)》一1.7 实时练习

    本节书摘来自异步社区<例说51单片机(C语言版)(第3版)>一书中的第1章,第1.7节,作者 张义和 , 王敏男 , 许宏昌 , 余春长,更多章节内容可以访问云栖社区"异步社区& ...

  4. c语言写红绿灯程序,51单片机用C语言实现交通灯(红绿灯)源程序

    51单片机用C语言实现交通灯(红绿灯)源程序 交通灯,红黄绿灯交替亮,怎样实现呢?其实就是根据单片机定时器及倒计时的程序修改. 源程序如下: /* 1.程序目的:使用定时器学习 倒计时 红绿灯原理 主 ...

  5. 用c语言设计红绿灯程序,[转载]51单片机用C语言实现交通灯(红绿灯)源程

    51单片机用C语言实现交通灯(红绿灯)源程序 交通灯,红黄绿灯交替亮,怎样实现呢?其实就是根据单片机定时器及倒计时的程序修改. 源程序如下: #include bit red,green,yellow ...

  6. 单片机交通灯灯c语言程序,51单片机用C语言实现交通灯(红绿灯)源程序

    51单片机用C语言实现交通灯(红绿灯)源程序 2009-10-29 23:00 交通灯,红黄绿灯交替亮,怎样实现呢?其实就是根据单片机定时器及倒计时的程序修改. 源程序如下: /* 1.程序目的:使用 ...

  7. 单灯闪烁c语言程序,51单片机,C语言编程,控制指示灯闪烁的频率

    c51单片机,c语言编程,关于指示灯定时闪烁的. P1.0 P1.1 P1.2 P1.3上面各接有一个指示灯,P2.0接一个外接按键. 要求: 按一下按键P1.0以1Hz的频率闪烁 半周期为500ms ...

  8. 关于单片机的C语言编程基础知识(初学注意)

    80C51上的C语言编程 C51的特色: (1)学习过C语言的同学在对单片机有了基本了解之后,就可以开始试着写一两个基于单片机的C语言的程序了.C51语言继承了ANSI C 的绝大部分的特性,基本的语 ...

  9. 单片机c语言交通灯源程序,51单片机用C语言实现交通灯_红绿灯_源程序

    单片机 AT STC C语言 C 89c51 89c52 设计 交通灯 仿真 毕业论文 程序设计 毕业设计 课题设计 51单片机用C语言实现交通灯(红绿灯)源程序 2009-10-29 23:00 交 ...

  10. 单片机的c语言ppt,第9章-单片机的C语言编程.ppt

    第9章-单片机的C语言编程.ppt 第9章单片机的C语言编程 9 1C51编程语言简介9 2C51的数据类型9 3数据的存储器类型和存储器模式9 4SFR 位变量 存储器和I O接口的定义9 5C51 ...

最新文章

  1. 机器学习中的数学基础:(2)矩阵的奇异值分解(SVD)及其应用
  2. 结构体在内存中的对齐规则
  3. python web开发 jQuery基础
  4. netty发送数据_看完这篇还不清楚Netty的内存管理,那我就哭了
  5. python 简历处理_按照这个方式学Python,老板把垃圾桶里的简历舔回来:月薪50000...
  6. ios assetlibrary
  7. 防止表格中的单行按钮被频繁点击,前端实例讲解~
  8. 从入门到精通:卷积神经网络初学者指南
  9. 64位浮点数_【C语言教程】C语言浮点数及其应用
  10. Data crossstore between Mongo and JPA
  11. java函数命名规范_java命名规范
  12. Java JDK8下载 (jdk-8u251-windows-x64和jdk-8u271-linux-x64.tar)
  13. 世界著名激励大师约翰·库缇斯的传奇人生
  14. Java设置PPT幻灯片背景——纯色、渐变、图片背景
  15. python/Matplotlib绘制复变函数图像
  16. Android 开发笔记2.0
  17. Floyd 算法+例题
  18. gcc警告选项汇总 转
  19. rust腐蚀帧数_腐蚀游戏怎么提高帧数 Rust设置隐藏画质提高FPS教程
  20. 【操作系统基础】操作系统的分类与发展

热门文章

  1. 辞职的时候才知道上司的工资是我的10倍,这些道理都在这些公众号中!
  2. 有哪些看起来很沙雕的公众号,实质上却年薪百万?
  3. TCP网络应用程序的注意点
  4. Pytorch的安装教程
  5. python输入input的用法
  6. 人工智能及其应用(第5版).蔡自兴-5章课后习题。【部分答案】
  7. OpenCV实现0到9数字识别OCR
  8. 一文图解卡尔曼滤波(Kalman Filter)
  9. 项目实践 | 行人跟踪与摔倒检测报警
  10. Kubernetes 1.8.4 手动安装教程-安装Dashboard(七)