编程
Python深度学习 豆瓣 Goodreads
Deep Learning with Python
10.0 (6 个评分) 作者: [美] 弗朗索瓦•肖莱 译者: 张亮 出版社: 人民邮电出版社 2018 - 8
本书由Keras之父、现任Google人工智能研究员的弗朗索瓦•肖莱(François Chollet)执笔,详尽介绍了用Python和Keras进行深度学习的探索实践,涉及计算机视觉、自然语言处理、生成式模型等应用。书中包含30多个代码示例,步骤讲解详细透彻。由于本书立足于人工智能的可达性和大众化,读者无须具备机器学习相关背景知识即可展开阅读。在学习完本书后,读者将具备搭建自己的深度学习环境、建立图像识别模型、生成图像和文字等能力。
SQL进阶教程 豆瓣
達人に学ぶ SQL徹底指南書
9.1 (7 个评分) 作者: [ 日] MICK 译者: 吴炎昌 出版社: 人民邮电出版社 2017 - 11
本书是《SQL基础教程》作者MICK为志在向中级进阶的数据库工程师编写的一本SQL技能提升指南。全书可分为两部分,第一部分介绍了SQL语言不同寻常的使用技巧,带领读者从SQL常见技术,比如CASE表达式、自连接、HAVING子句、外连接、关联子查询、EXISTS……去探索新发现。这部分不仅穿插讲解了这些技巧背后的逻辑和相关知识,而且辅以丰富的示例程序,旨在帮助读者提升编程水平;第二部分着重介绍关系数据库的发展史,把实践与理论结合起来,旨在帮助读者加深对关系数据库和SQL语言的理解。此外,每节末尾均设置有练习题,并在书末提供了解答,方便读者检验自己对书中知识点的掌握程度。
ggplot2:数据分析与图形艺术 豆瓣
Ggplot2. elegant graphics for data analysis
作者: 哈德利·威克姆 (Hadley Wickham) 译者: 统计之都 出版社: 西安交通大学出版社 2013 - 5
中译本序
每当我们看到一个新的软件,第一反应会是:为什么又要发明一个新软件?ggplot2是R世界里相对还比较年轻的一个包,在它之前,官方R已经有自己的基础图形系统(graphics包)和网格图形系统(grid包),并且Deepayan Sarkar也开发了lattice包,看起来R的世界对图形的支持已经足够强大了。那么我们不禁要问,为什么还要发明一套新的系统?
设计理念
打个比方,想想我们小时候怎样学中文的。最开始的时候我们要识字,不认识字就没法阅读和写作,但我们并不是一直按照一个个汉字学习的,而是通过句子和具体的场景故事学习的。为什么不在小学时背六年字典呢?那样可能认识所有的汉字。原因很简单,光有单字,我们不会说话,也无法阅读和写作。缺的是什么?答案是对文字的组织能力,或者说语法。
R的基础图形系统基本上是一个“纸笔模型”,即:一块画布摆在面前,你可以在这里画几个点,在那里画几条线,指哪儿画哪儿。后来lattice包的出现稍微改善了这种情况,你可以说,我要画散点图或直方图,并且按照某个分类变量给图中的元素上色,此时数据才在画图中扮演了一定的中心角色,我们不用去想具体这个点要用什么颜色(颜色会根据变量自动生成)。然而,lattice继承了R语言的一个糟糕特征,就是参数设置铺天盖地,足以让人窒息,光是一份xyplot()函数的帮助文档,恐怕就够我们消磨一天时间了,更重要的是,lattice仍然面向特定的统计图形,像基础图形系统一样,有直方图、箱线图、条形图等等,它没有一套可以让数据分析者说话的语法。
那么数据分析者是怎样说话的呢?他们从来不会说这条线用#FE09BE颜色,那个点用三角形状,他们只会说,把图中的线用数据中的职业类型变量上色,或图中点的形状对应性别变量。有时候他们画了一幅散点图,但马上他们发现这幅图太拥挤,最好是能具体看一下里面不同收入阶层的特征,所以他们会说,把这幅图拆成七幅小图,每幅图对应一个收入阶层。然后发现散点图的趋势不明显,最好加上回归直线,看看回归模型反映的趋势是什么,或者发现图中离群点太多,最好做一下对数变换,减少大数值对图形的主导性。
从始至终,数据分析者都在数据层面上思考问题,而不是拿着水彩笔和调色板在那里一笔一划作图,而计算机程序员则倾向于画点画线。Leland Wilkinson的著作在理论上改善了这种状况,他提出了一套图形语法,让我们在考虑如何构建一幅图形的时候不再陷在具体的图形元素里面,而是把图形拆分为一些互相独立并且可以自由组合的成分。这套语法提出来之后他自己也做了一套软件,但显然这套软件没有被广泛采用;幸运的是,Hadley Wickham在R语言中把这套想法巧妙地实现了。
为了说明这种语法的想法,我们考虑图形中的一个成分:坐标系。常见的坐标系有两种:笛卡尔坐标系和极坐标系。在语法中,它们属于一个成分,可自由拆卸替换。笛卡尔坐标系下的条形图实际上可以对应极坐标系下的饼图,因为条形图的高可以对应饼图的角度,本质上没什么区别。因此在ggplot2中,从一幅条形图过渡到饼图,只需要加极少量的代码,把坐标系换一下就可以了。如果我们用纸笔模型,则可以想象,这完全是不同的两幅图,一幅图里面要画的是矩形,另一幅图要画扇形。
更多的细节在本书中会介绍,这里我们只是简略说明用语法画图对用纸笔画图来说在思维上的优越性;前者是说话,后者是说字。
发展历程
ggplot2是Hadley在爱荷华州立大学博士期间的作品,也是他博士论文的主题之一,实际上ggplot2还有个前身ggplot,但后来废弃了,某种程度上这也是Hadley写软件的特征,熟悉他的人就知道这不是他第一个“2”版本的包了(还有reshape2)。带2的包和原来的包在语法上会有很大的改动,基本上不兼容。尽管如此,他的R代码风格在R社区可谓独树一帜,尤其是他的代码结构很好,可读性很高,ggplot2是R代码抽象的一个杰作。读者若感兴趣,可以在GitHub网站上浏览他的包:https://github.com/hadley。在用法方面,ggplot2也开创了一种奇特而绝妙的语法,那就是加号:一幅图形从背后的设计来说,是若干图形语法的叠加,从外在的代码来看,也是若干R对象的相加。这一点精妙尽管只是ggplot2系统的很小一部分,但我个人认为没有任何程序语言可比拟,它对作为泛型函数的加号的扩展只能用两个字形容:绝了。
至2013年2月26日,ggplot2的邮件列表(http://groups.google.com/group/ggplot2 )订阅成员已达3394人,邮件总数为15185封,已经成为一个丰富、活跃的用户社区。未来ggplot2的发展也将越来越依赖于用户的贡献,这也是很多开源软件最终的走向。
关于版本更新
原书面世之时,ggplot2的版本号是0.8.3,译者开始翻译此书时是0.9.0版本;该版本较之0.8.3,内部做了一些大改动。此后,ggplot2频繁升级,目前版本号是0.9.3,当然这也给本书的翻译过程带来了相当大的麻烦。因为译者不但要修正原书中大量过时的代码、重新画图,还要修正过时的理念,以及处理数次版本更新的影响。所幸,在翻译过程中,译者得到了本书审校殷腾飞博士、ggplot2开发者Hadley Wickham和Wistong Chang的大力帮助。
如果你是老用户,那么可能需要阅读下面的小节。之后ggplot2有过多次更新,尤其是0.9.0之后,ggplot2的绘图速度和帮助文档有了质的飞跃。关于0.9的更新,读者可以从https://github.com/downloads/hadley/ggplot2/guide-col.pdf下载一份细致的说明文档,但原文档比较长,而且有些内部更新问题我们也不一定需要了解,因此这里给一段概述。
ggplot2的帮助文档大大扩充了,过去头疼的问题之一就是一个函数里面不知道有哪些可能的参数,例如theme()函数,现在已经有了详细说明。
新增图例向导函数guide_legend()和guide_colorbar(),前者可以用来指导图例的排版,例如可以安排图例中元素排为n行m列;后者增强了连续变量图例的展示,例如当我们把颜色映射到一个连续变量上时,过去生成的图例是离散的,现在可以用这个函数生成连续颜色的图例(渐变色)。
新增几何对象函数geom_map()(让地图语法变得更简单),geom_raster()(更高效的geom_tile()),geom_dotplot()(一维点图,展示变量密度分布)和geom_violin()(小提琴,实为密度曲线)。
新增统计变换函数stat_summary2d()(在二维网格上计算数据密度),stat_summary_hex()(在六边形“蜂巢”上计算数据密度),stat_bindot()(一维点图密度),stat_ydensity()(密度曲线,用于小提琴图)。
facet_grid()支持X轴和Y轴其中一者可以有自由的刻度(根据数据范围而定),以往要么所有切片使用同样的坐标轴刻度,要么所有都自由。
geom_boxplot()开始支持画箱线图的凹槽(notch),就像R基础图形系统中的boxplot()函数。
新增函数ggmissing()用来展示缺失值的分布,ggorder()按照数据观察顺序先后画折线图,ggstructure()展示数据热图。
另外这次更新涉及到一些函数参数名称的变化,如果旧代码在这个版本中报错说有未使用的参数,那么用户需要再次查看帮助文档,确保输入的参数在函数中存在。在所有这些表面的更新背后,实际上ggplot2很大程度上被重写了,例如开始使用R自带的S3泛型函数设计,以及将过去ggplot2的功能继续模块化为一些独立的包,一个典型的例子就是标度部分的功能被抽象到scales包中,从数据映射到颜色、大小等外观属性可以由这个包直接完成。这种分拆也使得其他开发者可使用过去ggplot2内部的一些功能函数。
0.9.1版本主要解决了0.9.0版本中的一些漏洞。ggplot2在2012年9月4日发布了新的版本0.9.2,其中一些特性和更新有必要提及:
采用了全新的主题(theme)系统,opts()函数已被标记为“不推荐使用”(deprecated),将在未来版本中被取消,取而代之的是theme()函数,主题元素(theme element)由属性列表构成,支持继承,主题之间可以直接进行合并等操作。详情参见wiki页面:https://github.com/wch/ggplot2/wiki/New-theme-system 。
依赖于新的gtable包。 用来更方便地调整修改ggplot2图形中的图元,ggplotGrob()会返回一个gtable类,这个对象可以利用gtable包中提供的函数和接口进行操作。
所有“模板”类型的图形函数,比如plotmatrix(),ggorder()等等,已被标记为“不推荐使用”(deprecated),将在未来版本中取消。
在本书出版之际,ggplot2更新到了版本0.9.3,修复了0.9.2的一些漏洞,其主要更新包括
不再支持plotmatrix()函数。
geom_polygon()提速,比如世界地图的绘制快了12倍左右。
新增部分主题,比如theme_minimal(),theme_classic()。
本书的所有代码和图片都是针对新版本0.9.3的,在内容方面也根据版本更新对原文做了适当的增删填补,以满足读者的需求。
本书把影响正文阅读的彩图集中放在附录后面,读者可以随时翻阅。
致谢
在听说我们翻译完这本书之后,本书原著Hadley很高兴,给我们发邮件说:
I am excited and honoured to have my book translated to Chinese. ggplot2 has become far more popular than I ever imagined, and I'm excited that this translation will allow many more people to learn ggplot2. I'm very grateful that Yihui and his team of translators (Nan Xiao, Tao Gao, Yixuan Qiu, Weicheng Zhu, Taiyun Wei and Lanfeng Pan) made this possible.
One of the biggest improvements to ggplot2 since the book was first written is the ggplot2 mailing list. This is a very friendly environment where you can get help with your visualisations, and improve your own knowledge of ggplot2 by helping others solve their problems. I'd strongly encourage you to join the mailing list, even if you think your English is not very good -- we are very friendly people.
我们感谢这本书的译者,包括邱怡轩(第1~2章)、主伟呈(第3~4章)、肖楠(第5~6章)、高涛(第7~8章)、潘岚锋(第9章)、魏太云(第10章、附录以及翻译过程的协调安排和全书的LaTeX排版工作)。所有译者均来自于统计之都(http://cos.name )。
爱荷华州立大学的殷腾飞博士、中国人民大学统计学院的孟生旺教授、浙江大学的张政同学通读了译稿,提出了很多有用的建议,殷腾飞博士还提供了大多数新版本中的解决方案,并担任本书的审校。肖凯老师和余光创博士分别对第1~4章、第8~10章以及附录提出了很多修改意见,此外,中国人民大学的陈妍、李晓矛、谢漫锜三位同学、中国再保险公司的李皞先生、百度公司的韩帅先生、eBay公司的陈丽云女士、Mango Solutions公司的李舰先生、京东商城的刘思喆先生、首钢总公司的邓一硕先生、新华社的陈堰平先生在此书的翻译过程中也曾提过不少宝贵的建议,在此一并表示感谢。
为了更好地服务社区,我们还建立了翻译主页:https://github.com/cosname/ggplot2-translation ,读者可以在这里得到最新的勘误和书中的代码,也可以随时提出任何问题。
谢益辉
2013年2月26日
计算机科学概论(第11版) 豆瓣
Computer Science: An Overview
8.8 (5 个评分) 作者: J. Glenn Brookshear 译者: 刘艺 / 肖成海 出版社: 人民邮电出版社 2011 - 10
本书多年来一直深受世界各国高校师生的欢迎,是美国哈佛大学、麻省理工学院、普林斯顿大学、加州大学伯克利分校等许多著名大学的首选教材,对我国的高校教学也产生了广泛影响。
本 书以历史眼光,从发展的角度、当前的水平以及现阶段的研究方向等几个方面,全景式描绘了计算机科学各个子学科的主要领域。在内容编排上,本书很好地兼顾了 学科广度和主题深度,把握了最新的技术趋势。本书用算法、数据抽象等核心思想贯穿各个主题,并且充分展现了历史背景、发展历程和新的技术趋势,培养读者的 大局观,为其今后深入学习其他计算机专业课程打下坚实的基础。
本书深入浅出、图文并茂,内容引人入胜,极易引发读者的兴趣,绝无一般教材的枯燥和晦涩。此外,本书的教学手段多样、习题丰富,并且每章后都附有与本章内容相关的社会现实问题供读者思考和讨论,这些都很好地体现了作者强调培养学生分析问题能力的教学理念。
第11版新增了手持移动设备,特别是智能手机的相关内容,主要涉及第3章(操作系统)、第4章(组网)、第6章(编程语言)和第7章(软件工程)中。此外,书中还对软件所有权和责任、训练人工神经网络等许多相关内容做了更新,以反映最新技术面貌。
Java解惑 豆瓣
Java Puzzlers: Traps, Pitfalls, and Corner Cases
作者: (美)布洛克·加夫特 译者: 陈昊鹏 出版社: 人民邮电出版社 2010 - 11
你认为自己了解Java多少?你是个爱琢磨的代码侦探吗?你是否曾经花费数天时间去追踪一个由Java或其类库的陷阱和缺陷而导致的bug?你喜欢智力测验吗?本书正好适合你!
Bloch和Gafter继承了Effective Java一书的传统,深入研究了Java编程语言及其核心类库的细微之处。本书特写了95个噩梦般的谜题,中间穿插着许多有趣的视觉幻象,寓教于乐。任何具备Java知识的人都可以理解这些谜题,但甚至是最老练的程序员也会觉得它们具有挑战性。
多数的谜题都是些小程序,其行为诡秘,不可貌相。你能指出它们会做什么吗?根据这些谜题用到的特性以及各题的详细解惑方案,我们把它们松散地分成了几个部分。这些解惑方案超越了对程序行为的简单解释,向你展示下如何一劳永逸地避免底层的陷阱与缺陷。在本书的后面,有一个方便的陷阱和缺陷目录,可供以后参考。
一旦你解决了这些谜题,那些曾经愚弄过最具经验的Java程序员的隐晦且有违直觉的语言行为,将再也无法把你骗过。
计算机程序设计艺术・卷1 豆瓣
The Art of Computer Programming, Vol 1: Fundamental Algorithms
作者: Donald E. Knuth 译者: 李伯民 / 范明 出版社: 人民邮电出版社 2016 - 1
《计算机程序设计艺术》系列是公认的计算机科学领域经典之作,深入阐述了程序设计理论,对计算机领域的发展有着极为深远的影响。本书是该系列的第 1 卷,讲解基本算法,其中包含了其他各卷都需用到的基本内容。本卷从基本概念开始,然后讲述信息结构,并辅以大量的习题及答案。
第一行代码:Android(第2版) 豆瓣
作者: 郭霖 出版社: 人民邮电出版社 2016
本书被广大Android 开发者誉为“Android 学习第一书”。全书系统全面、循序渐进地介绍了Android软件开发的必备知识、经验和技巧。
第2版基于Android 7.0 对第1 版进行了全面更新,将所有知识点都在最新的Android 系统上进行重新适配,使用 全新的Android Studio 开发工具代替之前的Eclipse,并添加了对Material Design、运行时权限、Gradle、RecyclerView、百分比布局、OkHttp、Lambda 表达式等全新知识点的详细讲解。
本书内容通俗易懂,由浅入深,既是Android 初学者的入门必备,也是Android 开发者的进阶首选。
计算机体系结构 豆瓣
Computer Architecture:A Quantitative Approach,Fifth Edition
作者: [美] John L. Hennessy / [美] David A. Patterson 译者: 贾洪峰 出版社: 人民邮电出版社 2012
本书是最权威的计算机体系结构著作,是久负盛名的经典作品。书中系统地介绍了计算机系统的设计基础、指令集系统结构、流水线和指令集并行技术、层次化存储系统与存储设备、互连网络以及多处理器系统等重要内容。在这个最新版中,作者增加了当前炙手可热的云计算和手机客户端技术等相关内容,探讨了在手机、平板电脑、笔记本电脑和其他移动计算设备上云计算的软硬件实现方式。
交互式计算机图形学 豆瓣
Interactive Computer Graphics: A Top-Down Approach with Shader-Based OpenGL
作者: Edward Angel / Dave Shreiner 出版社: 电子工业出版社 2012 - 5
《交互式计算机图形学:基于OpenGL着色器的自顶向下方法(第6版)》采用自顶向下的方法并辅以面向编程的方式,基于现代可编程GPU的着色器编程,使用C++语言、OpenGL着色语言(GLSL)并结合OpenGL系统地介绍了现代计算机图形学的核心概念、原理和方法。《交互式计算机图形学:基于OpenGL着色器的自顶向下方法(第6版)》是作者多年来教学与科研工作的总结,涵盖了基于OpenGL着色器的交互式图形编程、三维可编程绘制流水线、变换与观察、光照与明暗绘制、曲线曲面建模等基本的计算机图形学内容以及离散技术、层级建模、过程建模、光线跟踪、并行绘制和体绘制等高级内容,并为读者进一步深入学习和研究,在每章后面提供了相关的建议阅读资料。《交互式计算机图形学:基于OpenGL着色器的自顶向下方法(第6版)》第六版进一步反映了计算机图形学的最新发展现状,面向图形应用开发并辅以大量的示例和完整的源代码,是一本“基础性与先进性、理论性与应用性、科学性与通俗性”相结合的内容全面而又系统的国外经典计算机图形学教材。
Wolfram语言入门 豆瓣
作者: Stephen Wolfram 出版社: 科学出版社 2017 - 1
Wolfram语言是一种基于知识、符号编程、自然语言风格的超大型编程语言,是 Wolfram 此前两项里程碑式的作品——科学计算平台 Mathematica 与计算知识搜索引擎 Wolfram Alpha 的结晶。Wolfram公司正在中国推广该软件,本书是Wolfram软件的基础教程,英文版344页,全彩印刷,于2015年12月出版。中文译本将于2017年1月出版。该书作者Stephen Wolfram是Mathematica软件的开发者(1988年)。
Java编程思想 (第4版) 豆瓣 Goodreads
Thinking in Java
8.9 (18 个评分) 作者: [美] Bruce Eckel 译者: 陈昊鹏 出版社: 机械工业出版社 2007 - 6
本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel的文字亲和力和小而直接的编程示例面前也会化解于无形。从Java的基础语法到最高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。
从本书获得的各项大奖以及来自世界各地的读者评论中,不难看出这是一本经典之作。本书的作者拥有多年教学经验,对C、C++以及Java语言都有独到、深入的见解,以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念。本书共22章,包括操作符、控制执行流程、访问权限控制、复用类、多态、接口、通过异常处理错误、字符串、泛型、数组、容器深入研究、Java I/O系统、枚举类型、并发以及图形化用户界面等内容。这些丰富的内容,包含了Java语言基础语法以及高级特性,适合各个层次的Java程序员阅读,同时也是高等院校讲授面向对象程序设计语言以及Java语言的绝佳教材和参考书。
第4版特点:
适合初学者与专业人员的经典的面向对象叙述方式,为更新的Java SE5/6增加了新的示例和章节。
 测验框架显示程序输出。
概率图模型:原理与技术 豆瓣
作者: [美]Daphne Koller / [以色列]Nir Friedman 译者: 王飞跃 / 韩素青 出版社: 清华大学出版社 2015 - 3
概率图模型将概率论与图论相结合,是当前非常热门的一个机器学习研究方向。本书详细论述了有向图模型(又称贝叶斯网)和无向图模型(又称马尔可夫网)的表示、推理和学习问题,全面总结了人工智能这一前沿研究领域的最新进展。为了便于读者理解,书中包含了大量的定义、定理、证明、算法及其伪代码,穿插了大量的辅助材料,如示例(examples)、技巧专栏(skill boxes)、实例专栏(case study boxes)、概念专栏(concept boxes)等。另外,在第 2章介绍了概率论和图论的核心知识,在附录中介绍了信息论、算法复杂性、组合优化等补充材料,为学习和运用概率图模型提供了完备的基础。
本书可作为高等学校和科研单位从事人工智能、机器学习、模式识别、信号处理等方向的学生、教师和研究人员的教材和参考书。
== 序 言 ==
很高兴能够看到我们所著的《概率图模型》一书被翻译为中文出版。我们了解到这本书涵盖的课题已在中国引起了巨大的兴趣。已有众多中国读者写信向我们解释这本书对于他们的学习的重要性,并希望获得更易理解的版本。随着众多来自中国研究机构或国外研究机构的中国学者署名或共同署名的文章的发表,中国研究者已在概率图领域中扮演了非常重要的角色。这些文章对于概率图模型领域的发展起到了非常重要的作用。我们相信《概率图模型》中文版的出版将帮助许多中国读者学习并掌握这一重要课题的基础。同时,这也将进一步提高中国学者应用概率图模型思想的能力,并为这一领域的发展做出贡献。
本书的翻译工作由王飞跃研究员主导,并得到了王珏研究员及其众多助手和合作者的支持。这是一份历时 5年、具有里程碑意义的努力,我深深地感谢该团队所有为本书翻译做出贡献的人员。我尤其希望借此机会感谢王珏研究员——一位中国机器学习领域的开拓者。王珏研究员是此项翻译工作的十分重要的推动者。没有他的支持,没有他的众多杰出的机器学习领域的学生的帮助,可能这项工作到现在还没有结果。很遗憾王珏研究员于 2014年 12月死于癌症,终年 66岁,已不能看到他努力的结果。然而,他的思想活在他的学生们的工作中,与本书的出版同在。
Daphne Koller
(复杂系统管理与控制国家重点实验室王晓翻译)
算法引论 豆瓣
Introduction to Algorithms:A Creative Approach
作者: [美]Udi Manber 译者: 黄林鹏 / 谢瑾奎 出版社: 电子工业出版社 2005 - 9
本书是国际算法大师乌迪·曼博(Udi Manber)博士撰写的一本享有盛誉的著作。全书共分12章:第1章到第4章为介绍性内容,涉及数学归纳法、算法分析、数据结构等内容;第5章提出了与归纳证明进行类比的算法设计思想;第6章到第9章分别给出了4个领域的算法,如序列和集合的算法、图算法、几何算法、代数和数值算法;第10章涉及归约,也是第11章的序幕,而后者涉及NP完全问题;第12章则介绍了并行算法;最后是部分习题的答案及参考文献。本书的特色有二,旨在提高读者的问题求解能力,使读者能够理解算法设计的过程和思想:一是强调算法设计的创造性过程,注重算法设计背后的创造性思想,而不拘泥于某个具体算法的详细讨论;二是将算法设计类比于定理归纳证明,揭示了算法设计的基本思想和本质。
本书的组织结构清晰且易于理解,强调了创造性,具有浓郁特色,时至今日仍有其巨大的价值,并且适合作为计算机及相关专业算法和高级算法课程的教材。
操作系统设计与实现(上册) 豆瓣
Operating Systems:Design and Implementation
作者: Andrew S. Tanenbaum / Albert S. Woodhull 译者: 陈渝 / 谌卫军 出版社: 电子工业出版社 2007 - 3
本书是关于操作系统的权威教材。大多数关于操作系统的图书均重理论而轻实践,而本书则在这两者之间进行了较好的折中。本册详细探讨了操作系统的基本原理,包括进程、进程间通信、信号量、管程、消息传递、调度算法、输入、输出、死锁、设备驱动程序、存储管理、调页算法、文件系统设计、安全和保护机制等;此外,还详细讨论了一个特殊的操作系统MINIX 3(一个与UNIX兼容的操作系统),并提供了该系统的源代码(见本书下册),以便于读者仔细研究。这种安排不仅可让读者了解操作系统的基本原理,而且可让读者了解到这些基本原理是如何应用到真实的操作系统中去的。
本书适用于高校计算机专业的学生,也可供程序设计人员、工程技术人员、系统架构师等相关人员参考。
深入理解计算机系统 豆瓣
作者: (美)Randal E.Bryant, David R.O'Hallaron 出版社: 电子工业出版社 2006 - 7
《深入理解计算机系统》(英文版)主要介绍了计算机系统的基本概念,包括最底层的内存中的数据表示、流水线指令的构成、虚拟存储器、编译系统、动态加载库,以及用户应用等。书中提供了大量实际操作,可以帮助读者更好地理解程序执行的方式,改进程序的执行效率。此书以程序员的视角全面讲解了计算机系统,深入浅出地介绍了处理器、编译器、操作系统和网络环境,是这一领域的权威之作。
网络是怎样连接的 豆瓣
ネットワークはなぜつながるのか 第2版
8.6 (32 个评分) 作者: [日] 户根勤 译者: 周自恒 出版社: 人民邮电出版社 2017 - 1
本书以探索之旅的形式,从在浏览器中输入网址开始,一路追踪了到显示出网页内容为止的整个过程,以图配文,讲解了网络的全貌,并重点介绍了实际的网络设备和软件是如何工作的。目的是帮助读者理解网络的本质意义,理解实际的设备和软件,进而熟练运用网络技术。同时,专设了“网络术语其实很简单”专栏,以对话的形式介绍了一些网络术语的词源,颇为生动有趣。
本书图文并茂,通俗易懂,非常适合计算机、网络爱好者及相关从业人员阅读。
Programming Language Pragmatics, Third Edition 豆瓣
作者: Michael L. Scott 出版社: Morgan Kaufmann 2009 - 4
Programming Language Pragmatics is the most comprehensive programming language textbook available today. Taking the perspective that language design and language implementation are tightly interconnected, and that neither can be fully understood in isolation, this critically acclaimed and bestselling book has been thoroughly updated to cover the most recent developments in programming language design. With a new chapter on run-time program management and expanded coverage of concurrency, this new edition provides both students and professionals alike with a solid understanding of the most important issues driving software development today.

Classic programming foundations text now updated to familiarize students with the languages they are most likely to encounter in the workforce, including including Java 7, C++, C# 3.0, F#, Fortran 2008, Ada 2005, Scheme R6RS, and Perl 6.
New and expanded coverage of concurrency and run-time systems ensures students and professionals understand the most important advances driving software today.
Includes over 800 numbered examples to help the reader quickly cross-reference and access content.
C Interfaces and Implementations 豆瓣
作者: David R. Hanson 出版社: Addison-Wesley Professional 1996 - 8
Every programmer and software project manager must master the art of creating reusable software modules; they are the building blocks of large, reliable applications. Unlike some modern object-oriented languages, C provides little linguistic support or motivation for creating reusable application programming interfaces (APIs). While most C programmers use APIs and the libraries that implement them in almost every application they write, relatively few programmers create and disseminate new, widely applicable APIs. C Interfaces and Implementations shows how to create reusable APIs using interface-based design, a language-independent methodology that separates interfaces from their implementations. This methodology is explained by example. The author describes in detail 24 interfaces and their implementations, providing the reader with a thorough understanding of this design approach.