很多时候,因为天赋和家庭背景的问题,我们无法成为最优秀的那个人,甚至达不到优秀。就好像我们读书的时候考第一名的永远只有一个,但是只要你足够勤奋和律己,那么至少可以争取到前50%的排名。投射到工作上,工作后,需要学习的知识都是自由选择的,涉猎的知识范围只会越来越广,如果你还想着要做最优秀的工程师,那你肯定会被现实重挫的。所以不要想着去做一个优秀的工程师,要想着如何去做一个合格的工程师,对我自己而言,则进一步缩小要求:如何做一个合格的嵌入式软件工程师。
为了鞭笞自己多读书,增加成就感,远离浮躁,给自己整理个学习清单吧。
下列书籍或者视频都是我自己亲自接触过,并且认为值得嵌入式软件工程师学习的资料,排名不分优先级。
备注:
- finish 表示至少完整阅读过一次,不代表完全吸收,一本书看一遍跟看三遍的效果是完全不一样的;
- reading 表示阅读过,未完成,括号内表示大概的进度;
- not start 表示还没开始阅读,嘿嘿,没学过就没学过,敢于面对自己的不足,不丢人;
- trying,尝试阅读中;
- 打分是我个人主观行为,没有任何依据;
- 分数只用于在相同知识的书籍间进行对比;
一、值得一看的书籍
计算机核心类
- 《数据结构》
- 《计算机网络》
Linux驱动类
- 《嵌入式Linux 应用开发完全手册》,finish
- 《Linux 设备驱动开发详解》,finish
- 《Linux 设备驱动程序》,not start
- 《精通Linux设备驱动程序开发》,not start
- 《精通Linux设备驱动程序开发》,not start
操作系统类
- 《一步步写嵌入式操作系统》,finish
- 《Linux 内核设计与实现》,reading (4/5)
- 《深入理解 Linux内核》,reading (1/10)
语言类
- 《Linux Shell 脚步攻略》,finish
- 《C++ 语言程序设计》,郑莉/董渊,finish
- 《C++高级编程 第4版》,reading
工具类
- 《pro git》,finish
- 《Python 编程快速上手》,finish
- 《python编程:从入门到实践》,reading (1/2)
应用编程类
- 《C++ GUI Qt4 编程》,reading (9/20)
- 《Qt Creator 快速入门》,trying
- 《Qt 5.9 C++开发指南》,trying
- 《Unix 环境高级编程》,reading (1/2)
- 《Android 系统源代码情景分析》,reading (1/3)
- 《Unix 环境高级编程》,reading (1/3)
- 《Linux 程序设计》,reading
软件设计类
- 《代码大全》
- 《人月神话》
- 《软件随想录》,finish
程序人生类
- 《无伤跑法》,not start
- 《软技能-代码之外的生存指南》,finish
- 《掌控习惯》,finish
二、值得学习的视频教程
- 《韦东山嵌入式Linux-第一期_硬件基础》,finish
- 《韦东山嵌入式Linux-第二期_Linux驱动》,finish
- 《韦东山嵌入式Linux-第三期_应用编程》,finish
- 《韦东山嵌入式Linux-第四期_Android底层》,reading
- 《李治军-操作系统》,finish
三、值得阅读的源码
C
- Mjpg-streamer,简单的视频流服务器;
- Gstreamer,支持Windows,Linux,Android, iOS的跨平台的多媒体框架;
- Libevent,轻量级的开源高性能事件通知库;
- RetroArch,一个游戏模拟器整合软件;
C++
- Qt,C++图形用户界面应用程序开发框架;
- Pegsus,基于Qt的跨平台游戏模拟器前端;
Shell
- RetroPie,一个游戏机模拟器软件包的管理脚本;
Makefile
- Buildroot
- OpenWrt
时间线
2020年
- 《软件随想录》,finish
- 《掌控习惯》,finish
- 《软技能-代码之外的生存指南》,finish
你和我各有一个苹果,如果我们交换苹果的话,我们还是只有一个苹果。但当你和我各有一个想法,我们交换想法的话,我们就都有两个想法了。如果你也对嵌入式系统和开源软件感兴趣,并且想和更多人互相交流学习的话,请关注我的公众号:嵌入式系统砖家,一起来学习吧,关注或转发都是是对作者最大的支持,谢谢大家,祝工作顺利~