文章目录
- 前言
- 什么是算法
- 嵌入式是否需要算法
- 如何学习算法
- 参考资料
前言
刚学习单片机或嵌入式的同学可能会听说过「算法」这个词,部分电子信息类专业的同学也会在自己的培养计划上看到《数据结构与算法》这门课程,这个时候我们可能会感到疑惑,什么是算法呢?如果我们想学习单片机或嵌入式,需不需要学习它呢?
其实,我们常说的算法指的就是《数据结构与算法》,它是计算机科学研究的内容,同时也是计算机科学和软件工程专业的必修课,那如果我们只学习单片机及嵌入式,是否一定要学习它?别着急,让我们从头谈起。
什么是算法
算法通常指《数据结构和算法》,它由数据结构和算法两部分组成。
- 数据结构指计算机中存储、组织数据的方式,即按照一定的结构,把数据组织起来,并存储到计算机的存储器里
- 算法是一种使用计算机来解决问题的方法,它需要建立在数据结构的基础上,算法研究的目的是为了更有效的处理数据,提高数据运算效率
嵌入式是否需要算法
首先我们知道,在做产品时,公司往往会出于成本考虑,而要求我们的嵌入式程序跑在性能较差、存储资源较少的单片机或嵌入式 SOC 上(例如 51 单片机的频率仅有 12MHZ,RAM 仅有 128 字节),这时候就需要我们对程序做出一些优化,否则你的程序可能根本跑不起来,甚至根本无法存储到单片机的 Flash!这个时候就需要用到「算法」了,因为算法研究的就是不断优化程序,最终达到在有限的空间和时间内更高效的处理数据的目的。
所以,如果你想精通嵌入式、进入嵌入式行业,是一定离不开算法的;但是如果你只是想入门单片机和嵌入式,是不需要学习算法的, 因为我们在入门学习时程序比较简单,不会占用过多资源,并且往往会采用那些资源比较充足的单片机或嵌入式开发板(例如 STM32、树莓派4B),从而不会遇到性能问题。
如何学习算法
算法和其他课程一样,需要理论和实践同时进行。对于理论,我们可以跟着一些系统性的课程进行学习(如教材),而对于实践,一是要多写程序,二是要多刷算法题。
在这里给大家推荐一个算法学习平台 - 牛课网(传送门:牛客网 - 算法学习专区),牛客网是一个集 课程+刷题+面经+求职+讨论区分享 的一站式求职学习网站,最最最重要的里面的资源全部免费 ,我们不仅可以在里面系统的学习算法类课程,也可以去找各种算法题进行练习和巩固。(传送门:牛客网 - 算法学习专区)
而且,对于不想或不需要学习算法的同学,牛客网还为我们准备了嵌入式学习专区,不仅有系统的嵌入式入门教程,还有 Verilog 进阶教程和嵌入式面试题库,有需要的同学不要错过呀。
- 传送门:牛客网 - 嵌入式专项题库
- 传送门:牛客网 - 嵌入式学习专区
参考资料
- 数据结构与算法是什么? - 知乎