tonyluj
2014-07-14 22:18:17 +08:00
正巧也在朝这个方向努力(后端工程师),不过我不太打算深入学习C++,并且我也掌握一些其他可以赚钱的技能,譬如Python和Go(一半大公司才有,或者游戏后端开发)
基础(没基础,下面的书就不要看了):
操作系统 Minix作者写的,刚退休,泛泛的讲了操作系统,务必熟悉
深入理解计算机系统,不错
数据结构,找一本靠谱的即可,大话也可以
算法,看 Sedgewick的算法即可,算法导论也不是很难,跟数学关系不大,主要还是逻辑思维能力
Linux:
APUE,不看这本书都出门都不好意思和别人打招呼,缺点是面面俱到,针对Unix,没有特别倾向于Linux
Linux Kernel Development by Robert Love 介绍内核,比深入理解Linux内核简单通俗点
Linux System Programming by Robert Love 比较喜欢看Love的书
深入理解Linux内核 内容稍多
UNP,内容稍旧,也就看看Socket,了解一下过时的poll/select,最新的epoll/kqueue直接看源码吧
LDD,看看驱动也无妨
TCP/IP V1 必须要看,TCP/IP三四次握手,流控,滑动窗口,RTT,状态图,必须信手拈来
C:
TCPC 经典啊,不能不看
C专家编程,讲了讲C语言的事情,务必掌握C各种数据类型占用内存,const使用,C程序在内存的结构BSS等等
C指针与陷阱
C标准库
Python:
官方Doc
从项目中获取经验比看书印象深刻
C++:
我一直当带class的C用,C++目的就是一个多范式的语言,怎么用,怎么选择是自己的事情
STL/EffectiveCPP不错
C++对象模型也不错
source code:
推荐memcached 少,libevent
redis
Nginx 必看
python的有tornado\gevent(libev)\twisted(不看也可以)
其他技能:
VIM/emacs 选一个,推荐vim
GDB必备
makefile要会
git要会
要完整的做下来,大概需要1-2年左右,并且做Linux C开发稍微枯燥一点,别人写个Android小游戏正在向像别人炫耀的时候,别放弃别懊恼~~~北大青鸟培训Android的老多了,为啥很少有培训Linux开发的~~~
葵花宝典给了LZ,如果楼主能完整的做下来,大概能满足腾讯/阿里的后端/系统工程师的要求~~~