看到很多学计算机的同学在寻找书单,我想推荐一下这本书,很多优秀的前辈也都推荐过,哈工大、南京大学等双一流院校考研专业课就是考这本书.
void CSapp(){
《深入理解计算机系统》
他问我这本书怎么样,好不好。
他所提到的这本书就是在豆瓣上评分几乎满分的书。
其中第三版,评分高达9.8分,可以说是豆瓣上计算机相关书籍中评分最高的一本了。

毋庸置疑,这是一本再好不过的书。 也是我推荐的第一本书。
这本书讲的是什么? 它从你的计算机讲起,描述你的主机中有什么部件,你的主板上有什么零件,CPU、内存和硬盘之间怎么连接的。
它还描述了你写的程序是怎么从一个文本文件被编译、链接变成汇编码,又是怎么从汇编语言变成机器码,以及怎么被计算机执行的。
它还会讲到计算机网络、组成原理、进程、线程等等,从硬件讲到软件,从里讲到外。
它就像一张网,把我们整个计算机生涯中可能遇到的知识给组织起来了。

读了这本书我们有什么收获呢?
它能让我们明确我们在某一阶段欠缺什么知识。 这本书特别适合那些喜欢刨根问底的同学。 当你写完程序之后,如果你很想知道你写的代码怎么就能被计算机给执行了; 如果你不知道自己学了数据结构、操作系统等课程有什么用。 那么这本书非常适合你。
可是,这是一本对新手不友好的书。

怎么去理解呢? 本书是建立在你会使用C或者Java等高级编程语言的基础上编写的。 全书使用了大量的C程序作为例子。 所以,如果你还不会基础的C,那么这本书看起来就会比较吃力。
部分同学看到这里又觉得丧失了兴趣,因为你不会C,你可能要错过这本书了。 其实没必要着急,谁都是从不会到会学起来的。 我也是在不太会编程的时候开始看这本书的,也是慢慢去理解的。 我在大学二年级购买了这本书,现在还在路上。
我一开始也看不懂,后来重复地翻开,断断续续看了好久,每一次读都有新的感受。
虽然到现在我也还没看完。
这本书对得起它接近满分的评分。

学习的过程是不能急的,特别是还在上大学的朋友,你们有大把连续的时间,这就是资本。 所以,如果真的是想把编程变成自己职业的人。
你需要一本这样的书。
彻头彻尾地学习计算机的原理后,你会变成一个能去设计程序的人。
而那种一上来就直接照葫芦画瓢、不求甚解、还想去编程的同学,最后多半从事重复性的工作。
随着时间一天天过去,这两种人的差距会越来越大。

在看这本书之前,我想先推荐一门课。 哈佛大学的CS50。
这门课对新手是友好的。
这门课是上述那本书内容的精简版,简单而有趣,所以在看上面那本书之前,可以先看看这门课。
我很庆幸自己在大二就看了这门课,在第一堂课上,这位极具魅力的老师为了给大家讲解什么是二分查找,撕了他手中的这本书。
名校就是名校。 Always learn from the best!
这门课一共20集,一天看两集也就只需要10天。
所以,对于真正对计算科学感兴趣和将来要进入这个行业的初学者们。 为了以后能做一个设计程序的人,我们一定要学习计算机相关原理,否则真的很难走远。 这是一个学习编程5年的初学者给你的建议。
说了这么多,下面我们总结一个比较合理的学习顺序:
1.哈佛大学的CS50

这门课只要高中正常毕业就可以听懂,如果你已经有计算机专业的很多基础可以跳过这门课.
2.《C Primer Plus》

这本书是讲解C语言的,不知道大家发现没有,很多讲解计算机科学相关的书籍,如描述操作系统、计算机网络、数据库等学科的书,里面的例子几乎都是用C语言描述的。
虽说很多人认为C语言很古老,可是它还真的挺有用,毕竟我们的unix系统是用C实现的,贴近系统的编程语言,更适合系统编程。
所以,如果你有时间,我建议你看看这本书,它能让我们更好地理解计算机。 并且,这是一本对新手友好的书,由浅入深。
3.《深入理解计算机系统(第三版)》
你都开始看C语言了,那么也就可以开始看这本圣书了,前文我已经对这本书有了基本介绍,在这里就不再赘述了。
诸位好好加油! }
int main(){
CSapp();

以上.
return 0;
}