TheWayOfThinking

<吴军的谷歌方法论>之'计算机思维‘

Posted by kunnan on April 22, 2018

前言

  • 计算机思维
    1、计算机从专用到通用背后的逻辑、
    2、为什么算盘是计算机、
    3、计算机从简单到复杂、
    4、五级工程师和职业发展、
    5、什么是计算机的数据结构
    6、索引带来搜索的效率、灵活性
    7、第078封信 | 从二叉树数据结构到对具体问题共性的抽象化
    8、第079封信 | 计算机经典算法:锦标赛排序算法
    9、第080封信 | Google面试题:如何设计一个地图功能,找到离当前最近的加油站?
    10、答读者问20 | 计算机数据结构的出现与计算机本身的关系
    
  • 教育理念和学习方法
    1、为什么要学习科学
    2、来信补充 | 《梅杜莎之筏》这幅画为什么重要?
    
  • 社会和职场的人生智慧
    1、以正合、以奇胜 
    2、拉里佩奇的人生智慧
    
  • 发明的逻辑
    1、第085封信 :为什么瓷器出现在中国?
    2、第086封信 :为什么青花瓷能够热销到全世界?
    

计算机思维

1、计算机从专用到通用背后的逻辑

一个复杂的问题如果能拆成两个等价的简单问题,成功的可能性就大很多,就可以事半功倍。

  • 香浓的思想(信息论、二进制运算的开关逻辑电路)
    模块化:简单的模块 搭建出各种复杂的功能
    等价性:复杂的计算,《=》加减乘除运算 《=》 开关电路逻辑--- 科学家的工作就是证明两件事情等价,而工程师的工作是实现等价的桥梁。
    
  • 重点
    自然家的物质、生命、计算机,都是由大量极小的基本单元构成。
    

2、为什么算盘是计算机

有了口诀控制,算盘才算是计算机 —控制是计算机的本质

  • 发明的三种类型
     第一种:完成特定功能的新设备、新方法
     第二种: 在原有设备基础上发明一种新的使用方法(算盘的口诀)---控制是计算机的本质
     第三种:平台的开发,在这个平台便于人们的功能性扩张----Google从查找信息到心在的互联网入口就是很好的例子
    

3、计算机从简单到复杂

当世界上任何的东西越做越复杂的时候,就是开始从复杂往简单转变的时候。

  • 发明的轨迹
    为了让一种设备完成更多、更复杂的功能,发明变得越来越复杂;此时就要有人换一种思路进行发明,将它重新变得简单,这个是发明的大趋势。
    

4、五级工程师和职业发展- 依据郎道的方法进行分级

科学家考虑的是对和错, 工程师则是在现有条件下考虑好和坏的解决方案

  • 分类原则
    第五级别:能独立解决问题,完成工程工作
    4: 能指导和带领其他人一同完成更有影响力的工作---领导力+ 大问题化为小问题
    3: 能独立设计和实现产品,并且在市场上获得成功----- 产品经理+心胸开阔+
    2: 能设计和实现别人不能做出的产品,也就是说他的作用很难取代
    1:开创一个产业
    

5、什么是计算机的数据结构

  • 数据就等同于点,数据结构就是数据中常用的具体关系
<!-- 数据结构+ 算法 = 程序 -->
如果说一幅画是点的有机组合,几何图形反映出点之间常用具体的关系,
那么在计算机科学中,数据就等同于点,数据结构就是数据中常用的具体关系。
  • 常见的数据结构:线性表
<!-- 数组: 一组编了号的固定大小的单元 -->
  • 常见的数据结构:链表的线性数据结构
为了优化数组的新增数据带来的大量的位置移动,而产生的

<!-- 每个人只要记得前面或者后面的一个人,彼此没有编号一说 -->

这样,新增数据的时候,只要修改对应的指针即可

<!-- 缺点: 查找效率不高 -->

  • 小结

1.掌握了如何使用基本图形、结构和组成部分 来构建复杂设计和产品的方法,

要想完成复杂的工作,必须掌握所谓科班出身人士掌握的工具和方法。
另外,专业人士会把复杂的东西分解为简单的基本单元。

2. 在计算机领域,数据结构则相当于设计中的基本几何图形,它们大多是从具体的应用中抽象出来的;

一个从业者水平的高下,首先在于灵活使用这些数据结构的本领。

3.凡事有一利就有一弊

4、下一个重要的数据结构: 二叉树

6、索引带来搜索的效率、灵活性

Google在建索引时,是对所有的词建索引的,而不仅仅是对于一些重要的词建立索引

  • 一般索引只会根据一个维度的信息建立,而不会用几个维度的组合信息建立,比如,不会建立“人名+毕业学校”这样的索引。
    对索引 进行查询: 按照一个公式,将关键词变成一个编号,然后再取尾数(火车安排座位,座位号重合的,就就近坐下)-》 伪随机数 -〉 数据加密-》公开密钥
    

7、第078封信 | 从二叉树数据结构到对具体问题共性的抽象化

  • 真实的世界里,到底是具体的数值重要,还是数值之间相对的大小更重要?
1) 技巧——任何选择都比没有选择要好!在生活中也是如此,我们通常无法脚踩两只船。

2) 具体到上面这个问题,在计算机科学中,相对的大小要比绝对的数量更重要。这一点,计算机科学和数、理、化都不相同,计算机只看重相对的输赢。

3)工具的发明是针对问题来的。
在数学上要计算数字,人类就发明了算盘。

在物理学上,要测量绝对的数值,人类就发明了各种度量长度的尺子、计时的钟、称重量的天平和秤等等。

在化学上,要测量化学反应的当量,人类就发明了各种有刻度的量器。

在计算机中,由于经常要做的事情是判断真假、比较大小、排序、挑选最大值这类的操作,而它们在计算机的世界里又如此重要,当然也就值得为这些事情专门设计一种数据结构,这种数据结构被称为二叉树。
  • Binary_Tree
1) 我们在生活中,一些组织结构其实就是树状结构,比如一个公司的大老板是根结点,
2)这种怪怪的数据结构在计算机科学中有什么用处呢?

1))可以用于排序(从左到右是从小到大)、
2))快速查找到某一个数值。
3))另外,网站的目录结构也是树状的(N个分叉),因此,针对二叉树的各种算法,稍加改变,就可以用于互联网。比如,下载一个网站里面所有的网页,就会用到二叉树中的一种遍历算法。
  • 二叉树排序的过程遵循的两条规则:
就是它左右两个分叉可以和比较大小后的两种结果自然对应起来。

第一,先来的占据根部,以及靠近顶部层级比较高的位置,后来的放在相对靠下的位置。

第二,每当一个分支的根部被占据之后,接下来的数字,是和根部的数字进行比较,小的放到左边分叉中,大的放到右边分叉中。

  • 小结
    内容总结:
    1. 工具是根据所遇到的问题而发明的
    2. 在计算机科学中,数据的相对大小比绝对的数值重要,出于很多数据比大小的需求以及其他一些需求,就产生了一个抽象的数据结构——二叉树。
    3. 和很多抽象的工具一样,二叉树其实能在现实生活中找到很多对应。除了比大小之外,我们的组织架构,我们的文件目录,网站的链接层次,以及锦标赛,都能对应到二叉树中。
    4. 对应到二叉树的问题,都有一些共性,解决它们之间问题的方法是可以触类旁通的。这就是我们要学习理论的目的.
    

8、第079封信 | 计算机经典算法:锦标赛排序算法

利用二叉树讲解锦标赛排序算法,然后用这个算法,解决高盛的那道面试题(如何从25个选手中赛出前三名)

1)锦标赛排序算法
  • 锦标赛排序算法
    1) 单淘汰的锦标赛中,选手们两两比赛,胜者晋级,败者被淘汰。比如世界乒乓球锦标赛或者大满贯网球赛就是这么进行的。
    2) 把比赛的赛程和结果对应成一个二叉树。它和二叉树长得一模一样。在树中每一个选手是二叉树中的一个叶子结点,每一场比赛就相当于两个数字在比大小。数字大的选手获胜进入下一轮,也就是说比大小,大的那个选手,进入上一层,成为枝干上的根。
    所以,进入到某一轮比赛的选手,其实都是某个子树干的根结点。最后的冠军自然就是整个二叉树的根结点。
    3) 赛制的合理性来自一个假设:如果张三赢了李四,李四赢了王五,那么张三一定能赢王五。
    也就是说:A>B, B>C, 那么必然有A>C。不妨称这种合理的假设为“输赢的传递性”。
    
  • “锦标赛排序法”(也称为树形选择排序)的两个步骤
如果采用类似锦标赛的方法排出了一、二、三名来,第一大的数字可以完全按照锦标赛淘汰制的方式来。但是第二大的数字,就需要从所有与最大数字比较过被淘汰的数字中,再次比较选择才能确定。这种算法,由于受到锦标赛的启发,因此被称为是“锦标赛排序法”(也称为树形选择排序)。总结一下这种方法,它分为两步:

1)第一步,把所有的数字放到二叉树的叶子结点,然后按照锦标赛单淘汰的方式,两两比较选出最大的。

2)第二步,从所有被最大的数字淘汰的数字(叶子节点)中选择第二大的(执行第一步)。对于第三、第四大的数字,可以以此类推(重新选择叶子结点数组)。
  • 算法的复杂度
    算法的复杂度:是N乘以Log N,和快速排序差不多。
    1)在特定的场合下,它更快速。比如说,如果我们只需要选出第一名,这种算法的复杂度只有N,不是N乘以Log N。如果还需要选出第二名,则额外增加Log N次计算就可以了,对第三名也是如此。也就是说,这种方法在从N个选手中选出K个选手的事情中特别快。
    
2)高盛的面试题
  • 高盛的面试题
    假定有二十五名短跑选手比赛竞争金银铜牌,赛场上有五条赛道,因此一次可以有五个人同时比赛。比赛并不计时,只看相应的名次。假如选手的发挥是稳定的,也就是说如果约翰比张三跑得快,张三比凯利跑得快,那么约翰一定比凯利跑得快。最少需要几组比赛才能决出前三名?
    
  • 如果你不是天才,多掌握几个工具(计算机的理论)
0)wujun学过计算机的理论,知道这类问题怎么解决。kn学金融的,要在40分钟内想出解法,只能靠智力了。这就如同wujun的枪是狙击步枪,有瞄准镜,打中目标不难,kn只有三八大盖,只能靠射击水平。

1) 如果你是天才,恭喜你,你的智力会让你做事比别人容易,但如果你不是,多掌握几个工具就好了。
  • 8 次的具体做法—中规中矩
    第一步,将25名选手分为五个组,每组五个人,不妨把这25人根据所在的组进行编号,A1-A5在A组,B1-B5在B组……最后E1-E5在最后的E组。
    然后让每个组分别比赛,排出各组的名次来。不失一般性(数学中的一种常见表达),假设他们的名次就是他们在小组中的编号,即A组的名次是A1、A2、A3、A4、A5,B组和其它组的名次也是类似(如下图):
    

第二步,让各组的第一名,也就是A1、B1、C1、D1、E1再比一次,上图中是第一排红颜色的,这样就能决出第一名。不失一般性,我们假设A1在这次比赛中获胜,这样我们就知道了第一名
第三步,A2和另外四个组的第一名竞争亚军。如果这一次A2赢了,他显然是亚军,就由A3递进参加争夺第三名的比赛。下图中用红色圈定了这种情况下参加第八次比赛的五位选手。如果A2没有赢,另四个组的某个第一名赢了,那个赢的人是亚军,就由那个组下一位选手递进,决逐第三名。

  • 7 次的比赛方案
    1) 前六次比赛都是必须的,最佳答案的前两步和上述答案中的前两步是相同的。在上述方案中,有一个信息被忽略了,那就是在第六组比赛(即五个第一名的比赛)结束之后,最后的两名已经没有资格决逐前三名了。我们不妨假设那一次比赛从最快到最慢的结果是A1、B1、C1、D1、E1。在D1和E1之前已经有三名选手了,他们肯定不是前三名。
    2) 第二名的候选?(输给第一名的第二名:A2、B1)
    根据锦标赛排序的原则,直接输给第一名的人,也就是A组中的A2,以及最后附加赛输给他的B1,仅此两人而已。
    3) 除了A2和B1,谁还会是第三名的候选呢?(输给第二名候选人的第三名:A3、B2、C1)
    和A1在某一组比赛的第三名,他们是A3、C1,输给第二名候选人B1的B2。
    4)第二、三名的候选人一共只有五个,即A2、A3、B1、B2和C1(下图中的红色选手),刚好凑一组。第七次,让他们五个人再跑一次即可。
    

  • 小结:
7次的方法比赛八次的方法更有效的原因可以归结为两点:

1) 首先是少做了一些无用功。
2) 其次,要善用信息。
3)从这个问题的解法上你已经看出,善于掌握工具(锦标赛排序),可以弥补智力上的不足。

9、第080封信 | Google面试题:如何设计一个地图功能,找到离当前最近的加油站?

如果是车载的地图,需要考虑到汽车是移动的,结果会不断更新,因此那些速度很慢的算法就不适合这个场景了。 其次,结果的刷新记录也不必太快,以免用户觉得结果太不确定。

  • 三步分解
1)首先,我们需要搞清楚每一个加油站的位置和汽车现在的位置,最好同时也搞清楚行车方向。加油站的位置是GPS的坐标,还是街道的名称和号码,或者是什么地图中特定的坐标,这个要和考官沟通清楚。
至于汽车的位置,只有GPS的定位,可能还需要转换成街道地址的范围
2)第二步,就要说说距离的计算了。在地面上行驶,两点之间的距离不是欧几里得直线距离.
那么怎么找到上千种路线中最短的一条呢?
在数学中有一种方法叫做动态规划,可以完成这件事.
把汽车和城市里所有的加油站之间的距离列一个表,它的格式可以如下:
加油站G1,距离D1;
加油站G2,距离D2;
3)第三步:就是要按照距离排序,找出最近的几个加油站。
在二叉树这种数据结构中,有一种更特殊的细类,被称为“堆”,用这种数据结构,就可以做到只排出前几名,而不用管后面的名次。
ps:如果考虑到这个真实的应用场景,很多计算其实都是可以预先算好的,等到服务的时候,直接把结果调出来即可,而不需要做重复计算。
  • 大数据思维
    大数据很重要的一条就是不能像过去那样,将各个事件看成彼此独立的,分开来处理,而是要把所有数据集中起来,进行全局优化。
    
  • 启发
    1. 不要做无用功。把那些无用功去掉,我们就比其他人进步快,产出高了。
    2. 很多事情都遵循同一个规律,比如从锦标赛,到找加油站,到处理零售交易,都会用到二叉树,特别是它的一个子类——堆。这些问题,都可以被称为“等价的问题”。---在学习理论的时候,需要了解这个理论为什么会被提出,当时要解决的应用问题是什么,搞清楚这些,便可以一通百通。
    

10、答读者问20 | 计算机数据结构的出现与计算机本身的关系

1)、哈希表在一定程度上是否兼有数组和链表的优点?

数组、链表和哈希表是三个不同的东西,它们有一些相关性,但是使用的目的有区别。

  • 数组、链表和哈希表
数组是为了便于直接查找访问,它要求数据项基本上是整齐的.
链表强调的是前后的依赖关系,一个连着一个,比如某个学位选课的次序,一门课和它的先修课就是这种链接关系。
哈希表的本质是通过随机化,把一个比较大的、稀疏的空间,映射到一个比较小的、紧密的空间中。在计算机中,它通常是通过数组实现的。相比一般的数组,它有三个优点:
1. 动态增加或者删除一个数据项比较快。
2. 数组只能根据下标直接查找,下标和数据内容无关,如果要根据内容查找,效率就比较低,哈希表的下标是根据数据内容计算出来的,因此根据内容查找比较快。
3. 数组在处理多个维度时变得很复杂,哈希表可以将多个维度的数据映射到一个维度。
但是,哈希表是需要额外成本的,它其实是以空间换时间。其次,数组可以一次顺序存取很多项数据,而哈希表存取数据只能一个个进行。
2)结构化记忆和计算机的数据库存储方法有关系。

这里讲它在存储和查找数据上的两个要点:

  • 1.它把我们现实生活中很具体的、结构并不是很清晰的数据抽象成结构化的。

  • 2.抽象化的过程要超脱数据原来物理式的结构.

3)数据类型的概念,跟数据结构的区别是什么?和数据结构又有什么联系?
  • 例子
    盖房子,需要各种预制件,它们就是数据结构。但是你使用的钢筋有尺寸和标号的差别,这就相当于计算机的数据类型.
    
4)作为二叉树的变种,哈夫曼树和红黑树在查询或者写入效率上做了优化呢?

目的不同

  • 1、哈夫曼树对应于哈夫曼编码,即信息论里的最短编码。这样可以保证平均的访问时间最短。哈夫曼编码的条件是必须事先知道每个码出现的频率。
  • 2、红黑树是为了防止二叉树一个枝子太长,另一个太短, 导致效率不高。
使用红黑树,可以保证各个枝子的长度基本相等。
代价是需要不断维持平衡。

教育理念和学习方法

  • 知识的获取: 亲身感知(旅行)、他人告知(学习)、逻辑推知

1、为什么要学习科学

  • 四个目的
1、掌握一种看待世界和解决问题的方法:科学的方法,能得到预期的结果,并且能在不断重复这种结果

2、了解人类知识的边界:培养基本的科学素养

3、帮助我们获得可叠加性的进步:科学、技术和工程,是几乎仅有的课叠加性的人类文明成就。 --在工作中,如果我们做的每一件事情,都能成为今后攀登更高点的铺路石,我们就会取得可叠加性的进步

4、成为一个讲道理的人:讲道理需要双方有共同的认知基础和彼此认可的讨论问题的方式,而科学本身就是帮助我们建立这样的认知基础和方法

2、来信补充 | 《梅杜莎之筏》这幅画为什么重要?

Medusa

社会和职场的人生智慧

1、以正合、以奇胜

作战,先要把正面的兵排好,要排得不偏斜,合乎法则,这叫做正。如果这时你还有多余的兵力,你就赢了—-积累效应

  • 为人处世,成功的第一要素,就是走正道,不要老想着出奇制胜,特别是在未来非常光明的时候。
1、在无限长的时间里,变是常态,不变是非常态。但是在有限的时间里不变和渐变是常态,巨变是非常态。

2、首先做一个对未来的乐观派,其次,规规矩矩地成为实力派,不要走无谓的弯路。临渊羡鱼,不如退而结网。

2、拉里佩奇的人生智慧

  • 牙刷原则
<!-- 一个好的产品要有牙刷的功能。让用户每天都必须用上几分钟,就如同刷牙一样,久而久之用户就养成了使用该品牌产品的习惯。 -->

这个产品的可靠性和稳定性非常重要



  • 爆款效应
<!-- 爆款效应 -->

1、一个好的产品或者品牌,每过一段时间就要给大家带来一个惊喜,提醒大家它的存在。

2、例如电子产品的爆款营销周期是一年

<!-- 3、对职场上的借鉴:灵活运用牙刷和爆款的原则。 -->

1)每一周,你最好把你的工作总结成三句话,周一早上汇报给你的老板;

2)每半年到一年,你要有一个让老板惊喜的成果
  • 公司生死的看法:薪尽火传

硅谷公司特点之一就是,不介意公司的死亡,不会刻意去拯救一个衰老的公司,而是把目光往前看,努力寻找下一次机会。


<!-- 公司真正能够传承的其实也只是基因而已。 -->

佩奇认同公司最终死掉这件事是常态,在这个前提下,再去考虑如何传承公司的基因和文化,而不是试图维持一个不死的公司。

发明的逻辑

1、第085封信 :为什么瓷器出现在中国?

  • 了解瓷器发明背后的逻辑对我们今天的发明创造依然很有意义。
    我们的见识和认知就是通过把一件事情研究透,把它放在很大的时空里去思考,从而提高我们的认知能力。
    
  • 陶瓷,所需要的材料很简单(一般的黏土)、所要求的技术含量不算高
    1) 陶器的历史比瓷器要长得多,它不仅出现的时间早,而且各个文明都独自制造出了陶器,因为它所需要的材料很简单,就是一般的黏土,到处都有。
    2) 烧制陶器所要求的技术含量也不算高,只要进入新石器时代,人类就有能力造出陶器,也就是说陶器的出现是文明自然演绎的结果。
    
  • 陶器的缺点
    1) 首先强度不够大,而且相比瓷器特别笨重。
    2) 其次,陶器的密水性不好,用陶器存水或者其它液体,很快就会渗漏,今天你用陶制的花瓶种花,实际上就是利用它容易渗水的原理。
    
  • 瓷器发明的大前提、小前提和偶然性
    瓷器并不是文明水平到了一定程度就能够被发明出来,而需要很多条件才能制造出来,其中最重要的是三个:
    1) 高温
    2) 上釉
    3) 特殊材料高岭土
    
  • 陶器和瓷器的一个差别:断面
    在放大镜下用肉眼就能看出来,把它们砸碎,看看断面。
    陶器的断面有一个个小的黏土颗粒,因此陶器不过是黏土颗粒粘连到一起,而瓷器是一个整体,它的断面和玻璃的断面一样。
    
I、瓷器发明的大前提、小前提和偶然性
  • 1> 高温,为什么这件事情对陶瓷制造重要呢?炉温=文明程度,这是发明瓷器的大前提。
    先讲温度,也就是烧窑能够达到的稳定均匀的炉温。
    1) 事实上,一个简单判断早期文明水平的方式,就看那个文明能把炉子温度烧多高即可,如果能烧到1000度左右,基本上就有条件进入青铜时代了,这时大规模建设城市也成为了可能。
    2) 如果能把炉子烧到1200至1300度,就可以冶炼生铁了,文明就进入铁器时代,
    3) 以此类推。烧制瓷器则需要在1300度之上。
    4) 西方历史学家和科学家有一个简单衡量文明程度的办法,就是依照一种文明所能使用的能量的大小
    
  • 2>瓷器密水的一个主要原因是外面都有一层釉,釉便成为了制造精良盛器的小前提
    1)上釉技术最早不是中国人发明的,而是古巴比伦人发明的。
    2) 他们发现将盐或者苏打和沙子中的石英混合加热,就会产生一种玻璃状的物质,就是今天的釉彩。古巴比伦人将富含石英的细沙粉末和苏打涂抹在陶器表面,在高温下烧制,就在陶器表面有了釉面。遗憾的是,这样烧出来的釉并不能严实地包裹在陶器表面,因此起不到密水的作用,于是古巴比伦人干脆用这种技术烧制建筑使用的釉面砖了,而没有用于制作盛器。
    3) 古埃及比美索不达米亚稍微晚一点进入铁器时代,他们也发明了上釉技术。
    
  • 古埃及比美索不达米亚为什么没有先发明瓷器
    1)非常遗憾的是,这在人类文明的摇篮埃及和美索不达米亚根本就没有瓷土,因此他们当时文明再先进,也发明不出瓷器。
    2)那两个地区没有森林,无法提供高温烧制瓷器所需要的燃料。
    
  • 3>两个天然的条件:瓷土(高岭土)、森林(能量使用程度是理解文明的一把钥匙)
    1) 烧制瓷器所需要的原材料——一种被称为高岭土的特殊的黏土,也称为瓷土。
    高岭土虽然名字里有个土字,但它其实是一种特殊的矿石,因为后来在景德镇高岭山找到的这种矿石品质最好,便得到了高岭土这个名字。
    全世界高岭土的储备其实是非常丰富的,今天在世界大部分地区都发现了储量不低的高岭土矿,而以美洲最多,中国次之,欧洲就比较少。
    2) 森林,提供高温烧制瓷器所需要的燃料。
    
  • 中国恰好具备:瓷土(高岭土)、森林的条件
    美索不达米亚和古埃及所缺的两个条件,中国恰好具备。
    1) 中国人使用高岭土的年代可以追溯到商代,但是由于那时没有办法把炉子烧得很热,因此使用高岭土烧出来的依然是陶器,只是颜色白一点罢了。
    等中国进入魏晋南北朝时,冶铁技术已经非常普及,把炉子烧到1300度左右已经不是难事,高岭土在这样的温度下就开始熔化,在冷却后,就形成一个整体,这就是瓷器。
    
  • 中国古代的工匠们还发明了独特的上釉技术。(自然上釉法->炭在陶器坯表面加热后能够形成釉面)
    1) 最初这项技术的发明纯属偶然,当工匠们用炭烧制陶器时,一些炭渣溅到陶器上,炭让陶土中的石英发生了还原反应,陶器表面一些地方就有一层亮亮的玻璃状的釉彩,这种上釉法被称为自然上釉法。
    自然上釉法成功与否全看运气,你可以想象,要靠炭渣溅到整个陶器(或者瓷器)的表面上概率是多么小。今天如果你有幸见到一件早期自然上釉的瓷器是非常幸运的事情。
    2)中国工匠显然不是利用自然上釉法制造瓷器的,而是慢慢懂得了它的原理,即炭在陶器坯表面加热后能够形成釉面,于是陶工们将瓷器的坯子泡浸草木灰的灰浆后拿出来再烧制,就在瓷器上形成了均匀的釉面。
    3)到此,瓷器的发明算是完成了,这大约是公元300年到500年之间的事情,距离赫梯人发明高温陶器和古巴比伦人发明上釉技术,过去了大约1500多年。
    
  • 历史的必然性:很多时候,我们的成功都必须感谢运气
    从瓷器漫长的发明过程,我们首先可以体会出一种历史的必然性。
    古埃及和美索不达米亚虽然文明先进,却不具备发明瓷器的原材料,美洲地区倒是高岭土储量丰富,但是文明又太落后,等到哥伦布发现新大陆时,当地人还没有进入青铜时代,不具备发明瓷器的基本技术的可能性。相比之下,有可能发明瓷器的只有中华文明,这是一种必然性。你也可以讲中国的运气很好。
    
    II、理解大前提、小前提和运气的重要性
  • 发明的边界条件
    瓷器的发明需要很多条件,缺一不可。
    1)首先是整体的文明程度,具体到瓷器是炉温;
    2)其次才是具体到这项发明所需要的关键技术,具体到瓷器是上釉技术
    3)最后还要有好运气,在瓷器上,美索不达米亚和古埃及就有点儿“点背”。
    
  • 理解大前提、小前提和运气的重要性
    大前提、小前提:我们在选择做什么事情时,搜索的范围就能够小很多。
    运气:发明常常是一个从偶然到必然的过程,偶然的发现和成功非常多,没有什么了不起,能够从偶然的成功中找到真正的规律,能够重复成功的人,才算是完成了真正的发明。中国人发明草木灰上釉法,就是这样从自发到自觉的过程。对于一个组织来讲,能够把偶然的成功慢慢变成必然的结果,非常重要。
    
  • 今天的思考题:为什么高铁诞生于欧洲和日本,繁荣于中国,美国在高铁上却非常落后?
    沿着"发明的边界条件"的思路,大家可以理解今天的很多现象;
    比如为什么高铁诞生于欧洲和日本,繁荣于中国,但是一直以科技发达著称的美国在高铁上却非常落后?
    

2、第086封信 | 为什么青花瓷能够热销到全世界?

see also

零、特殊变量列表
1) $ 表示当前Shell进程的ID,即pid;对于 Shell 脚本,就是这些脚本所在的进程ID。
devzkndeMBP:kunnan.github.io.git devzkn$ echo $$
62856
2) $0	当前脚本的文件名
devzkndeMBP:kunnan.github.io.git devzkn$ echo $0
-bash
3) $n 传递给脚本或函数的参数
4) $# 传递给脚本或函数的参数个数
5) $*	传递给脚本或函数的所有参数。
6) $@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同
7) $? 上个命令的退出状态,或函数的返回值。
一、我的一个小需求就是打印当前命令
可以结合$0、$@,或者$*; 因为"$*" 是将所有的参数作为一个整体,因此我会采用它,并应用于knpost 中。
kncommand=">* [knpost](https://github.com/zhangkn/KNBin/blob/master/knpost) \n\`\`\`\n$0 $*\n\`\`\`"
echo  "$kncommand" >> ${postName}
二、$* 和 $@ 的区别
1)当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;
2)"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数
3)例子:这个时候就有区别
for var in "$*"
for var in "$@"
4) knpost $1  "$2" $4
"$n",跟"$*" 的效果是一样的
#"$2",是想要获取整个参数:Advanced Google Dorking Commands; $2 将只是Advanced

转载请注明: > TheWayOfThinking