计算机算法#谷歌方法论学习笔记

主题:通过对比计算机处理信息时和人处理信息在方法上的不同,让大家进一步了解机器的世界,然后从计算机做事的方法上,找到对我们自己平时提高效率和成功率的启发。


第一讲摘要

1. 当一个问题的规模大到一定程度之后,它就不再是同类小问题的放大,就变成了另一个问题,解决的方法需要完全不同。计算机需要对所有的东西进行编号就是这个原因。

2. 凡事都有成本,一种方法好不好,是有前提条件的。

3. 世界上大部分事情不是一成不变的,很难处理一次就能一劳永逸地享受成果。


第二讲摘要

1. 为了方便地查找信息,一个简单有效的方法就是根据信息的内容,建立索引。

2. 索引有很多好处,不仅带来搜索的效率,而且带来灵活性,对于同一个数据库,可以建立各种索引,以便按照不同门类的信息进行查找。

3. 善于建索引,不仅是Google搜索引擎查找信息非常快的根本原因,也是保证Google的产品在信息爆炸时代能体现出高质量的原因。

4. 从索引你可以看出,为什么计算机需要对里面的一切东西进行编号,因为没有编号,就无从建立索引。

5. 索引这件事,不是我们人平时工作会用到的,因为我们人接触的信息不多。但是,在工作中,把东西整理好,有条不紊,一定是提高效率的好方法。我经常讲烂笔头永远比最好的头脑可靠,其实也是这个道理。我们的头脑就相当于是一个大数据库,里面什么东西都有,你真要找一个东西,其实很困难。在纸上或者笔记本上写下今天要做的事情,做完一项划掉一项,是提高效率很好的办法。

我:工作中有的时候有找不到自己的文档的情况下,其实在保存的时候,没有正确的建立索引。所以应该好好想一下怎样建立相应的文件夹,把文件保存进去,才能够最快的找到。估计电脑的操作系统是有这个功能的,只是自己不会用。


第三讲:从Windows Vista系统的失败看到哪些商业逻辑?

世界凡事都是有成本的,不可能只有得而没有失去,建索引也不例外。建索引的成本主要来自于两方面。

第一是空间成本。第二是时间成本。

做事情一定不能忘了初衷。

衡量一件事情是否有意义的一个标准是,看它是否能够盈利。很多时候,一件事情的成败不仅要看技术本身,还要看商业的结果。

对于做了大量减法的Windows 7直到今天,依然是微软最受欢迎的操作系统。

1. 凡事都有成本,有一利常常就有一弊,是否值得做,要看各方面是否合适,包括商业的方面。

2. “别人有什么,我也要有什么,才好竞争”,这种神逻辑要不得,而在现实生活中,我们很多人不知不觉地会掉进这个陷阱。

简单地复制别人的想法,而可能忘记了自己的初心。很多时候,所谓的刚需都是为了证明自己所做的事情的必要性而牵强附会提出来的。

3. 一个简单的产品,有时反而更受大家喜爱。因此,善于做减法很重要。

我:做事情一定不能忘了初衷。道理明白,但真正做事的时候,却不能严格地执行。我想,这种情况只有人才会有,不会发生在计算机身上,因为计算机会严格地按照设计的程序运行,不会受到感情,恐惧,贪婪等等非理性的因素影响。

虽然一个人过于机械化,不懂变通或没有主动性,我们会说他是算盘珠子。但有的时候,“不忘初心”对人来说很难,所以,随着计算机科学的不断进步,我们的确应该把有些事交给计算机来做,比如确立原则之后需要完美执行的事。

比如把自己当成股票交易软件,输入选股的条件,交易的原则,想象是计算机帮你操作,过程中你不能再参与。或许能帮助克服人性的弱点。

衡量一件事情是否有意义的一个标准是,看它是否能够盈利。很多时候,一件事情的成败不仅要看技术本身,还要看商业的结果。

由此我想到,一件事的结果是不是有效,也要看最后的成本由谁负担,不用负担成本的人说好是没有用的。比如二胎,比如最低工资标准,比如同工同酬,比如延长女性产假,都有可能事与愿违。


第四讲:计算机科学中的随机化——比特币的基础之一

我们通常比较喜欢确定性,不喜欢随机性。但是在计算机科学中,很多时候我们故意要把确定的东西变成随机的,这种思维显然和我们人类的思维不同。

我们今天从查找讲到比特币,内容跨度很大,我把它们总结如下:

1. 从查找到比特币,很多技术背后的道理是相通的,这也就是我喜欢讲原理,不喜欢讲具体的实战技术的原因,原理搞懂了,一通百通。一些朋友讲,能不能讲一些我明天就用得上的内容。非常抱歉,我只能说他们找错了人。我希望我的读者朋友都是能举一反十的,不是死记硬背方法的。

2. 我们今天的内容是一层层递进的,这样讲的目的是要强调一种做事情的方法,就是遇到问题解决问题。

3. 今天我们对随机性和随机化开了一个头,今后我们还会讲到相关的内容。从随机性在一些领域相比确定性的好处,我们应该了解,世界上很多时候,好和坏和我们想象的不一样,而且这种客观性不随我们的好恶而改变。

4. 回顾这一周的内容,我们讲查找信息的成本从几千万次,甚至十多亿次降到了几十次,又通过随机化降到了几次,甚至是一次直接成功,这也说明了技术无止境,我们对自己的要求也不应该有止境。

前进的时候遇到了问题,接下来该怎么办?这其实是我给你的问题。通常这时候人会有两个态度,一种是退回来,另一种是遇到问题,解决问题。

当然,对于任何事情,我们都应该问问,是否还有更好的方法。


第五讲:问答精华摘要

1、谷歌的文化是相信了技术,就一条道走到黑,用技术去调整,而不是用人。

这是一种和我们不同的思维方式,另一种哲学,另一种文化。

多元文化的重要性就在于,知道世界上有和我们不一样的想法,给我们一个全新的考虑问题的思路。

2、Google真的是保存一切,索引一切,它们在Google的数据中心中还不止一个拷贝。

我们这门课的目的,就是要给大家展示一个新的世界,一个巨大的世界,它超出我们很多人的想象。我们大部分人的思维是有局限性的,我们认为很大、做不到的事情,但是对Google这样的公司来讲根本不是问题,这就是认识上的差异。

如果你觉得上述事情对硬件的要求无法想象,说明两点:

1. 我们周围的环境局限了我们的见识。

2. 没有真正理解摩尔定律,对指数增长依然没有感觉。摩尔定律让今天计算的能力比10年前大了100倍。

在当今,什么是最重要的见识?就是真正理解了摩尔定律,理解了指数增长,这就是有见识。“得到”的很多老师,包括罗胖总是讲,要成为时间的朋友,就是对指数增长的体会,对见识的体会。

3、用“把握度”这种说法原则上是正确的。但是,光有这么一个原则还是远远不够的,需要有几个具体的做事方法或者说手段来解决实际应用中的矛盾。通常采用的方法包括:

1. 遇到具体问题时,要搞清楚目前的主要矛盾是什么。

2. 看成本,做对比,决定哪个更重要,提高整体性价比。

3. 有时空间和时间并非完全矛盾,一个问题解决了,相应的另一个问题就不再是问题。相反,一个地方成了瓶颈,另一个问题也无法解决。

我的留言:多元文化的重要性就在于,知道世界上有和我们不一样的想法,给我们一个全新的考虑问题的思路。不仅仅是多元文化,多种学科其实也是这样。比如我作为一个数学不好的文科生,现在讲计算机的内容有很多就不是能够很好的理解,但通过学习,渐渐的能够理解工程师可能的思维方式,这对正确的跟他们打交道有很大的帮助。

关于对做时间的朋友的理解,或许这有一点可意会,不可言传。我理解的时间的朋友,更多的是讲要有耐心。或者要脚踏实地的做,不要急于求成。但他们所理解时间的朋友还有更深一层,或者另一层面的意思。


小结:作为一个数学不好的文科生,涉及到的一些专业问题,其实搞不懂。所以我得到的一个感悟是,我们时时刻刻应该对世界保有一份敬畏之心,对他人保持一颗包容之心。

计算机处理信息的方法和我们人类是不一样的。由此可见,工程师思考问题的方法,解决问题的办法,也跟我们普通人或者非计算机专业的人不一样。对于自己不理解的人和事,要始终保持谦虚谨慎,开放包容,不应该用自己有限的认知,去想当然的认为就是如何如何。

在工作中,有时需要和数据部门打交道,对工程师提出一些需求。有的时候会有一些事,明明感觉比较简单,问题和改进的办法应该是显而易见的,但来来去去讨论好几次,仍然得不到解决。也有的时候,我们很忐忑的以为不一定能够达到目的,却很快得到了妥善处理。以往认为这应该是沟通的问题,相互之间的配合程度以及工作量的问题等等。现在虽然我还是不能理解那些专业知识,但对软件应用的认识又增加了一个维度,可能思维方式的不同,导致看问题的角度不一样,对同一个问题的理解程度当然也不一样。这个认识,会成为一个灯塔,在今后我与工程师打交道的过程中,始终提供指引。

在之前的来信中,专栏介绍了计算机的边界,又回过头去复习了一下。觉得多多少少又理解了一点为什么说现在世界上没有解决的问题太多,要想办法解决各种问题,而不是杞人忧天,担心人工智能太强大。科学的认知,才能从根本上缓解由于不确定性带来的恐惧和焦虑。在数据的领域是没有办法跟计算机竞争的,所以我们应该信任计算机,信任技术,想办法让计算机帮我们尽可能多的解决问题。计算机解决不了的问题,则必须由人自己来承担。技术的发展和进步,最终能够解放人类,让人类可以有更多的时间和精力去探索这个无穷无尽的世界。

你可能感兴趣的:(计算机算法#谷歌方法论学习笔记)