嵌入式校招指南【完整学习路线】【4_自学教材推荐_基础知识】

    目录

    【专栏一】嵌入式校招指南

    作者机械硕士,从零开始自学嵌入式软件,21届秋招进入国内芯片大厂。

    从自身转行经历来看,网上嵌入式学习路线的资料少之又少,大多千篇一律且复制粘贴。

    而嵌入式入行门槛高,技能树要求多,学习难度非常大,没有有效的方法指导,很容易迷失方向,错过校招。

    在此专栏分享我的校招从零开始转行经验,听我给你娓娓道来~

    专栏链接 https://www.nowcoder.com/creation/manager/columnDetail/MWZkkj

    1.专栏大纲&写在前面

    2.转行概述

    3.前期准备

    4.自学教材推荐_基础知识

    5.自学教材推荐_笔试准备

    6.开发板&项目

    7.简历

    8.行业&公司

    9.城市&岗位

    10.消费&工业电子类公司

    未完待续……

    【专栏二】嵌入式校招_面试经验大全

    嵌入式软件校招的常见问题,应付校招面试的速效救心丸,你值得拥有!

    嵌入式的知识太多太杂,不知道面试经常问哪些? 书上说的知识点太抽象,没有一定的基础很难理解?

    别怕,本专栏用通俗的语言和比喻,为你讲清楚!

    包含C语言、计算机组成原理、操作系统、数据结构与算法及计算机网络等,详见大纲。

    1.【C语言】【1_变量】https://www.nowcoder.com/discuss/491773863525679104

    2.【C语言】【2_关键字】https://www.nowcoder.com/discuss/497562309628276736

    3.【C语言】【3_数据结构&位运算】https://www.nowcoder.com/discuss/505894349847224320

    ——————————————————————————————

四、转行学习路线详解

这里我们先针对前面大纲中提到的各个模块,详细介绍一下需要用到的参考资料及其简评,另外还有参考学习时长。并不是完全按照建议的学习先后顺序去写的,因为在学习这些基础知识的过程中,还要穿插学习一些其他科目。

所有的学习时间,皆按照自由学习时间早上九点开始,晚上十点结束,一周六天来算,即9106节奏。

(一).基础知识

1).C语言

既然是零基础,就默认大学期间没有学过C语言或者学过但忘光了。

入门阶段

以下三个入门课,选择一个观看即可。

1.视频:B站——小甲鱼《带你学C带你飞》。播放量:720w

  • 通俗易懂,讲课诙谐,可以初步了解/回忆C语言大概具有哪些功能,这一步不用抠细节,认真跟着走一遍即可。
  • 预计学习时长:7天

2.视频:B站——郝斌《郝斌C语言自学教程》。播放量:648w

  • 同样是一门广受好评的C语言入门课程。
  • 预计学习时长:7天

3.视频:B站——鹏哥《C语言编程C语言入门》。播放量:1093w

  • 这门课是在我自学之后发布的,所以我没看过,但是看这播放量就知道非常给力。
  • 预计学习时长:10天

夯实基础

1.《C Primer Plus》第六版,Stephen著,姜佑译。豆瓣评分:9.4

点评:这本书真正地诠释了什么叫做基础书籍,却又可以为你指出深入的方向,让你在继续前进时不至于迷茫。让你在C语言的世界里畅游,风趣幽默的文笔让人心情愉悦。

  • 在我看来这本书是C语言打基础最好的书,在学完前面入门课程后非常适合继续学习。
  • 本书全面讲解了C语言的各种特性,循序渐进,真正带我走进了C语言的世界,感受到了C语言的奇妙之处。
  • 配合课后习题(选做一半即可)学完本书,基础打牢,从此C语言的各种特性真的是熟稔于心。
  • 从某种程度上也可以认为是一本工具书,毕竟多达六百多页呢。
  • 预计学习时长,35天

2.《C程序设计语言(第2版·新版)》Brian W.Kernighan/Dennis M.Ritchie 著,徐宝文/李志 译。豆瓣评分:9.4

点评:被誉为“C语言圣经”的书,作为C语言之父的丹尼斯·里奇,用其精要的内容,摒弃了所有无关的琐碎细节,为读者展现了c最核心的部分,深入浅出,实乃经典。丹尼斯·里奇同样是UNIX之父,因此在书中介绍语法特征的过程中,所举的例子来源于真实的库函数或者是UNIX系统。在这本篇幅不多的书中,字字珠玑,真知灼见!

  • C语言作为嵌入式软件的看家本领,再怎么深入学习都不为过,更何况这本由C语言及UNIX之父参与编写的权威经典著作,作者们言简意赅却直指C程序本源,对于零基础的我们来说,真的太珍贵了。
  • 需要有一定的C语言基础,建议学完前面的《C Primer Plus》再来看。
  • 预计学习时长:10天

注:最好能够深刻理解常见的C语言库函数,如strlen(),strcpy(),strcmp(),memcpy()等。

进阶理解

其实认真学完《C Primer Plus》及《C程序设计语言》以后,我们就已经完全拥有了应对校园招聘的C语言能力,不太需要去再深入学习。

不过若是真的感兴趣想要继续学习的话,可以去看C语言三剑客,即《C和指针》、《C陷阱与缺陷》和《C专家编程》,更多补全C语言深层次的知识。

2).计算机组成原理

入门阶段

1.《编码:隐匿在计算机软硬件背后的语言》Charles Petzold著,左飞/薛佟佟 译。豆瓣评分:9.3

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

嵌入式校招指南 文章被收录于专栏

作者机械硕士,从零开始自学嵌入式软件,21届秋招进入国内芯片大厂。 从自身转行经历来看,网上嵌入式学习路线的资料少之又少,大多千篇一律且复制粘贴。 而嵌入式入行门槛高,技能树要求多,学习难度非常大,没有有效的方法指导,很容易迷失方向,错过校招。 在此专栏分享我的校招从零开始转行经验,请我喝杯奶茶,听我给你娓娓道来~ 平均每周至少一篇,三个月内完结。

全部评论
很详细啊
1 回复 分享
发布于 2023-03-25 10:48 陕西
太顶了
点赞 回复 分享
发布于 2023-03-24 23:41 广东
佬,我是想找嵌入式驱动方向的,跟着正点原子的视频看完了裸机和内核部分,驱动部分太长了,继续看就来不及做项目了,现在是继续看完驱动还是整个项目比较好?
点赞 回复 分享
发布于 2023-06-26 17:38 江苏
怎么现在才看到啊!!!9月份秋招了!!! 目前c Primer Plus啃完了,stm32单片机也搞完了,还有三个月时间,感觉有点来不及啊!
点赞 回复 分享
发布于 2023-05-30 13:58 广东
鹏哥的c语言十天根本看不完😂讲得非常细
点赞 回复 分享
发布于 2023-03-28 18:40 四川
点赞 回复 分享
发布于 2023-03-25 12:23 广东
加油
点赞 回复 分享
发布于 2023-03-25 11:00 河南
欢迎大家点赞评论哦~
点赞 回复 分享
发布于 2023-03-25 10:41 广东
我还以为学了c就可以直接开搞单片机了 🤐
点赞 回复 分享
发布于 2023-03-25 08:15 广东
谢谢。很有帮助
点赞 回复 分享
发布于 2023-03-24 23:43 广东
太强了
点赞 回复 分享
发布于 2023-03-24 23:38 广东

相关推荐

一、关于看资料还是看视频以下仅代表笔者个人看法,仅供参考。笔者主要推荐通过资料进行学习,如果有不理解的地方再配合视频进行学习。因为笔者认为看资料的效率会更高,接收的知识更成体系,防止看了视频还是一知半解的状态。个人推荐的资料如下(以freertos为例): 《FreeRTOS开发手册》、《CM3权威指南》、 《嵌入式实时操作系统原理及应用》、 《FreeRTOS实时内核使用指南》《操作系统精髓与涉及原理》(这是本书,可自行购买);此处先把所有资料列出来,后续再讲解什么时候用到某个资料(有需要上述资料的同学,私信我即可领取)。除此之外,多说一点的是:个人建议先补好C语言基础知识和数据结构的基础知识再来学习RTOS。因为RTOS里边存在大量的指针高阶用法,如函数指针/指针函数/二维指针等;以及数据结构,最典型的就是链表,Freertos里边还涉及到环形链表。因此,先将这些基础打牢固,再来学RTOS的时候就更加水到渠成一些。二、RTOS学习路线0基础的同学建议按照以下步骤走:1、学习任务基础知识:先打开书《操作系统》 (百度也行)了解一下什么是操作系统?为什么要用操作系统?个人习惯是再用一个东西之前, 需要了解为什么。其次打开《 FreeRTOS开发手册》以及《freertos内核使用指南》,学习任务的基础知识。包括什么是任务、任务的几种状态、任务优先级、任务堆栈、TCB及简单了解任务的调度等。2、学习移植RTOS:还是打开Freertos开发手册,跟着教程一步一步移植操作系统。这里的移植不仅是让你把源码移植进工程里,还需要你明白如何进行相应的中端配置、移植文件的修改、 以及内核裁剪的系统配置(可能到这一步的时候,有些东西你不知道为什么,先不用管,后边学了原理再来看)。3、学习简单的rtos使用:打开Freertos内核使用指南或者freertos开发手册,学习rtos中API 的参数、作用、以及使用示例。这里的API至少了解任务的创建、删除、挂起、延时(至少知道延时的时候会发生任务调度)、信号量等。上述目的就是让你先学会用,用的过程中就会自然而然的出现问题,接下来就知道该去探究原理了。4、学习rtos原理:打开《CM3权威指南》,学习以下重点知识即可:第二章、第三章(寄存器组、control寄存器等)、第7章(SvC和PendSV重点、其他的也是重点)、第8章(Systick定时器是重点,其他的也是重点)、 第9章主要了解中断入栈时push进哪些寄存器、 取向量、更新寄存器、异常返回等内容即可。4.1、了解完CM3架构的基础知识后,打开《嵌入式实时操作系统原理及应用》,主要了解任务调度算法,学习任务到底是如何切换的,需深刻理解任务切换实际上为堆栈指针切换这句话。ps:笔者在小红书发布了freertos学习合集,也可以配合起来看看,其中发布了任务切换原理的视频讲解。5、看RTOS的源码:此时之前学习的c基础和数据结构基础就可以派上用场了。看源码可以直接在工程里打开代码看,也可以打开《FreeRTOS开发手册》,里边也有相关源码的解析。建议看源码的顺序按照以下来:创建任务函数--开启多任务调度函数(看一下任务切换原理的代码怎么实现的)--队列--信号量等(也可以配合freertos内核使用指南)接下来需要重点看的是systick中断函数以及delay函数源码,主要了解Systick怎么作为rtos 时钟使用的,delay函数怎么实现任务切换的, 任务如何从阻塞态到就绪态的、相对延时和绝对延时的区别等。ps:到这一步也可以选择做一些rtos项目帮助理解各个API的用法、原理。要做到分析代码的执行时序是怎样的。6、学习rtos 的内存管理以及空闲任务:FreertoS开发手册就有详细介绍,需要了解什么是内存碎片,各种内存管理方法的优缺点是什么、空闲任务的作用,此处也要去看源码怎么实现的。7、进阶:继续学习FreeRTOS的软件定时器、 低功耗Tickless模式及时间标志组等。了解清楚原理,如何使用,建议也分析一下源码,看如何实现的。最后,本次分享就到这里,上述只是笔者个人的一些建议,希望能给大家带来一定的参考。找不到上述资料的可私信我领取。
点赞 评论 收藏
分享
评论
16
63
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务