有人说“程序员分为两类:看过《数学之美》的与没看过的。程序员职业生涯也可分为两个阶段:读了《数学之美》之前与之后。”也有人说“一部IT人非读不可,而非IT人也应该阅读的作品非《浪潮之巅》莫属。”
这两本书都是在计算机界掀起阅读热的巨著,《数学之美》从获得数百万点击的系列博客到一本屡获大奖的畅销书,《浪潮之巅》从一上市就在业界获得巨大反响到印刷超60万套,被称为计算机史上的“人间词话”,它们的魅力是有目共睹的。
尤其是在程序员圈子,看看有多少“程序员必读书单”中都力荐了这两本书,便可知晓它们对程序员的重要性。
▲豆瓣评分8.9的《数学之美 第三版》
▲豆瓣评分9.2的《浪潮之巅 第四版》
而我们今天介绍的这本《数学之美》姊妹篇《计算之魂》可以说是再攀高峰,它是吴军博士时隔近10年在计算机科学领域的又一重磅新作,是其从事计算机算法和系统设计工作三十年心得总结,堪称程序员计算科学品位和认知进阶的圣经。
如果说:
《数学之美》让我们能够体会为什么数学可以和音乐、美术一样,具有美感;
《浪潮之巅》让我们能够站在时代之巅见证改变这个世界的最先进的科技、公司和它们所蕴含的时代精神;
那么,《计算之魂》则让我们领略计算思维的魔力,明白了什么才是计算机科学的精髓和灵魂。它们都是“献给这个社会和年轻人最好的礼物之一”。
1 为什么写作《计算之魂》?
这本书的作者吴军博士,他有很多种身份。
他曾担任过腾讯公司副总裁,是人工智能、语音识别和互联网搜索专家,是谷歌中、日、韩搜索算法的主要设计者。
他也是硅谷投资人,丰元资本的创始合伙人,成功投资了150家硅谷和中国的高科技企业。
同时,他还可以说是我国科技文化界最有影响的作家之一,已经出版了十多本畅销书,并多次获得包括“文津图书奖”、“中国好书”、“中华优秀出版物奖”在内的图书大奖。
吴军博士的著作高屋建瓴、取材丰富、立意深远、深入浅出,融人文思想于科技论述之中,如《数学之美》、《浪潮之巅》、《文明之光》、《硅谷之谜》等多本畅销书。他的著作从“术”的层面升华到“道”的境界,受到广大读者欢迎。
而这本讲透了计算思维之道的《计算之魂》也不例外。
那么,吴军博士为什么要创作《计算之魂》呢?
一个“码农”或者计算机工程师能走多远?如果不断努力而且方法得当,能走很远很远:能够获得图灵奖,成为工程院院士,也能成为改变世界的人物。
当然,这前提是方法得当。
但目前优秀的专业人士的比例是极低的,而造成这种结果的主要原因,一是缺乏工程师文化,二是对计算机科学品位不高。
那怎样才能继续往上走呢?
吴军博士认为若有志成为最好的计算机工程师要解决四个问题:
(1)判断什么事情能做,什么不能做;
(2)任何重大发明都有预先要求;
(3)对计算机科学的深刻理解;
(4)掌握计算机科学的艺术;
计算机科学对于程序员来说实在是太重要了。
为此,他根据自己从事计算机算法和系统设计工作三十年心得编写了这本系统地讲解了计算机与算法的精髓,并且能提高计算机界从业人员的科学“品位”的《计算之魂》。
他想和大家分享他对计算机科学精髓和灵魂的理解,以便从业者能够突破这个领域的天花板,同时坚定在这个领域长期发展的信心。
2 这本书值得你看的四个理由!
理由一
把握计算思维,
是成为计算机领域顶尖人才的要素之一
“计算思维”是指不同于人的思维方式的计算机思维方式。
人类习惯自底向上、从小到大的正向递推思维,而计算机往往采用自顶向下、先全局后局部的逆向递归思维。如果一个人能够站在计算机的角度想问题,就掌握了“计算思维”。
计算机从业者,特别是软件编程人员,一定要养成计算思维方式,善于倒着想问题解决方案。如果这一关过不了,就一辈子也出不了师。
在《计算之魂》这本书中,作者将计算思维归纳成递归、编码、分类、组合、图论、分治、存储、并行、状态、随机等关键思想,把计算机和算法的精髓都囊括在内。
读过大学本科计算机专业的学生大都见过这些术语,成绩较好的学生还会应用老师教过的算法。但是大多数学生只是“知其然”,真正知其所以然、明白这些算法背后的计算思维要义者寥寥无几。
照亮计算机工程师前进方向的是计算机科学,对计算机科学和计算思维的掌握程度,决定了一个计算机专业人员能走多远。
因此,要想成计算机领域顶尖人才,还得加强对计算机科学和计算思维的掌握程度。不过,虽然今天有很多介绍计算机各个领域的优秀图书,但是依然缺乏一本全面论述计算机科学特色的图书,而吴军博士的《计算之魂》一书在一定程度上填补了这个空白。
理由二
通过算法例题来阐述计算思维之妙,
100+例题和思考题讲透了计算思维的本质
虽然这本书的重点是讲算法,但它不同于一般的算法教科书和科普著作。
这是一部通过算法例题来阐述计算思维之妙的大作,把计算思维的本质内涵讲透了。
在本书中,吴军博士将人文历史与计算机科学相结合,系统地讲解了计算机科学的精髓,并通过一些具体的例题将其拆解为10 个主题。
书中的100多道例题+思考题是他在谷歌、腾讯面试工程师候选人的考题,以及美国顶级计算机公司(包括苹果、亚马逊、微软、Facebook、领英、IBM、雅虎、优步、英特尔、甲骨文等)和金融企业的面试题。
▲书中的思考题
这些考题对识别应聘者的计算思维能力有较明显的鉴别作用,读者在阅读过程中也可以检查自己的不足。理解这些考题不能当作一般的智力测验或脑筋急转弯,应反思自己的思维方式为什么与计算机的“思维”方式背道而驰。
以面试考题为内容讲解算法是本书的特色之一,读者从中可以获得其他算法教科书中得不到的启发。
并且,这些例子都是渐进深入的,也是可以举一反三的,通过它们大家可以逐渐把握计算机科学这门艺术,获得重复性成功。
吴军博士过去在Google和腾讯指导过的很多年轻人,他们在走出学校后不长的时间内,通过逐渐体会计算机科学的精髓,如今都成了很多知名IT企业的创始人和主要的技术负责人,这说明只要按照正确的方法做事情,不断训练自己,在这个领域的成功是可以复制的。
理由三
计算机工程师分级标准给你提升能力、
不断向上发展的方向
吴军博士将计算机从业人员(主要是软件工程师)分成7级,每一级工程师的能力是下一级的10倍。
一级
能够开创一个产业,或者奠定一个学科的基础。
二级
能够提出重要的计算机理论和实践中的新问题,并解决它们,还能设计和实现别人做不出的产品,也就是说这一级的人的作用很难取代。
三级
能够解决前人未解决的问题,并且能独立设计和实现产品,在市场上获得成功。目前普遍的情况是,在大部分IT企业中能够达到这个水平的人非常少,他们通常是企业里的总工程师或者总架构师。这个级别的工程师在Google或者微软里却不少见。
四级
能够用已知的最优方法( state of the art)解决问题,并且能够指导和带领其他人一同完成更有影响力的工作。很多公司里所谓的技术专家、技术大拿,大致是这个水平。
五级
能够独立解决问题,完成工程工作。一个能够独立工作、很好完成任务的工程师,属于五级工程师,Google、 微软和Facebook里面一半左右的工程师属于这一级。部分IT企业里写代码的人,很多还达不到五级工程师的要求,因此被称为“码农”也不算太过分。
在本书中,基于对计算机工程师的五级分级标准上,再新增两级标准:
六级
能在他人指导下完成计算机工程师的工作,那些水平还不错的大学的计算机专业硕士毕业生,或者在一流计算机公司里工作过半年、过了见习期的新人,大约就是这个水平。
七级
本科毕业自水平不错的大学的计算机专业,但没有参加过六个月以上实习的学生,也就是说课程的内容都学过了,就能达到这个水平。当然,从小就接触编程的计算机天才,他们可能在高中就达到了这个水平。
我国大多数编程人员只是6级水平,如果能真正消化掌握这本书阐明的计算思维之“道”, 就有可能上升到4级甚至3级水平,这也是本书着重解决的问题。
懂得算法精髓的工程师与“依葫芦画瓢”的工程师的区别如此之大,这就是计算思维的魔力!
吴军博士在书中结合自己对计算机工程师的分级标准,详细讲解了每类题目不同层次的解决方法,不同水平的人大约能思考到什么样的深度,深度阐述题目背后的计算机科学精髓。
通过对比优化解题思路,读者不仅可以衡量自己的水平,在职业的发展道路上走得更快,更可以深刻理解并掌握计算机科学和计算思维,逐渐把握计算机科学这门艺术,步步升级的!
理由四
李国杰院士、郑纬民院士和周志华教授
联袂推荐!
这本书得到了李国杰院士、郑纬民院士和周志华教授联袂推荐。来看看他们怎么说?
为了系统地讲解计算机与算法的精髓,提高计算机从业人员的科学品位,吴军博士最近写了一本新书《计算之魂》。这本书的重点是讲算法,但不同于一般的算法教科书和科普著作,它是一部通过算法例题来阐述计算思维之妙的大作。有上进心的工程师如能花时间用心研读并争取“吃透”这本书,并做完书中的思考题,相信一定会受益终身。
李国杰,中国工程院院士
有了对计算机科学本质的认识,一个计算机专业的学生,通过一段时间的刻意练习和经验积累,就有可能成为计算机领域的专家。而练习则需要讲究方式方法,《计算之魂》就为广大的计算机行业从业者提供了许多提升能力的有效方法。这些方法来自于作者在计算机领域多年的从业经验。相信《计算之魂》这本书能够帮助广大读者朋友在计算机领域更上一层楼,使个人取得更大的成就,并为社会做出更大的贡献。
郑纬民,中国工程院院士,清华大学计算机系教授
吴军博士的这本书介绍了计算机科学中的重要基础知识,更重要的是把其背后的“计算思维”生动地展现出来,很值得一读。
周志华 南京大学计算机系主任,ACM/AAAI Fellow,欧洲科学院院士
3 如何阅读这本书?
▌这本书谁适合读?
(1)每一位追求精进的工程师
无论是研究人员,还是在一线从事开发的工程师,都能从书中找到进阶之道,读完这本书后能够在职业的发展道路上走得更快。
(2)准备进入计算机行业的年轻人
通过阅读这本书,能够悟出计算机科学的精髓,避免未来走弯路。
(3)IT领域的企业家和管理者
书中关于技术大势和边界的介绍,能够帮助他们理解各种技术之间的相关性和预先要求,以便更好地集中精力在边界内做事情。
(4)对IT技术感兴趣的读者
书中重点讲解的计算机科学特殊的思维方式,能够更好地帮助读者了解IT产业的技术特点,并且体会一些信息时代特殊的做事方法。
▌结构安排
这本书可能不是一本非常容易阅读的书,因为它所包含的内容要求读者朋友具有一定的计算机知识,熟悉高中数学的内容,并且有一点编程经验。不过如果你按照作者的篇章安排,按图索骥,它也会是一本有趣且易懂的书。
吴军博士将自己对计算机科学灵魂和精髓的理解,通过一些具体的例题拆解为10个主题;
并且开篇以“计算的本质”做引子,帮助读者从数学层面和哲学对计算机以及计算的本质有更深刻的理解;
最后还添加了第11章,理论与实战进行练习,进行典型难题的精解。
此外,你也可以通过作者在每一章的后面添加的思考题和练习题,举一反三进行深入思考。不仅能帮你理解计算机科学本质的问题,还能方便你评估自己的水平,并且得到一些实战的训练。
总而言之,有上进心的软件工程师值得花点脑筋认真读懂这本书,如果能做完书中的思考题,一定会终身受益,步步升级的!
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!
① Python所有方向的学习路线图,清楚各个方向要学什么东西
② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
③ 100多个Python实战案例,学习不再是只会理论
④ 华为出品独家Python漫画教程,手机也能学习
⑤ 历年互联网企业Python面试真题,复习时非常方便****