《代码大全》的第二章:介绍隐喻(类比)的思维方式,
《经济学原理》的第二章:介绍怎么像经济学家一样思考,
《计算机的心智操作系统之哲学原理》的第一章:介绍学习操作系统的思维,
所以我也尽早地介绍我写本系列中会经常运用的学习思维。

类比

你知道什么是驱动程序吗,你会怎么向一个小学三年级的学生解释什么是驱动程序呢?

我会跟这个小学生说,现在假设你要准备一个宣传活动,为了这个宣传活动,

  • 你请了一位来自奥地利的音乐家,他能演奏各式各样的音乐,他的名字叫声卡,他是说德语的。
  • 你请了一位来自法国的艺术家,他能画各式各样的画,他的名字叫显卡,他是说法语的。
  • 你请了一位来自意大利的行政,他能收集和准备乐谱和色彩,他的名字叫网卡,他是说意大利语的。
  • 你请了一位来自美国的主管,他能安排任务中的各种细节,他的名字叫操作系统,他是说英语的。

现在为了让声卡,显卡,网卡了解操作系统的安排,你觉得还缺少什么?

这时候是不是有一个答案从你脑海中冒出来,请记住这种感觉。

通过上面的一个例子,你是否已经get到类比的威力

类比(英语:Analogy,源自古希腊语),或类推,是一种认知过程,将某个特定事物所附带的讯息转移到其他特定事物之上。类比通过比较两件事情,清楚揭示二者之间的相似点,并将已知事物的特点,推衍到未知事物中,但两者不一定有实质上的同源性,其类比也不见得“合理”。在记忆、沟通与问题解决等过程中扮演重要角色。

类比是人类思考方式中的一种重要途径,可以用于辨识问题,解释概念,及发现新的事物或功能。

简单来说:类比的学习方法,能让自己一下就想明白了一件事情。

如何更好地应用类比思维

  1. 存取已知的类比来源物概念
  2. 将已知的类比来源物进行和标的物的比对
  3. 评估类比物以及标的物之间配对的吻合度
  4. 存取类比物与标的物之间的推论
  5. 并提取类比物与标的物之间的共通性

思维穿越

很多穿越剧讲述穿越到历史某个时间,然后利用自己的现代的知识,闯出一片天地。那么如果现在有机会让你穿越到1983年之前,和比尔盖茨一起打造Windows操作系统,你愿意么?

穿越时空,目前还不可能,但思维可以。思维可以让你设想在1983年之前,你和比尔盖茨一起讨论未来的操作系统应该是怎么样的,具备有那些特性等。

为什么要这样设想呢?

  • 如果你和比尔盖茨一起打造Windows操作系统,你会不了解Windows操作系统么?
  • 如果你阿基米德一起泡澡,你会不熟悉浮力原理么?
  • 如果你和牛顿...

使用思维穿越,能让你参与到每个知识点诞生的过程,这样还有谁比你更加了解它呢?

那么应该怎么做呢?

当你用电脑在愉快地听着歌写着文档,突然由于文档软件的bug导致电脑死机了,你会提出什么样的解决方案?
当你用电脑在愉快地听着歌写着文档,每当听歌软件切换歌曲的时候,文档软件有几秒卡住不动了,你会提出什么样的解决方案?

这些都是以前操作系统创造者面对过的问题,他们会记得他们遇到什么样的问题——这些记录就可以让你的思维假设你穿越到和操作系统创造者一起打造操作系统,思维可以让你假设和之前操作系统创造者一起讨论,对比你们之间各种提出的解决方案。通过这样的思维假设来让你参与到操作系统设计中,这样还有谁比你更加了解操作系统?

神造与人造

如果我们仔细看看身边的事物,就会发现所有的东西可以划分为两类,一类是本来就存在于自然中,人类所做的只不过是发现;另一类是本来并不存在,人类所做的是发明,第一类事物我们称之为神造事物或者自然存在的事物,第二类事物我们称之为人造事物。

自1946年诞生计算机(电脑)后,计算机发展十分迅速,其原因是因为计算机对现实世界的依赖极少,如果你要打造一辆汽车,你必须考虑能量转换啦,地面摩擦啦,空气阻力啦等等等,你必须一一遵守现实世界的种种规则才能让汽车运行起来,但在计算机世界呢,为了让两台计算机通信,我们提出了七层网络模型,但实现起来貌似太过繁琐,所以现在的通信用五层网络模型就好了,其他学科能干这么任性的事情么?(文学,语言这种100%由人创造的也可以,所以编程语言也可以任性,哇咔咔~)

对于现实世界(神造)我们能做的世界基本就是遵守,而对于计算机世界(人造),由于我们是这个世界的神,所以更多的概念和机制是由我们人类提出的。

人造学科的特点 神造学科的特点
不精确,具有相对性 精确、绝对
从对人类活动的观察得出 从对自然存在的观察得出
依赖于人的主观判断力 不依赖于人的主观判断力
通常符合人的直觉 通常违反人的直觉

由于计算机知识和编程语言很多概念,术语,机制都是由人提出的,我们按照人造事物的特点来进行学习,从而易如反掌地掌握该知识点。

当人们面临困境时通常的做法就是:发明新的概念,新的术语或新的机制来解脱困境。——《计算机的心智操作系统之哲学原理》

人们面临困境时的通常做法在电脑世界中(含编程语言)更加发挥的淋漓尽致!为什么羽毛和铁球在同样高度没有空气阻力的情况下同时到达地面,你可能很难get到神的用意(万有引力→引力波→??);但同为人,为什么要这么设定,你只要站在和提出人的视角看看,想想,应该很容易get到。

结束语

本章介绍了使用类比作为切入点让你快速地对某个知识点有个大概的了解,然后再使用感同身受让你参与知识点诞生的过程,从而了解知识的全貌。

下一章将介绍我为什么选择的是C#语言。

最后留下一道思考问题:你自己有什么方式方法来认识这个世界?或者遇到一件你从来没有遇到过的问题,没有人可以给你答案,你会怎么起手去分析它?

扩展阅读

我发布了《编程哲学之C#篇:01——创世纪》后有人留言

把两个完全没有关系的东西,往一块生搬,真不知道易经和二进制有什么关系?易经不是天下最厉害的内功心法吗?出自少林。

我对易经被用于算命,太极八卦图被用于辟邪,如同火药被用于制造烟花爆竹的心情是一样一样的。我以前读书的时候,也不明白为什么古代诗人看不惯世俗然后归园田居,吟诗两首。我们就要:啊,中华文化博大精深。

大部分编程书都会这么写,面向对象的三个基本特征是:封装、继承、多态。而作为被应试教育过来人的我们也会惯性地在封装、继承、多态下面画上横线,然后在考试试卷上妥妥地填上答案,得到分数,完成任务。然而我有幸自学编程,有幸看了《苏菲的世界》,猜想到面向对象思想起源于古希腊三圣的柏拉图、亚理士多德提出,然后我开启了大量的阅读,最后再次得出:啊,中华文化博大精深。

既然古希腊有类比,那么中华文化对类比的描述是:

触类旁通——《周易·系辞上》:“引而伸之;触类而长之;天下之能事毕矣。”

《周易》也叫《易经》为群经之首。我觉得是中华文化的起源和核心。

《易经》讲阴阳协调平衡。

  • 中医:如果你上火了,那么吃一些凉性的食物来平衡。
  • 风水:如果你脾气暴躁(火),那么摆一个鱼缸(水)来平衡。

中华文化很难摆脱平衡的思维。

二进制与《易经》的关系:

莱布尼茨二进制算术体系,在1701以前已经形成,他于1701年初向巴黎皇家学会提交了一篇正式论文,即论述二进制的《数字科学新论》(Essay d'unne nouvelle Science des Nombres),但被婉言谢绝。科学院院长封单内(De Fontenelle)提出的主要理由是看不出二进制有何用处。1703年,在补充了伏羲六十四卦次序图和伏羲六十四卦方位图后,他将全部研究成果发表在法国《皇家科学院院刊》上,[14]标题为“二进制算术阐释——仅仅使用数字0和1兼论其效能及伏羲数字的意义”,莱布尼茨根据二进制来理解先天圆图(先天六十四卦方圆图),说先天原图已经包含了他所发明的东西。

2017年,我买了很多有关中华文化的书,但到现在都没有看,但还是尽可能地补上中华文化对应的知识,希望有一天,你也能再次:啊,中华文化博大精深。

编程哲学之C#篇:02——学习思维的更多相关文章

  1. 编程哲学之C#篇:01——创世纪

    我们能否像神一样地创建一个世界? 对于创建世界而言,程序员的创作能力最接近于神--相对于导演,作家,漫画家而言,他们创建的世界(作品)一旦完成,就再也不会变化,创建的角色再也不会成长.而程序员创建的世 ...

  2. 编程哲学之 C# 篇:007——如何创造万物

    上帝拥有创建万物的能力,本文介绍创造万物的道,让你也拥有上帝般创造万物的能力! 道 中国哲学家,道家学派创始人--老子,在<道德经>写到: 道生一,一生二,二生三,三生万物 那么,是什么 ...

  3. 【Windows编程】系列第九篇:剪贴板使用

    上一篇我们学习了常见的通用对话框,本篇来了解剪贴板的使用,它常用于复制粘贴功能. 剪贴板是Windows最早就加入的功能,由于该功能非常实用,我们几乎每天都会使用到.通过剪贴板,我们就可以将数据从一个 ...

  4. Shell高级编程视频教程-跟着老男孩一步步学习Shell高级编程实战视频教程

    Shell高级编程视频教程-跟着老男孩一步步学习Shell高级编程实战视频教程 教程简介: 本教程共71节,主要介绍了shell的相关知识教程,如shell编程需要的基础知识储备.shell脚本概念介 ...

  5. Scala进阶之路-并发编程模型Akka入门篇

    Scala进阶之路-并发编程模型Akka入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Akka Actor介绍 1>.Akka介绍 写并发程序很难.程序员不得不处 ...

  6. 从编程哲学到开发应用:Spring的初步应用

    一.前言 在学习Spring的过程中,我们学习了很多东西,可是实际应用中,我们究竟用到了那些?常用的又是那种方法呢? 二.书上与开发的差异 1.IOC 1) IOC,控制反转,是Spring框架的核心 ...

  7. Python黑帽编程2.1 Python编程哲学

    Python黑帽编程2.1  Python编程哲学 本节的内容有些趣味性,涉及到很多人为什么会选择Python,为什么会喜欢这门语言.我带大家膜拜下Python作者的Python之禅,然后再来了解下P ...

  8. Linux shell脚本编程基础之练习篇

    shell脚本编程基础之练习篇. 1.编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息. #!/bin/bash ] then echo "请输入一个参数& ...

  9. SAP接口编程 之 JCo3.0系列(02) : JCo Client Programming

    SAP接口编程 之 JCo3.0系列(02) : JCo Client Programming 字数545 阅读52 评论0 喜欢1 JCo3.0调用SAP函数的过程 大致可以总结为以下步骤: 连接至 ...

随机推荐

  1. phpcms如何给已有的模块添加新功能?

    phpcms如何给已有的模块添加新功能? 方法一:直接在模块里的控制器文件中添加功能. 不建议使用此方法,因为一旦phpcms升级,有可能会覆盖模块中的文件, 导致你添加的功能丢失. 方法二:新建一个 ...

  2. 开始Java之旅

      从今天起,cgg将给大家讲讲Java这种神奇的东西.   至于配置环境变量,大家可以看看我的博客:环境变量上面有详细解释.   下面先给大家一个公式:    public class [文件名]{ ...

  3. 非常实用的windows运行打开服务命令

    1.注册表-->regedit.exe 2.本地服务设置-->services.msc 3.远程桌面连接-->mstsc 4.检查windows版本-->winver 5.组策 ...

  4. 2018.07.08 NOIP模拟 第K小数(二分)

    第K小数 题目背景 SOURCE:NOIP2016-AHSDFZ T1 题目描述 有两个正整数数列,元素个数分别为 N 和 M .从两个数列中分别任取一个数相乘,这样一共可以得到 N*M 个数,询问这 ...

  5. ABP框架系列之七:(About-关于ABP)

    Considerations Source codes Contributors Contact ASP.NET Boilerplate is designed to help us to devel ...

  6. 全国各地dns服务器列表

    211.103.13.101 江苏省无锡市 移动DNS服务器 211.136.28.231 北京市 移动DNS服务器 211.136.28.234 北京市 移动DNS服务器 211.136.28.23 ...

  7. HDU 2504 又见GCD (最大公因数+暴力)

    题意:是中文题. 析:a和c的最大公因数是b,也就是说,a和c除了b就没有公因数了.再说就是互质了. 所以先把a除以b,然后一个暴力n,满足gcd(a, n) =1,就结束,就是n倍的c. 代码如下: ...

  8. python文件对比

    #-*- encoding:utf-8 -*- class loadDatas(object): def __init__(self): self.path='./data' def load_com ...

  9. ansible-api 调试

    使用api的时候有时候会遇到一些难以想象到的错误,可以通过以下几种方式来定位. 1.使用 自定义 callback class ResultCallback(CallbackBase): def v2 ...

  10. Oracle之SQL语句性能优化(34条优化方法)

    (1)选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处 ...