编程哲学之C#篇:02——学习思维

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

类比

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

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

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

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

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

通过上面的一个例子,你是否已经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年,我买了很多有关中华文化的书,但到现在都没有看,但还是尽可能地补上中华文化对应的知识,希望有一天,你也能再次:啊,中华文化博大精深。

原文地址:https://www.cnblogs.com/weixb/p/9289689.html

时间: 2024-10-08 10:13:50

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

编程珠玑番外篇

1.Plan 9 的八卦 在 Windows 下喜欢用 FTP 的同学抱怨 Linux 下面没有如 LeapFTP 那样的方便的工具. 在苹果下面用惯了 Cyberduck 的同学可能也会抱怨 Linux 下面使用 FTP 和 SFTP 是一件麻烦的事情. 其实一点都不麻烦, 因为在 LINUX 系统上压根就不需要用 FTP. 为什么呢? 因为一行简单的配置之后, 你就可以像使用本机文件一样使用远程的任何文件. 无论是想编辑, 查看还是删除重命名, 都和本机文件一样的用. 这么神奇的功能到底如何

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

 上一篇我们学习了常见的通用对话框,本篇来了解剪贴板的使用,它常用于复制粘贴功能. 剪贴板是Windows最早就加入的功能,由于该功能非常实用,我们几乎每天都会使用到.通过剪贴板,我们就可以将数据从一个应用程序传递到另一个应用程序,是一种简单的进程间通信. 许多文档处理软件都有复制.剪切.粘贴功能,这些都是用Windows剪贴板实现的,当然我们也可以在我们的程序中实现自己的剪贴板功能,本篇我们就来实现自己的剪贴板.使用剪贴板时,都是先把源数据先传到剪贴板上,再在需要的时候从剪贴板传输到目的处

Python学习思维导图

无意间碰到的一个大神整理的Python学习思维导图,感觉对初学者理清学习思路大有裨益,非常感谢他的分享. 详情见:https://woaielf.github.io/2017/06/13/python3-all/ 14 张思维导图 基础知识 数据类型 序列 字符串 列表 & 元组 字典 & 集合 条件 & 循环 文件对象 错误 & 异常 函数 模块 面向对象编程

编程珠玑番外篇之番外篇-O 中间语言和虚拟机漫谈(ZZ)

http://blog.youxu.info/2014/05/11/language-and-vm/ 导言 编程语言的发展历史,总的来说,是一个从抽象机器操作逐步进化为抽象人的思维的过程.机器操作和人的思维如一枚硬币的两面,而语言编译器就像是个双面胶,将这两面粘在一起,保证编程语言源程序和机器代码在行为上等价.当然,人本身并不是一个完美的编译器,不能无错的将思维表达为高级语言程序,这种偏差,即Bug.因为编译器的帮助,我们可以脱离机器细节,只关心表达思维和程序行为这一面. 编程语言的发展日新月异

优秀的编程风格(Java篇)——高薪必看

今天突发奇想,对编码习惯和编程风格很感兴趣,于是乎,找了一下关于编程风格(Java篇)的资料,希望对爱好编码或者开始学习编码的同学有帮助! 来自<The Elements of Java Style>-<Java编程风格>一书,值得一读的书籍,会让你在细节上节省很多时间,合作之间更加愉快! 好处不多说了,但是有几个原则如下: 1.保持原有风格 2.坚持最小惊奇原则 3.第一次就做对 4.记录所有非规范行为 格式规范: 1.缩进嵌套的代码:在每个代码块和嵌套中加入缩进,缩进代码,加强

少儿创意学编程(Scratch基础篇):第3课——捉鬼敢死队

<少儿创意学编程(Scratch基础篇)>,参考了英国公益组织发起的"code club(代码俱乐部)"--少儿免费学编程活动.愿为中国的少儿创意编程教育尽微薄之力,对国内的家长.信息教师和相关教育机构有所帮助,共同促进软件素质教育的发展. 本课程以Scratch软件为教育工具.Scratch是一种图形化编程语言,由麻省理工学院开发.孩子们可以像搭积木一样,拖动和组合代码块,制作丰富多样的程序,比如动画,故事和游戏等等.本课程共设有6个项目,知识点由简到难,循序渐进,带领孩

少儿创意学编程(Scratch基础篇):第4课——聊天机器人

<少儿创意学编程(Scratch基础篇)>,参考了英国公益组织发起的"code club(代码俱乐部)"--少儿免费学编程活动.愿为中国的少儿创意编程教育尽微薄之力,对国内的家长.信息教师和相关教育机构有所帮助,共同促进软件素质教育的发展. 本课程以Scratch软件为教育工具.Scratch是一种图形化编程语言,由麻省理工学院开发.孩子们可以像搭积木一样,拖动和组合代码块,制作丰富多样的程序,比如动画,故事和游戏等等.本课程共设有6个项目,知识点由简到难,循序渐进,带领孩

少儿创意学编程(Scratch基础篇):第5课——绘画板

<少儿创意学编程(Scratch基础篇)>,参考了英国公益组织发起的"code club(代码俱乐部)"--少儿免费学编程活动.愿为中国的少儿创意编程教育尽微薄之力,对国内的家长.信息教师和相关教育机构有所帮助,共同促进软件素质教育的发展. 本课程以Scratch软件为教育工具.Scratch是一种图形化编程语言,由麻省理工学院开发.孩子们可以像搭积木一样,拖动和组合代码块,制作丰富多样的程序,比如动画,故事和游戏等等.本课程共设有6个项目,知识点由简到难,循序渐进,带领孩

教你如何学习思维导图

我们学习思维导图,是否成效,有进步其实决定因素很多,而我们能做的就是在大家起步都一样的时候,比他人多掌握一份思维导图技巧,我们在思维导图的路上也就能够走得更远一些. 第一 态度.这是学习和掌握思维导图的根本,它决定了我们对思维导图掌握的程度.很多时候,是我们的决心和信心决定了我们未来成就的高度. 第二 速度.我们练习和应用的速度,即我们的执行力如何,学了不用就是油费 .在我们的 生活中有多少梦想和计划是由于我们缺乏执行力而成为泡影 .所以,计划很重要,行动更重要. 第三 力度.力度决定了我们可以