IT
深入理解计算机系统 豆瓣 Goodreads
Computer Systems: A Programmer's Perspective
作者: Randal E.Bryant / David O'Hallaron 译者: 龚奕利 / 雷迎春 出版社: 中国电力出版社 2004 - 5
从程序员的视角,看计算机系统!
本书适用于那些想要写出更快、更可靠程序的程序员。通过掌握程序是如何映射到系统上,以及程序是如何执行的,读者能够更好的理解程序的行为为什么是这样的,以及效率低下是如何造成的。粗略来看,计算机系统包括处理器和存储器硬件、编译器、操作系统和网络互连环境。而通过程序员的视角,读者可以清晰地明白学习计算机系统的内部工作原理会对他们今后作为计算机科学研究者和工程师的工作有进一步的帮助。它还有助于为进一步学习计算机体系结构、操作系统、编译器和网络互连做好准备。
本书的主要论题包括:数据表示、C程序的机器级表示、处理器结构,程序优化、存储器层次结构、链接、异常控制流、虚拟存储器和存储器管理、系统级I/O、网络编程和并发编程。书中所覆盖的内容主要是这些方面是如何影响应用和系统程序员的。例如,在讲述数据表示时,本书说明了用来表示数字的表示方法是有限的,它能够近似地表示整数和实数,但是这种表示方法是有限制的,程序员必须了解。在讲述高速缓存时,本书讨论了矩阵代码中的循环变量的顺序是如何影响程序的性能的。在讨论网络互连时,本书描述了并发服务器如何能有效地处理来自多个客户端的请求。
本书基于Intel兼容(IA32)机器,在Unix或者相关的操作系统(例如,Linux)上执行C程序。虽然书中包括了一些帮助读者将Java转化成C的提示,但是还是要求读者对C或者C++有一定的了解。
您可以通过本书的Web网站www.csapp.cs.cmu.edu获得完整的资料,包括实验和作业,授课笔记和代码示例。
本书英文版久负盛名,被众多专业人士称为“最伟大的计算机教材”之一,著名的美国卡内基梅隆大学计算机科学系一直将本书作为教材使用,程序员眼中的透彻讲述计算机系统的扛鼎之作。作者Randal E. Bryant是卡耐基梅隆大学的计算机科学系主任,ACM和IEEE双院士(Fellow),其研究成果多次获得ACM和IEEE颁发的大奖。
本书共分十三章,分别介绍了信息的表示和处理、程序的机器级表示、处理器体系结构、存储器层次结构、静态和动态链接、虚拟存储器、系统级I/O、网络编程和并发编程等精彩内容。其目的是解释计算机系统的所有本质概念,并向读者展示这些概念是如何实际地影响应用程序的正确性、性能和实用性。与其他主要针对系统构造人员的系统类书籍不同,这本书是写给程序员的,是从程序员的角度来描述的。本书为软件和硬件之间搭起了一个桥梁,它给出了一种帮助读者分别从硬件和软件的角度去理解一个程序及其行为的途径,这也填补了国内计算机系统教学中的一个空白。本书的最大优点是帮助读者理解概念,让读者很清楚地在脑海中构造一个层次型的计算机系统,从最低层数据在内存中的表示(如我们一直陌生的浮点数表示),到流水线指令的构成,到虚拟存储器,到编译系统,到动态加载库,到最后的用户应用。
本书提供了大量的例子和练习及部分答案。尤其值得一提的是,对于每一个基本概念都有相应的笔头或程序试验,加深读者的理解。
七周七语言 豆瓣
Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages
8.8 (19 个评分) 作者: [美] Bruce A. Tate 译者: 巨成 / 戴玮 出版社: 人民邮电出版社 2012 - 5
从计算机发展史早期的Cobol、Fortran到后来的C、Java,编程语言的家族不断壮大。除了这些广为人知的语言外,还涌现了Erlang、Ruby等后起之秀,它们虽被喻为小众语言,但因其独特性也吸引了为数不少的追随者。
Bruce A. Tate是软件行业的一名老兵,他有一个宏伟目标:用一本书的篇幅切中要害地探索七种不同的语言。本书就是他的成果。书中介绍了Ruby、Io、Prolog、Scala、Erlang、Clojure和Haskell这七种语言,关注每一门语言的精髓和特性,重点解决如下问题:这门语言的类型模型是什么,编程范式是什么,如何与其交互,有哪些决策构造和核心数据结构,有哪些独特的核心特性。
在这个飞速发展的信息时代,程序员仅仅掌握甚至精通一门语言是远远不够的。了解多门语言蕴涵的思维方式,在编码中互相借鉴,再挑出一两门对自己口味的语言深入学习,这些已经成为在软件行业中安身立命之本。从这个意义上说,每个程序员都应该看看这本书。
人工智能 豆瓣
作者: 腾讯研究院 / 中国信通院互联网法律研究中心 出版社: 中国人民大学出版社 2017 - 10
面对科技的迅猛发展,中国政府制定了《新一代人工智能发展规划》,将人工智能上升到国家战略层面,并提出:不仅人工智能产业要成为新的经济增长点,而且要在2030年达到世界领先水平,让中国成为世界主要人工智能创新中心,为跻身创新型国家前列和经济强国奠定基础。
《人工智能》一书由腾讯一流团队与工信部高端智库倾力创作。本书从人工智能这一颠覆性技术的前世今生说起,对人工智能产业全貌、最新进展、发展趋势进行了清晰的梳理,对各国的竞争态势做了深入研究。本书还对人工智能给个人、企业、社会带来的机遇与挑战进行了深入分析。对于想全面了解人工智能的读者,本书提供了重要参考,是一本必备书籍。
程序员的数学3 豆瓣
作者: [日] 平冈和幸 / [日] 堀玄 译者: 卢晓南 出版社: 人民邮电出版社 2016 - 3
本书沿袭“程序员的数学”系列平易近人的风格,用通俗的语言和具象的图表深入讲解了编程中所需的线性代数知识。内容包括向量、矩阵、行列式、秩、逆矩阵、线性方程、LU分解、特征值、对角化、Jordan标准型、特征值算法等。
Python学习手册 豆瓣 Goodreads
Learning Python
8.5 (8 个评分) 作者: [美] Mark Lutz 译者: 侯靖 出版社: 机械工业出版社 2009 - 8
《Python学习手册(第3版)》讲述了:Python可移植、功能强大、易于使用,是编写独立应用程序和脚本应用程序的理想选择。无论你是刚接触编程或者刚接触Python,通过学习《Python学习手册(第3版)》,你可以迅速高效地精通核心Python语言基础。读完《Python学习手册(第3版)》,你会对这门语言有足够的了解,从而可以在你所从事的任何应用领域中使用它。
《Python学习手册(第3版)》是作者根据过去10年用于教学而广为人知的培训课程的材料编写而成的。除了有许多详实说明和每章小结之外,每章还包括一个头脑风暴:这是《Python学习手册(第3版)》独特的一部分,配合以实用的练习题和复习题,让读者练习新学的技巧并测试自己的理解程度。
《Python学习手册(第3版)》包括:
类型和操作——深入讨论Python主要的内置对象类型:数字、列表和字典等。
语句和语法——在Python中输入代码来建立并处理对象,以及Python一般的语法模型。
函数——Python基本的面向过程工具,用于组织代码和重用。
模块——封装语句、函数以及其他工具,从而可以组织成较大的组件。
类和OOP——Python可选的面向对象编程工具,可用于组织程序代码从而实现定制和重用。
异常和工具——异常处理模型和语句,并介绍编写更大程序的开发工具。
讨论Python 3.0。
《Python学习手册(第3版)》让你对Python语言有深入而完整的了解,从而帮助你理解今后遇到的任何Python应用程序实例。如果你准备探索Google和YouTube为什么选中了Python,《Python学习手册(第3版)》就是你入门的最佳指南。
深入理解并行编程 豆瓣
Is Parallel Programming Hard, And, If So, What Can You Do About It?
作者: [美] Paul E.Mckenney(保罗·E·麦肯尼) 译者: 谢宝友 鲁阳 出版社: 电子工业出版社 2017 - 7
《深入理解并行编程》首先以霍金提出的两个理论物理限制为引子,解释了多核并行计算兴起的原因,并从硬件的角度阐述并行编程的难题。接着,《深入理解并行编程》以常见的计数器为例,探讨其不同的实现方法及适用场景。在这些实现方法中,除了介绍常见的锁以外,《深入理解并行编程》还重点介绍了RCU的使用及其原理,以及实现RCU的基础:内存屏障。最后,《深入理解并行编程》还介绍了并行软件的验证,以及并行实时计算等内容。
《深入理解并行编程》适合于对并行编程有兴趣的大学生、研究生,以及需要对项目进行深度性能优化的软硬件工程师,特别值得一提的是,《深入理解并行编程》对操作系统内核工程师也很有价值。
D is for Digital 豆瓣
作者: Brian W Kernighan 出版社: CreateSpace 2011 - 9
This book explains how today's computing and communications world operates, from hardware through software to the Internet and the web. It includes enough detail that you can understand how these systems work, no matter what your technical background. The social, political and legal issues that new technology creates are discussed as well, so you can understand the difficult issues we face and appreciate the tradeoffs that have to be made to resolve them.
世界是数字的 豆瓣
D is for Digital: What a well-informed person should know about computers and communications
8.0 (11 个评分) 作者: [美] Brian W. Kernighan 译者: 李松峰 / 徐建刚 出版社: 人民邮电出版社 2013 - 6
家用电器、汽车、飞机、相机、手机、GPS 导航仪,还有游戏机,虽然你看不见,但这些设备都有计算能力。手机通信网络、有线电视网络、空中交通管制系统、电力系统、银行和金融服务系统等基础设施背后无一不是计算机在支撑。如今的世界是数字的,而计算机和计算无处不在。这本书就是要告诉大家数字世界有关计算机的一切。本书没有高深莫测的专业术语,但它全面解释了当今计算和通信领域的工作方式,包括硬件、软件、互联网、通信和数据安全,并且讨论了新技术带来的社会、政治和法律问题。
无论你有没有计算机背景,无论你从事什么职业,只要你认同自己生活在数字时代,这本书就是必读的!
Algorithms 豆瓣 Goodreads
Algorithms
作者: Sanjoy Dasgupta / Christos H. Papadimitriou 出版社: McGraw-Hill Education 2006 - 10
This text, extensively class-tested over a decade at UC Berkeley and UC San Diego, explains the fundamentals of algorithms in a story line that makes the material enjoyable and easy to digest. Emphasis is placed on understanding the crisp mathematical idea behind each algorithm, in a manner that is intuitive and rigorous without being unduly formal.
全球“猎身” 豆瓣
8.3 (49 个评分) 作者: 项飚 译者: 王迪 出版社: 北京大学出版社 2012 - 1
为什么印度的整体社会发展缓慢,而软件出口却独领风骚?为什么美国的IT公司不断裁人,同时又引进外国雇员?作者基于在印度、澳大利亚和马来西亚长达两年的人类学实地调查写作此书,指出其中关键在于IT产业中的“猎身”体系。它是指一个以印度为中心的全球化劳动力配置和管理体系。
计算机程序设计艺术(第1卷) 豆瓣
作者: [美国] Donald Knuth 出版社: 清华大学出版社 2002 - 9
第1卷首先介绍编程的基本概念和技术,然后详细讲解信息结构方面的内容,包括信息在计算机内部的表示方法、数据元素之间的结构关系,以及有效的信息处理方法。此外,书中还描述了编程在模拟、数值方法、符号计算、软件与系统设计等方面的初级应用。此第3版增加了数十项简单但重要的算法和技术,并根据当前研究发展趋势在数学预备知识方面做了大量修改。
硅谷 第一季 (2014) 豆瓣
Silicon Valley Season 1 所属 电视剧集: 硅谷
9.0 (547 个评分) 导演: 迈克·乔吉 / 亚力克·博格 演员: 托马斯·米德蒂奇 / T·J·米勒
故事发生在高科技产业云集的美国硅谷,在这里,最有资质成功的人往往却是最没有办法处理其“功成名就”的人,本剧主人公理查德(托马斯·米德勒蒂奇 Thomas Middleditch 饰)正是这样的人。
故事围绕着包括理查德在内的四个不善社交但绝顶聪明的计算机程序员,以及早期依靠互联网站发家的百万富翁埃利希(托德·约瑟夫·米勒 T.J. Miller 饰)。理查德他们免费住在埃利希那个号称“孵化器”的别墅里,自行研究开发有潜力的科技项目。他们原以为理查德开发的“魔笛手”注定是个失败的产品,岂料其运用的新型压缩算法具有无穷的商业潜力,当即引起大公司“互利”的注意,要高价收购。正当理查德要同意时,另一家投资公司加入争夺,“魔笛手”一时间水涨船高,一场价值千万的争夺战开始了。
计算机网络 豆瓣
8.0 (7 个评分) 作者: [美国] Andrew S·Tanenbaum 译者: 潘爱民 出版社: 清华大学出版社 2004 - 8
《计算机网络(第4版)》全书按照网络协议模型(物理层、数据链路层、介质访问控制子层、网络层、传输层和应用层),自下而上系统地介绍了计算机网络的基本原理,并给出了大量实例。在讲述各网络层的同时,还融合进了近年来迅速发展起来的各种网络技术,如Internet、SONET、A DSL、CDMA、WLAN和蓝牙等。另外,针对当前计算机网络的发展现状以及计算机安全的重要性,本书用了一整章的篇幅对计算机安全进行了深入讨论。
半导体物理学 豆瓣
作者: 冯文修 出版社: 国防工业出版社发行部 2007 - 4
《半导体物理学》全面地论述了半导体物理的基础知识,内容包括半导体的晶格结构、半导体中的电子状态、杂质和缺陷能级、载流子的统计分布,非平衡载流子及载流子的运动规律;讨论了p—n结、异质结、金属半导体接触、表面及MIS结构等半导体表面和界面问题;介绍了半导体的光、热、磁、压阻等物理现象;最后较全面地介绍了非晶态半导体的基本特性。
数据库索引设计与优化 豆瓣
Relational Database Index Design and the Optimizers
作者: 【美】Tapio Lahdenmaki / 【美】Michael Leach 译者: 曹怡倩 / 赵建伟 出版社: 电子工业出版社 2015 - 6
《数据库索引设计与优化》提供了一种简单、高效、通用的关系型数据库索引设计方法。作者通过系统的讲解及大量的案例清晰地阐释了关系型数据库的访问路径选择原理,以及表和索引的扫描方式,详尽地讲解了如何快速地估算SQL 运行的CPU 时间及执行时间,帮助读者从原理上理解SQL、表及索引结构、访问方式等对关系型数据库造成的影响,并能够运用量化的方法进行判断和优化,指导关系型数据库的索引设计。
《数据库索引设计与优化》适用于已经具备了SQL 这一关系型语言相关知识,希望通过理解SQL 性能相关的内容,或者希望通过了解如何有效地设计表和索引而从中获益的人员。另外,《数据库索引设计与优化》也同样适用于希望对新硬件的引入所可能带来的变化做出更好判断的资深人士。
信息规则 豆瓣 Goodreads
Information rules : A strategic guide to the network economy
作者: [美] 卡尔・夏皮罗(Carl Shapiro) / [美] 哈尔・瓦里安(Hal Varian) 译者: 张帆 出版社: 中国人民大学出版社 2000 - 6
本书的目标是,运用网络经济中的经济学知识,从经济研究和作者自己的经验中提取出适合信息相关产业的经理们的知识。本书描述的思想、概念、模型和思考方法会帮助读者作出更好的决策。
C程序设计语言(第2版·新版) 豆瓣
The C Programming Language
9.8 (39 个评分) 作者: [美] Brian W. Kernighan / [美] Dennis M. Ritchie 译者: 徐宝文 / 李志译 出版社: 机械工业出版社 2004 - 1
在计算机发展的历史上,没有哪一种程序设计语言像C语言这样应用广泛。本书作者是C语言的设计者之一Dennis M. Ritchie和著名计算机科学家Brian W. Kernighan合著的一本介绍C语言的权威经典著作。我们现在见到的大量论述C语言程序设计的教材和专著均以此书为蓝本。
原著第1版中介绍的C语言成为后来广泛使用的C语言版本——标准C的基础。人们熟知的“hello,World"程序就是由本书首次引入的,现在,这一程序已经成为众多程序设计语言入门的第一课。原著第2版根据1987年制定的ANSIC标准做了适当的修订.引入了最新的语言形式,并增加了新的示例,通过简洁的描述、典型的示例,作者全面、系统、准确地讲述了C语言的各个特性以及程序设计的基本方法。
对于计算机从业人员来说,本书是一本必读的程序设计语言方面的参考书。
黑客与画家 豆瓣 谷歌图书
Hackers and Painters: Big Ideas from the Computer Age
8.6 (247 个评分) 作者: 保罗·格雷厄姆 译者: 阮一峰 出版社: 人民邮电出版社 2011 - 4
本书是硅谷创业之父Paul Graham 的文集,主要介绍黑客即优秀程序员的爱好和动机,讨论黑客成长、黑客对世界的贡献以及编程语言和黑客工作方法等所有对计算机时代感兴趣的人的一些话题。书中的内容不但有助于了解计算机编程的本质、互联网行业的规则,还会帮助读者了解我们这个时代,迫使读者独立思考。
本书适合所有程序员和互联网创业者,也适合一切对计算机行业感兴趣的读者。
深入理解计算机系统(原书第2版) 豆瓣 Goodreads
Computer Systems: A Programmer's Perspective
9.7 (26 个评分) 作者: [美] Randal E.Bryant / [美] David O' Hallaron 译者: 龚奕利 / 雷迎春 出版社: 机械工业出版社 2011 - 1
本书从程序员的视角详细阐述计算机系统的本质概念,并展示这些概念如何实实在在地影响应用程序的正确性、性能和实用性。全书共12章,主要内容包括信息的表示和处理、程序的机器级表示、处理器体系结构、优化程序性能、存储器层次结构、链接、异常控制流、虚拟存储器、系统级I/O、网络编程、并发编程等。书中提供大量的例子和练习,并给出部分答案,有助于读者加深对正文所述概念和知识的理解。
本书的最大优点是为程序员描述计算机系统的实现细节,帮助其在大脑中构造一个层次型的计算机系统,从最底层的数据在内存中的表示到流水线指令的构成,到虚拟存储器,到编译系统,到动态加载库,到最后的用户态应用。通过掌握程序是如何映射到系统上,以及程序是如何执行的,读者能够更好地理解程序的行为为什么是这样的,以及效率低下是如何造成的。
本书适合那些想要写出更快、更可靠程序的程序员阅读,也适合作为高等院校计算机及相关专业本科生、研究生的教材。