基础阶段
这个阶段是为了好好打基础,有下面几个目的
- 熟练使用劳动工具 C C++ Makefile
- 搞明白芯片是如何通过各种芯片完成各种操作的
- 了解一个程序是怎么被执行的
- 需要对mcu soc有一定宏观的理解
一:熟悉劳动工具
这部分主要就是C语言的学习,如果学有余力可以学学C++,并且在学习过程中一定要刷刷算法题来巩固对编程语言的使用。C的学习推荐几本书:《C专家编程》《C缺陷与陷阱》《C和指针》, 视频的话B站上有不少,应该大差不差,主要是要看得懂语法,并且可以找一些题目来做巩固.C++我看过很多书 C++Primer(习题全部都做了) 还有侯捷的好几本,不过还是比较推荐看看 effective modern C++, 讲了很多会问到的点. 学语言不是目的, 能看懂语法, 能把基本的练习题做出来就行.
同时,很推荐看看 程序员的自我修养, 这本书可以从最开始陪伴到最后,读不懂没关系,跳过去,过段时间随着知识储备越来越多,再回来多看看就能看懂了,看不懂不用死磕
也推荐看一下计算机教育中缺失的一课 https://missing-semester-cn.github.io/
同时用C++刷刷算法,leetcode 100
二: stm32
如果有时间可以看看 野火 正点原子的课, 买个板子玩玩,把基本的示例都跑一跑,主要搞懂:
- 怎么配置寄存器
- 为什么要配置寄存器, 有什么作用
- 想实现一个功能要怎么去配置寄存器
- gpio i2c UART spi 等等都用一用,熟悉一下
- 板子怎么起来的
- 程序怎么运行起来的
- C
三:linux应用
如果对stm32有一定认识,可以再看看linux系统编程相关的,这个阶段纯在上层应用,主要是玩一玩,有个了解就行. 从我自己出发,我看过 韦东山的课,玩过imx6ull qt mqtt 智能家居等等,但是现在看来,玩玩就行了,快速过一下,不要花太多时间(以做驱动为前提). 还看过 鸟叔私房菜(全部 这是我学习的笔记https://blog.csdn.net/qq_43944242?type=blog) 虽然这个对我来说意义很大,但其实只要一些章节很快就有作用(vim shell 等等),像磁盘 sed 这些其实过了一段时间才有用,推荐这里有点纠结,有时间就看看吧.
主要搞懂:
- 对linux有基础了解
- 会用shell工具
- 交叉编译
- 能做基本的应用开发
- 网络基本知识
这个部分能玩的很多,挑自己感兴趣的吧.
到这里我其实用了大半年,主要走弯路就在这里,乱七八糟看了很多书,我就挑了一些我觉得比较有意义的书.
开个专栏介绍一下自己从研一开始到目前的学习路径,一来方便新来同学找学习方向,二来也想记录一下自己的学习过程。