Computer science —— 书单


最好的学习方式是:实践+理论学习!!html

第一本书:

深刻理解计算机系统(原书第2版)(Amazon五星图书,被誉为“价值超过等重量黄金的无价资源宝库”)

这里我给的连接是链到个人豆瓣的笔记了,提供了几个辅助的相关站点。linux

这本书会让你对计算机、编程有个真切的体会,入门神书。不求全看,按需而看。此书对C语言有要求,但不高,看时参看相关书籍便可。c++

Structure and Interpretation of Computer Programs :号称巫师书,中文翻译通常,英文版比较难度(也许个人英文太差了= =#),我最近在看~~之因此推荐这本书源于这里  、这里。。。这是Mit一年级同窗读得书,相比之下,咱们却在学C语言,mit的C语言是学生自学的 ,由此来看就更有必要看上一看。。。最近开始关注国外的大学课程设置,这很是很是有必要!!!对比下咱们学校DLNU。。。git

编译原理 : 龙书,本书地7,9,11章内容能够称之为登峰造极!另外,本书的每一部分都是以往学过的知识的可贵的精良的实践,好比,离散数学的,形式逻辑、有限状态机,树。。。Programming language的各类特性。。。正则表达式。程序优化,各类算法。总之巨细靡遗,对计算机科学的一次小检阅。。。



数学程序员

离散数学与组合数学(第5版) :本书初版出版于1985年,至03年第5版。内容上要远远好过 Rosen的。

Enumerative Combintorics :最近开了第一章,难度不是通常的大,须要一个很是夯实的数学基础!!本书做者是当今组合数学界的领军人Richard P. Stanley 本书共两卷,卷一第二版还未付梓印刷,不过能够下到最新的Ebook。个人是version 15.这本书,能够称之为组合数学界的圣经!我很是喜欢。做者为人很是好!!github


具体数学 :高老师的书,不要多说,很注重演算能力的培养。
web

什么是数学 :数学基础知识概念大普及,还没抽出空来看的说。。。爱因斯坦对本书有过书评。。。。
面试

离散数学及其应用 ,Rosen的已经出到第六部了,我的细读过,内容从深度广度,以及说理透彻方面都不及离散数学与组合数学(第5版) 正则表达式

组合数学,内容不错的组合数学的书。能够配合着看。。算法

A Course in Probability Theory (Kai Lai Chung) :几率论的书,做者是几率教父钟凯莱~~~国人的骄傲。。。


若是大学期间,或是工做后有时间,把这些本书理解,内化掉,能够说对于计算机人来讲功德圆满了~~~

以上三本书 大同小异,各有侧重点,我把数学放在最靠前的位置,是想告诉你:若是计算机系只开一门课,我会选择这门——离散数学与组合!!记得有位计算机牛人说过,算法只是数学加一点技巧。下面的算法模块中列了刘未鹏的3篇文章,洋洋洒洒 上万字,说的深入,但我觉得。想学好算法,一句话就够了——把上面的3本书,看透了。以后拿上数据结构与算法分析 去泡poj。。。。但愿你们以批判的角度,去接受我说的话,切忌,不可盲从!!!!


算法:

知其因此然(以算法学习为例) By 刘未鹏(pongba)

知其因此然(续) By 刘未鹏(pongba)

知其因此然(三):为何算法这么难?

How to solve it: a new aspect of Mathematical method

数据结构与算法分析 :做者Mark Allen Weiss的老师是下面《算法C实现》的做者Sedgewick ,这是我所读过的最好的算法书籍深刻浅出建议你们买本英文的,很容易读懂~~

算法设计与分析基础:符合Pongba给定的对于算法学习方法和思想

各高校ACM平台

算法导论: 内容丰富,严谨!值得一看

算法C实现I~IV :做者Robert Sedgewick 的老师是 Knuth 

算法C实现V 

编程技巧篇

Google代码风格

Hacker's Delight 这本书能够称得上操做 二进制位、整数到达了登峰造极的地步了~~书挺薄300页,比较难度~~熟读此书,面试这种题不用愁了~~~

C/C++:

你应当如何学习C++(以及编程)(rev#1)  By 刘未鹏(pongba)

学习C++:实践者的方法(Beta1)  By 刘未鹏(pongba)

c程序设计语言

c语言深度解剖:解开程序员面试笔试的秘密 

C++程序设计语言

C++程序设计原理与实践

c++语言的设计和演化

Effective C++:改善程序与设计的55个具体作法:第3版

Linux Books:

0.0好吧,若是你对Unix/Linux没激情、不了解,我建议看看这本书,领略Unix艺术和开元文化的最佳读本。本书内容有必定深度,至少应该读读前三章,会让你对Unix文化有一个清晰的认识。

Unix编程艺术:  我的认为本书翻译极佳,原本想推荐英文版的了。

0.1最新!最全!最权威!Linux 编程指南!

The Linux Programming inTerface A Linux and UNIX® System Programming Handbook: 绝对是本霸气的书囊括Linux应用开发各个主题,更幸运的是本书Ebook很是精美,真是幸福死了~~

0.2 鸟哥的私房菜,主要在应用层(即shell命令层)对Linux的诠释,此书真乃Linux shell应用的极致,你非看不可。

鸟哥的Linux私房菜 基础学习篇 第三版 :不习惯繁体的同窗,能够配合New TongWenTang (新同文堂)繁简转换。你一样能够去买纸质的~

0.3有些知识你能够在这里找到~~看了目录感受不错,最近准备看;别买中文版,翻译太烂~~建议直接看英文Ebook

The Linux Programmer’s Toolbox 

1.内核书籍

因为国内翻译国外书籍的翻译质量、以及有些机制必须深刻内核方能明白,因此即使你不搞内核开发我也建议你买本内核的书备在案头,即使你不看,放也要放在那里。我相信,不就以后你就会看,仅推荐如下两本:

深刻Linux内核架构:http://www.china-pub.com/196739

深刻理解linux内核:http://www.china-pub.com/36767 

2.系统编程

Unix环境高级编程(APUE):http://www.china-pub.com/28766

APUE此乃圣经级别书籍,你不能不看,书中内容部分过期,或者废弃好比(STREAMS)。

Linux程序设计:http://www.china-pub.com/196711

此书与APUE殊途同归,相对APUE更贴近Linux,且内容较新10新版,但稍逊于APUE。

Unix网络编程:进程间通讯(UNPv2):http://www.china-pub.com/196859

虽然是98年的书,请相信我这是最好讲解的IPC进程间通讯的书,很是经典。部份内容过期,看时参考个人博客。

Beej's Guide to Unix Interprocess Communication:http://beej.us/guide/bgipc/  

这本书是我偶然间,在wikipedia上发现的。还未读,可是很新(10年12月)。主页能够下到pdf版。

3.网络编程

Unix网络编程:Socket API(UNPv1)

UNPv1是LInux网络编程的圣经,书中内容极为经典,但有若干章节早已过期,看时需注意。

追踪Linux TCP/IP代码运行--基于2.6内核 最近准备看~~陆陆续续看了前几章,感受很是不错! 

Beej's Guide to Network Programming:主页能够下到pdf版。

4.Shell编程 

Linux命令行和shell脚本编程宝典:http://www.china-pub.com/45924

我一直在看,能够,大部份内容和鸟哥的有重合。

TCP/IP

计算机网络 第五版 :谢希仁编著。。。

我看过:Stevens的TCP/IP 详解和Commer的用TCP/IP进行网际互联 都不错,但我认为这本书 更好一些!!

设计模式

大话设计模式

设计模式:可复用面向对象软件的基础(模式中的泰山北斗)

Head First设计模式(中文版)

汇编

汇编语言(第2版)

进阶的书

程序员修炼之道  【鼎力推荐!】

程序设计实践 

时间管理

奇特的一辈子 【只作启发之用】

电子书下载站点

http://library.nu/ :pongba推荐的~~~很是全,个人电子书几乎都是在这了download的!

http://www.freebookspot.cc/:本身找的,也不错!

http://ishare.iask.sina.com.cn/ :sina共享,中文站图书也挺全!

Linux OS & Utilises

Ubuntu对于咱们来书 ,学习linux ,就要有一个顺手的系统 ,我使用 过Ubuntu Fedora这两个系统,这里推荐下Ubuntu10.10虽说 Canonical 对开源社区的贡献不多,Ubuntu 真的很好用呀 呵呵。

Chrome在我看来chrome是最优秀的浏览器。简洁的UI对于宽屏笔记原本说节省了好多屏幕呀;同步功让你的收藏夹随身携带,特别是使用linux和windows双系统的用户。最好的是你能够这样,把Bookmakrs Bar做成这样,用起来很方便:

Vim:快!

Emacs:强大!

Eclipse:Linux下IDE首选。

Ailurus 一款很是优秀的系统管理软件,相似于windows优化大师,用了就知道。

libgooglepinyin一直以来,linux上的输入法总让人,肝肠寸断,不过这个很是顺手了!

Audacious:我最喜欢的mp3播放软件。

星际译王:呃。。。很好用。前些日子对比了灵格思,金山词霸,有道词典,最终得出星际译王很是优秀!!

Xmind:构思你的思惟导图吧。

大神的blog

pongba我的主页:http://mindhacks.cn/

催天翼:https://github.com/tianyicui

linuxeden

TED