想要洞悉计算机科学的精髓?那就去把这本书读三遍吧!

人邮异步社区 2023-02-17 09:10:25

很多技术同学都遇到过这样的问题,想要扎扎实实提升技术能力,但无奈工作太忙,学习新技术效率不高。 

《Python编程无师自通》作者科里•奥尔索夫在给程序员的学习建议时说:

我曾在论坛上看到讨论程序员如何提升能力的帖子。获赞数最高的答案出人意料:做编程以外的事情。后来的经验告诉我,这句话是对的。

读完丹尼尔·科伊勒的《The Talent Code》提升了我的编程能力,因为他教会了我掌握任何一个技能所需要的方法论。时刻注意编程领域之外的动态,注重吸收那些有助于编程的知识。”

而「计算机从业者该如何努力?努力的方向在哪里?如何才能持续进步?如何提升计算思维方法论?」 诸如此类的问题,在我下面要介绍的《计算之魂》一书中均给出了充分且完美的解答。 

5折购书链接:https://item.jd.com/13515688.html

 

1

持续进步的核心

在于你在计算机科学上的品位

 

杨振宁先生说过,科学也是有“品位”一说的。科学的品位不足,只能解决一般的工程问题,自然就陷入了成长停滞。

同样的,计算机从业者要想获得持续进步,找到进步的方向,那就必须要有计算机科学的“品位”。那究竟应该如何提升“品位”呢?

《计算之魂》的作者、信息领域的知名专家吴军博士给了 3 点建议

1、洞悉计算机科学的本质、精髓和灵魂

一句话总结,熟知计算机科学的发展变化规律,详细深入地掌握计算机领域的广度和深度,知识的广度能告诉你什么是正确的方向,知识的深度则可以让你在该方向上快速前进。

比如说,《计算之魂》中吴军博士提到如果说在计算机科学中第一重要的思想是递归,那第二重要的恐怕就是分治算法。对分治算法理解的水平和应用的熟练程度,是衡量一个计算机工程师的标尺。

很多人肯定都会说,分治算法我了解的。但是,很抱歉,你可能只是了解它最浅层面的东西。实际上,对分治算法的理解可以包括三个层次。

第一个层次,是了解皮毛,会做算法书上的一些练习题,这个层次的人可以从事计算机的技术工作,但是很快就会遇到职业发展的天花板。

第二个层次,是能灵活运用分治的思想方法,用计算机来解决大问题。

第三个层次,是能把分治算法发扬光大,解决那些在别人看来无解的问题,比如发明云计算工具 MapReduce 的那些人。

2、清楚计算机科学的边界在哪里

计算机科学不是万能的,同其他学科一样也是存在固有的边界,有些问题属实从理论上就做不到的。关于这点,《计算之魂》里的很多观点能刷新我们的认知。

比如说,人工智能是基于大数据的深度数学,我们可以把人工智能系统理解为由特定程序控制的、能够解决某一类问题的计算机,像语音识别、无人驾驶、下围棋等。

但人工智能可解决的问题只是有答案的问题中很少的一部分,他并没有超过图灵机可计算的范畴。甚至 80 多年前图灵为计算机所能解决的问题划的那条线,至今还没有被逾越。

3、理解计算机科学的美感

计算机科学的美感很大程度上与数学、物理的美感都是相通的,简洁而优雅。

很多看似复杂的问题,解决方法都是如此地简洁而优雅。比如哈夫曼编码算法,网页排名的算法,图论中的最短路径。

吴军博士在《计算之魂》中对 Dijkstra 算法进行讲解时,也不禁赞叹该算法最了不起的地方在于:采用 Dijkstra 算法计算某些问题要比枚举法快了百万倍、千万倍,它成功地将原本一个指数复杂度的问题,变成了一个平方复杂度的问题。

 

2

值得读三遍的

《计算之魂》

 

《计算之魂》这本书以点带面串联起很多计算机科学的知识点,在阅读过程中需要读者专注和联结——专注讲解的过程,联结自己的知识体系。

如果你是计算机工程师,并有着提升技术的渴求,推荐将《计算之魂》读 3 遍。

第一遍:读懂例题

在读第一遍的时候,需要跟着吴军博士的思路,读懂 40 余道算法相关的例题;

在《计算之魂》中,吴军博士非常详细地讲解了覆盖大 O 概念、图论、存储、分治等多个分支,顺带提一嘴,书中的例题要么是吴军博士在 Google 和腾讯面试候选人的考题,要么是美国金融企业或顶级科技企业(如苹果、亚马逊、微软)的面试题,题目质量相当高。

通过这些例题以及书中设置的练习题,大致可以摸索清楚自己的水平在哪里,距离顶级计算机企业的要求还差多远。

第二遍:弥补薄弱

如果说读第一遍是囫囵吐枣、照单全收。

那第二遍,就是要有侧重地读,在阅读中发现自己的技术薄弱点,然后重点弥补薄弱环节;

比如说,比如你发现自己对递归比较熟,但是对图论的理解相对浅薄,那就重点去读《图论及其应用》那一章,将那章彻彻底底地吃透,甚至可以结合着其他资料一起来相互印证。

第三遍:据为己有

有时候,我们以为自己掌握了某个领域的知识,但是总经不起细问。说到底,还是功夫不到家。

所以读第三遍的目的,就是要确保自己已经完全掌握了书中所涉及的算法的精髓,熟练到可以用自己的思路将算法核心讲透、讲明白。

要知道,真正的大佬是可以把一个复杂的理论说得极为简洁透彻的;毕竟一个人只有对自己的专业领域有着深刻的认知,那么他才能把关键信息极度凝练,才能做到通俗易懂。

不然你换一个人试试,有几个能做到面对提问不假思索就可以回答,且逻辑清晰的。

 

3

《计算之魂》

=心法秘籍

 

你当然可以将这本书当做求职面试前刷题的参考书,毕竟吴军博士在书中直言,如果一个计算机工程师能够解决书中大部分的面试题,并且理解其中的道理,完全可以被顶级的互联网公司或科技企业录用。

但如果仅仅只是这样,貌似就显得有些狭隘了。

《计算之魂》不仅仅是一本“武功口诀”,更是一部“心法秘籍”。

吴军博士在讲解每个例题的时候,不仅详细分析了解决这些例题所需要用到的计算机科学的精髓,还告知了不同水平的计算机工程师大概可以思考到怎样的深度,所以你完全可以通过本书来自我衡量自己处于怎样的计算机水平,了解自己和前面各级的差距到底在哪。

招式好练,心法难求。心法悟透了,再去练招式也能够事半功倍。

当然,这本书也不是只适合一线工程师阅读,得益于吴军老师的深入浅出,所有有志于学习科技、了解科技的读者都可以从《计算之魂》中了解 IT 产业的技术特点、掌握一些特殊的思维方式。

毕竟啊,某项计算机技术可能会因为时代的发展而不再吃香,但计算思维却会长久伴你成长,影响做事的方式方法。

 

...全文
184 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

263

社区成员

发帖
与我相关
我的任务
社区描述
作者在书中结合自己对计算机工程师的五级分级标准,详细讲解了不同层次的解决方法、思考深度,深度阐述题目背后的计算机科学精髓。
算法人工智能青少年编程 个人社区
社区管理员
  • SoftwareTeacher
  • 高博
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧