我也没完全读完,但是书架上都有的。 当然有些书都读完了,还做了习题。
从入门开始
计算机的入门书籍 应该是这本 “编码的奥秘” 如果你对计算机一点都不懂,如果你会一点dos 或者windows 的操作。 那么赶紧忘记它,然后从开始看这本书,
这本书很有趣,我在离开学校很多年后,才知道这本书,才真正的知道了 所谓 数电 模电 和我们计算机的联结。 学习好的同学请绕路
然后你应该看c 编程语言。 这本书也就打个基础,离你真正掌握 指针 什么的 距离还远。
读完了大概能写个小程序。
剩下的先补一下基础 数据结构。 清华版 c 版本的就行。 这本书内容也可以说是包罗万象。 如果同学属于天之奇才读完这本书就可以不用继续向下看了,您可以去做一个牛人了。
不牛的继续读。下面的分支挺多,
我建议先学汇编吧。 王爽那本 很不错, 虽然学了实际用处也不大,但是对体系理解当然会深刻很多。
然后学习 c++ 吧。
c++ 学习可以说博大精深, c++ primer 也能算是走马观花。并不扎实。不扎实 是因为里面的
技术点很多,很容易深陷其中。我也没精力全部理解。
c++ 要继续 就是 effective c++ more effective 那几本技巧书, 这个难度是有点的。
stl 标准库
stl 源码剖析 2书可以一看, 这两本 第一本我看了个80% 可以说掌握大部分的stl 操作,第二本却没坚持下来,惭愧。
更深难度的 more inside , c++ template 我都没看,或者买了 在那里吃灰。 惭愧惭愧。 这些书可以面试的时候侃侃,
比如我上次面试,有个讨厌的家伙就拿了虚表的具体实现问个不停,很烦。我又不是面试编译器程序员,怎么可能专研这个东西呢
如果这时候想在设计方面有所发展 那就是 head first 的 设计模式了。 按照这个线路下来 应该能接上。设计模式这书是我看过
最有趣的了,唯一不足就是用的是java, 我不会java, 好在c++ 实现也简单。
剩下 可以看 c/c++ 深入系列。 蛮古老的系列书, 我有几本 鱼书 和c 陷阱, c/c++代码精粹。 陷阱先看吧, 鱼书有相当难度,我n年前无知的看过,现在已经回忆不起什么了。精粹一书 有些言过其实,代码并无太多出彩处。
c++ 是需要练习的语言。只看不练是写不好的,只写不看也只会重复简单的垃圾代码。
语言又2种, 1种没人用,1种天天被人骂。
c++ 属于后者。
linux :
入门就学 鸟哥的linux 系列吧,很不错 细致,入门即可。
shell ,学个大概就行了,没必要学太深
剩下就是看 linux 程序设计3 unix 高级环境程序设计 这本太难了,估计啃不下来的
等你熟悉到一定程度在回来看。
这个时候可以看prthead 多线程程序设计。此书翻译得不太好,很晦涩。但是我没找到更好的书了。
友情推荐 OReilly.Linux.System.Programming - Talking.Directly.to.the.Kernel.and.C.Library
这书是cu 一位朋友翻译的,内容详实,深入浅出非常适合阅读。作者love 是内核主要人物,需要的朋友不要错过。
系统深入的话 可以看 深入理解计算机系统 此书非常好。放在这里说是因为有了上面资料打底,你现在看应该不难了。
学完了很多问题就有深刻理解了,我曾经写过mail 向作者要书的答案,但因为不是教师,别人不给我。谁有答案的请mail 我 ppmsn2005@gmail.com
谢谢
算法部分么 算法导论
编译器部分 龙书
这2本都没好好看,蜻蜓点水的过了。 想深入这2本不能跨过。 不练好这2门,所学it 都是空, 我现在学的还都是空啊。
至于高爷爷的 那几本书,那就搞算法的人去看吧,我知道你们也不会去看的。
网络了,现在不学点网络是没办法混的
计算机网络 王小虎翻译的第三版。 后来好像是潘老师翻译的。 这本是 写操作系统的大牛所写,可以说很好。可能你们也都学过,但是我想说你们学了和没学是差不多的。懂的全是概念,此书缺实践。
实际点 就是richard stevent 大师的 TCP/IP 卷一了,我当时完全靠自学,花了半年,一个个包的观察流向,可以说基本掌握了 这本书,期间场景历历在目。此书学会IPV4 可以说是完全掌握了。99% 的网络问题都难不倒你了, 1% 我还没遇到过,其实这就是回归了网络的本质, 一些信息按照一定的规则在传输。 使用的工具
推荐IRIS, 当然wireshake 也很好。
剩下就是unix 网络编程 卷1 ,这个学会 基本就能说掌握网络编程了。 可以结合 unix 高级环境编程一起看。
unix 网络编程卷2 是讲IPC 的,这个可以根据需要学。
windows 部分:
我是被rd 工具宠坏的人, windows 程序设计 买了很多年也没看过... 只懂基本的消息循环,消息处理,所以这个系列就无法推荐了。
windows 多线程编程 侯捷的 很不错,可以看看。 windows 程序设计里面 也有一章介绍多线程的,可以结合看。
大牛来补充吧。
内核开发:
心向往之 憾。
boost:
好像没太多好资料,凑合着文档看看吧。因工作环境要求,用得也少,你可以选择几个库先使用起来,boost是下一代的STL,不可不学,一定要学。
至于数据
网页编程
我就比较外行了,也不板门弄斧。
3D
OPENGL
CUDA
的请大牛补充