一文讲通 "嵌入式整个技术栈"
一、计算机基础知识
- 计算机四大件:计算机组成原理、计算机网络、操作系统、数据结构
1. 操作系统
- 学习资源:B站的“王道考研”系列课程
- 学习要点:进程线程管理、内存管理、文件系统、设备管理
- 面试常见问题:进程与线程的区别、死锁条件、内存分页和分段机制
- 学习程度:不需要做笔记,心里有个印象即可;一遍
2. 计算机网络
- 学习资源:B站的“湖工大教书匠”教学视频
- 学习要点:网络分层模型(OSI 和 TCP/IP)、常见协议(HTTP、TCP、UDP)、Ping原理
- 面试常见问题:TCP三次握手和四次挥手、HTTP状态码、HTTPS加密原理
- 学习程度:需要记笔记
3. 数据结构
- 学习方法:结合刷题,在实践中理解数据结构的特点和应用场景
- 学习要点:数组、链表、栈、队列、树、哈希表、图等
- 学习资料:github资料:《hello 算法》
- 学习程度:熟练掌握
4. 整理面经(重要)
- 《阿秀的学习笔记》:用于整理操作系统、C++等方面的面试经验
- 《小林 Coding》:用于整理计算机网络的面试经验
- 牛客、小红书:面试前整理对应公司面经
- 面经总结:多读几遍面经,便可算是八股入门,计算机四大件是基础中的基础,针对岗位需要具备的基础知识继续深入学习
二、岗位针对性学习
根据目标岗位,除了基础知识外,还需要有针对性地学习相关知识。
嵌入式方向
1. 熟悉 Linux 系统
- 学习资源:大丙的教学视频和笔记
- 学习内容:Linux 基本命令、Shell 编程、Linux 下的 C/C++ 开发、进程线程管理、网络编程、IO多路复用
- 实践:在 Linux 环境下编写和调试程序
2. 学习单片机(STM32)
- 学习内容:STM32 的架构、GPIO 操作、中断、总线等
- RTOS
- 实践:找一个实际项目进行实践
3. 学习实时操作系统(FreeRTOS)(加分项)
- 学习资源:韦东山的相关课程和教材(微信上有)
- 学习内容:任务调度、信号量、消息队列、内存管理
- 实践:基于 FreeRTOS 编写多任务程序,理解实时系统的特性
后端开发方向
- 不需要学习单片机
- 需要学习数据库,设计模式等
- 其他“编外能力”:版本管理工具 Git、编译工具 CMake、调试工具 GDB
三、刷题准备
- leetCode 刷题《代码随想录》:这本书涵盖了大量的经典算法题目和解题思路,2遍《labuladong的算法小抄》:提供了清晰的算法思维导图和技巧《LeetCode hot100 题》:集中练习高频面试题,3-4遍《灵茶山艾府》:LeetCode 题解排序算法
刷题建议
- 理解每道题的核心算法和优化方法
- 尝试不同的解题思路,比较它们的时间和空间复杂度
- 定期复习,深化记忆
四、工具和软技能
1. 版本管理工具(Git)
- 学习内容:Git 的基本操作(clone、commit、push、pull)、分支管理、合并冲突解决
- 实践:在团队项目中使用 Git 进行协作,掌握工作流
2. 构建工具(CMake)
- 学习内容:CMake 的基本语法、配置文件编写、跨平台构建
- 实践:使用 CMake 管理项目,生成 Makefile 或其他构建系统
3. 调试工具(GDB)
- 学习内容:GDB 的基本命令(break、run、next、print 等)、调试核心转储(core dump)文件
- 实践:在开发中使用 GDB 进行断点调试、跟踪程序执行流程
五、时间线
研二 9月开始
- 刷 LeetCode,开始刷各种学习视频,计算机基础原理最先学习,之后面经整理
3月-5月
- 开始投递实习(投递不到 20 个),准备实习面试,争取拿到 offer(项目负责人,有一篇 SCI 二区论文)
- 提前汇报、做项目,提前准备面试
6月
- 再做实验室项目,开始投递秋招提前批(卡双九)
7-8月
- 实习,投递秋招提前批(7月中旬),简历根据岗位 JD 修改
9月
- 正式秋招批次开始
六、秋招心路历程
- 关于实习实习非常重要,尤其是对于进大厂的面试,实习可以显著提升竞争力。
- 关于紧张刚开始面试时,容易紧张,尤其是心仪公司的面试。到后期,会从面试官的提问中了解更多岗位需要的知识,帮助自己更好地准备。
- 关于海投海投给自己多一些机会,但要定制简历和面经,不要盲目海投。要有目标并长期准备。
嵌入式软件工程师面试完全指南
面经一共32篇文章,12w+字数,包含全部最新的面试必问考点,4.7w+同学学习,3200+订阅,非常适合在找工作面经薄弱的同学,3500+订阅还会涨价到39.9,提前订阅提前享受,持续更新中。
原帖链接:https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM