第一阶段
1.1 C语言入门
入门选一本简单的、薄一点、不要出错的书就可以了,例如谭浩强老爷子的书,选太厚的容易打击你的信心和学习兴趣,谭老爷子的书虽然被很多人喷,但对于初学者来说还是比较合适的。在入门之后才建议去看C语言的经典教程:
《C Primer Plus》
这本书比较厚,知识点比较全,可以用于查漏补缺。
《C程序设计语言》(The C Programming Language)黑皮书这本书虽然经典,但是我个人觉得不适合初学者去看,个人看来这本书更像是在叙述C语言的标准,所以讲得比较精炼,初学者是看不懂的。
项目实战:
学完C语言之后可以尝试写一个无界面的学生成绩管理系统、图书管理系统。我大学时C语言的课设就是写一个学生成绩管理系统。
1.2 基本的数据结构
单向链表、双向链表、循环队列、循环缓冲区、简单的二叉树
1.3 学会使用linux操作系统
掌握基本的linux命令,ubuntu(或者其他发行版本)操作系统的使用。
1.4 计算机网络基础
tcp/ip网络模型、osi参考模型
着重掌握tcp、http、udp、ip协议
学会使用抓包工具,结合fiddle工具、wireshark等抓包工具学习网络协议。
推荐谢稀仁《计算机网络》这本书,经典的计算机网络教科书。
第二阶段
2.1精通C语言
想要精通C语言并不容易,没有一两年的磨练难谈精通。
推荐书籍:
《C专家编程》
《C与指针》
《C陷阱》
《C程序设计语言》(The C Programming Language)黑皮书
C语言的难点在于指针和数组,前面三本书大部分的章节都是围绕这两点展开。
《C程序设计语言》是由C语言的设计者Dennis M. Ritchie和著名计算机科学家Brian W. Kernighan编写的一部介绍标准C语言及其程序设计方法的权威性经典著作。整本书有种提纲挈领的感觉,适合在学完C语言之后再来慢慢品读,这本书很简练,废话很少,可以看成是一种标准。
2.2 最好掌握C++(不是必须,但推荐)
有了C语言的基础,学习C++语言是非常容易的,难点在于从面向过程到面向对象编程的转变,掌握面向对象的设计规则和设计思想。
入门书籍:
《C++ Primer Plus》
《C++ Primer》
C++进阶书籍:
《C++沉思录》
《Effictive C++》
《More Effictive C++》
《深度探索C++对象模型》
...
2.3 掌握linux C(linux应用程序开发)
学习上层的嵌入式linux应用程序开发和编译调试(gcc、gdb的使用)。
《UNIX环境高级编程》
《UNIX网络编程》
练手项目
实现一个最基本的tcp服务器/客户端程序
实现一个简单的http服务器
实现一个多人聊天室
实现一个多任务线程池
实现一个多进程通信
实现一个web服务器多进程并发测试工具
实现一个多进程
2.4 shell脚本
《linux命令行于shell脚本编程大全》
《linux shell脚本攻略》
其实也不用看书,找个系统的知识网站或者博客看下,比如菜鸟教程,再动手写下也可以。
2.5 Makefile语法
推荐 陈皓的系列文章,自行百度。
2.6 学习arm
认识arm体系结构
掌握基本的arm汇编
2.7 嵌入式系统的构建
建议买一个开发板。
交叉编译
ssh、telnet等工具的使用
samba服务器搭建
nfs文件系统挂载
kernel裁剪、编译、烧写。
基本的uboot命令、uboot编译烧写、尝试自己添加一个uboot命令。
文件系统制作、裁剪、烧写(busybox使用)。
第三阶段
3.1 学习内核
从事应用层、驱动层的都应深入学习内核,驱动层的工作对于内核的要求更高一些。
三大主题:
进程管理与调用
进程、线程
内存管理
进程的内存布局
文件系统
推荐书籍:
《深入理解Linux内核》(第三版)
《Linux内核源代码情景分析》
3.2 操作系统原理
很多的高校把这个课放在了大一来教,个人觉得在没有编程基础和学习linux操作系统之前来学习操作系统原理,有点枯燥和难以理解,很多的知识点不能引起学生的共鸣。按照很多人的学习路线,也是在有了一定的开发经验之后才来弥补操作系统的知识。
《深入理解计算机系统》
《操作系统概念》
这个属于内功心法,学了和没学的人在认知上是不一样的,学完操作系统原理,看待问题能够看得透彻一些。譬如,老生常谈进程和线程的概念,每一个人能讲出的深度都是不一样的。
3.3 学习行业相关的东西(稀缺人才)
到了这个阶段,你需要学习行业相关的东西,这取决于你想从事的行业,
流媒体 ---- rtsp、rtmp、onvif等协议
路由器 ---- 网络协议
机器人 ---- 实时操作系统
android
Qt
底层驱动开发
....
3.4 终生学习
学习是一生的事情,技术永远学不完,保持终生学习的态度才能不被社会所淘汰!
转载:https://zhuanlan.zhihu.com/p/165417839