掌握计算机科学的精髓,从这本豆瓣评分9.3的书开始
对计算机科学的掌握程度,决定了一个计算机行业从业者能走多远。
有了对计算机科学本质的认识,一个计算机专业的学生,通过一段时间的刻意练习和经验积累,就有可能成为计算机领域的专家。而练习则需要讲究方式方法,
《计算之魂》就为广大的计算机行业从业者提供了许多提升能力的有效方法。这些方法来自于作者在计算机领域多年的从业经验。
计算之魂
顾名思义,《计算之魂》讲述各种计算机理论和算法的灵魂,帮助读者全方位、深刻地了解计算机科学,培养一种善于利用计算机解决问题的新的思维方式,从而在计算机领域获得更大的成功。作者吴军博士把这种思维方式概括为计算思维。
《计算之魂》做到了专业性和趣味性相结合。在专业性方面,作者系统地讲述 了计算机科学领域最重要的理论和知识。在趣味性方面,作者选择了很多跨国公司 招聘中的实际问题作为案例进行分析和讲解,这些问题很有代表性和趣味性,作者 希望读者朋友可以通过搞懂这些问题,举一反三,对计算机科学的精髓有更深刻的 理解。
豆瓣评分9.3
《计算之魂》,作者把自己对计算机科学精髓和灵魂的理解,通过一些具体的例子拆解为10 个主题。这些例子都是渐进深入的,也是可以举一反 三的,通过它们大家可以逐渐把握计算机科学这门艺术,获得重复性成功。
在书中,作者用来讲述计算机科学艺术和精髓的例题,都是在 Google 和腾讯面试工程师候选人的考题, 以及美国顶级计算机公司(包括苹果、亚马逊、微软、 Facebook、领英、IBM、雅虎、优步、英特尔、甲骨文等)和金融企业的面试题。
对于每一道这样的面试题,作者会指出它们的难度:从 5 颗星(最难)到 1 颗星 (最容易)。即便是那些难度一两颗星的问题,在各种面试刷题网站上也属于难题。而难度四五颗星的问题,绝大部分面试者在解决时都会遇到一些困难,不过它们只占到书中面试样题的 10% ~ 20%,在实际的面试中这样难度的问题并不多见。难题之难,通常表现在三个地方。一是要求面试者对计算机科学有透彻的理解;二是要求他 们考虑问题能够全面;三是要求他们懂得成本和效率之间的平衡,特别是那些开放性问题。每一个问题可能有不止一个正确答案,但是不同的答案有好坏之分。无论是 Google、微软或者 Facebook,还是国内顶级的计算机企业,面试时不会简单给予面试者一个对或者错的评判, 而是根据他思考问题的方式以及给出的答案给予一个评分。 因此一个面试者不能只满足于找到了答案,而需要尽力寻找更好的答案。每一个计算机行业的从业者都应该明确一件事:作为一门应用科学,计算机科学中的很多问题都没有标准答案,只有更好的答案,而寻找更好的答案是计算机科学家和工程师努力的目标。
在书中,作者会讲解大约 40 道例题,它们大多是比较难的问题, 此外还会以思考题的形式提供大约 50 道面试题供大家参考。如果一个计算机工程师能够解决书中的大部分面试题,并且理解其中的道理,就完全可以被 Google、亚马逊、Facebook 或者微软这样的公司录用。当然,作者并不希望这本书变成求 职者面试前刷题的参考书,而是希望读者朋友通过具体的例子,从“术”的层面获得 “道”的层面的提升。因此,作者会详细分析解决这些例题所用到的计算机科学的精髓, 并且告之不同水平的人大约能思考到什么样的深度,这样大家如果有兴趣的话,可以衡量一下自己的水平,并且了解自己和前面各级之间的差距。
为了便于一些爱钻研的读者朋友深入思考,作者会每一章末尾出一些思考题和练 习题。这一方面是为了帮助大家理解计算机科学本质的问题,另一方面则是方便大家评估自己的水平,并且得到一些实战的训练。虽然我把这些问题全部解了一遍,有所有的最佳答案,并且请了 Google、微软以及一些大学的朋友核实了答案。
适合读者
目录
引子 计算的本质-从机械到电子
- 0.1 什么是计算机
- 0.2 机械计算机、布尔代数和开关电路
- 0.3 图灵机:计算的本质是机械运动
- 0.4 人工智能的极限
第 1 章 毫厘千里之差-大 O 概念
- 1.1 算法的规范化和量化度量
- 1.2 大数和数量级的概念
- 1.3 怎样寻找最好的算法
- 1.4 关于排序的讨论
第 2 章 逆向思考-从递推到递归
- 2.1 递归:计算思维的核心
- 2.2 遍历:递归思想的典型应用
- 2.3 堆栈和队列:遍历的数据结构
- 2.4 嵌套:自然语言的结构特征
第 3 章 万物皆编码-抽象与表示
- 3.1 人和计算机对信息编码的差异
- 3.2 分割黄金问题和小白鼠试验问题
- 3.3 数据的表示、精度和范围
- 3.4 非线性编码和增量编码(差分编码)
- 3.5 哈夫曼编码
- 3.6 矩阵的有效表示
第 4 章 智能的本质-分类与组合
- 4.1 这是选择分类问题
- 4.2 组织信息:集合与判定
- 4.3 B+ 树、B* 树:数据库中的数据组织方式
- 4.4 卡特兰数
第 5 章 工具与算法-图论及应用
- 5.1 图的本质:点与线
- 5.2 图的访问:遍历和连通性
- 5.3 构建网络爬虫的工程问题
- 5.4 动态规划:寻找最短路径的有效方法
- 5.5 最大流量:解决交通问题的方法
- 5.6 最大配对:流量问题的扩展
第 6 章 化繁为简-分治思想及应用
- 6.1 分治:从O(N2) 到O(N log N)
- 6.2 分割算法:快速排序和中值问题
- 6.3 并行初探:矩阵相乘和 MapReduce
- 6.4 从机器学习到深度学习:Google 大脑
第 7 章 权衡时空-理解存储
- 7.1 访问:顺序 vs. 随机
- 7.2 层次:容量 vs. 速度
- 7.3 索引:地址 vs. 内容
第 8 章 并行与串行-流水线和分布式计算
- 8.1 流水线:逻辑串行和物理并行
- 8.2 摩尔定律的两条分水岭
- 8.3 云计算揭密:GFS 和 MapReduce
第 9 章 状态与流程-等价性与因果关系
- 9.1 从问题到状态
- 9.2 等价性:抽象出状态的工具
- 9.3 因果关系:建立状态之间的联系
第 10 章 确定与随机-概率算法及应用
- 10.1 信息指纹:寓确定于随机之中
- 10.2 随机性和量子通信
- 10.3 置信度:成本与效果的平衡
第 11 章 理论与实战-典型难题精解
- 11.1 最长连续子序列问题
- 11.2 区间合并问题
- 11.3 12 球问题
- 11.4 天际线问题
- 11.5 最长回文问题(Longest Palindrome Match)
- 11.6 计算器问题
- 11.7 如何产生搜索结果的摘要(Snippets Generation)
- 11.8 寻找和等于k 的子数组问题
作者简介
掌握计算机科学的精髓,从这本豆瓣评分9.3的书开始相关推荐
- 信科c语言实验程序修改题_豆瓣评分 9.3,史上最好的 C 语言著作,竟然翻车了.........
上周,在小编的各种努力下(省略一万字),Kindle 官方终于答应给我一个广告位了.虽然只是开机屏,但我还是笑出了猪叫,毕竟上一次有这待遇还是 2018 年时的<算法图解>.所以错过了上次 ...
- 豆瓣评分9.3,陪伴无数程序员成长的神作,终于升级了!
要说 C 语言,那可真是编程语言里的老大哥了.大学时,很多人学习编程的时候都是从 C 语言上手的.经典的 C 教材是谭浩强老师编写的<C程序设计>,简直堪称一代人的回忆.但是理论派的教材并 ...
- 豆瓣评分 9.3,史上最好的 C 语言著作,竟然翻车了......
上周,在小编的各种努力下(省略一万字),Kindle 官方终于答应给我一个广告位了.虽然只是开机屏,但我还是笑出了猪叫,毕竟上一次有这待遇还是 2018 年时的<算法图解>.所以错过了上次 ...
- 豆瓣评分8.0以上,2021年程序员新书大盘点
今天是元旦,小编祝大家元旦快乐!多拿年终奖.今天带大家盘点一下2021年出版的程序员新书中豆瓣评分8.0以上的书.顺序是出版时间的倒序. 1.计算之魂 : 计算科学品位和认知进阶 豆瓣评分9.4 吴军 ...
- 豆瓣评分9.3,吴军博士重磅新作,修炼你的计算思维!
有人说"程序员分为两类:看过<数学之美>的与没看过的.程序员职业生涯也可分为两个阶段:读了<数学之美>之前与之后."也有人说"一部IT人非读不可, ...
- 豆瓣评分9.3,吴军博士重磅新作,修炼你的计算思维!(文末赠书)
以下内容来自公众号逆锋起笔,关注每日干货及时送达 有人说"程序员分为两类:看过<数学之美>的与没看过的.程序员职业生涯也可分为两个阶段:读了<数学之美>之前与之后.& ...
- 豆瓣评分9.3的好书,文末给大家抽奖送几本!
有人说"程序员分为两类:看过<数学之美>的与没看过的.程序员职业生涯也可分为两个阶段:读了<数学之美>之前与之后."也有人说"一部IT人非读不可, ...
- python编程快速上手 让繁琐工作自动化 豆瓣_2019年,这些豆瓣评分9.0以上的8本程序员好书你都知道吗?...
豆瓣这些9.0以上的高评分程序员好书你都知道有哪些吗?小编去豆瓣看了一下,推荐这8本最适用的程序员好书给你. 1.UNIX环境高级编程(第3版)(豆瓣评分9.6)UNIX编程圣经 与Linux相结合的 ...
- 人类视觉计算理论经典著作,豆瓣评分9.7,中文版惊鸿面世!
关注公众号,发现CV技术之美 今天给大家介绍一本豆瓣评分高达9.7分.成书于40多年前的神书: Vision:A Computational Investigation into the Human ...
最新文章
- Google刚刚开源了一款用于测试iOS应用的工具:EarlGrey
- UCenter创始人密码正确但是登录不了
- WebService怎样在IIS上部署
- 科大星云诗社动态20210601
- 一个页面同时发起多个ajax请求,会出现阻塞情况
- web前端之HTML
- Python中yield的作用:迭代生成器
- git merge 步骤
- 【机器学习】语音处理介绍
- 燃料电池系统建模(未完待续)
- 评测|HPE Nimble AF全闪存系列,诠释真正的高端存储
- 作文素材:看完这23种蔬菜描写,恨不得穿过屏幕吃掉它们!
- webcron 定时任务管理系统
- Kali linux渗透测试系列————29、Kali linux 渗透攻击之无线网络攻击
- 计算机毕设题目设计与实现(论文+源码)_kaic
- 实现登陆功能——用户登录设计
- GIS简介--GIS可以做什么?
- 长安链ChainMaker基于公钥用户标识的身份模式介绍
- Linux系统日志查询
- 利用API函数实现图像淡入淡出效果(VB)