误导思维发展的学习

昨天刚在《系统科学导引》的课堂上讲了讲Slagle符号积分系统的例子(系统工程和系统科学一例),强调,任何学习都要注意知识和运用知识解决问题的思维方式两个方面,并且最好在知识的内部以及思维方式内部也要整理出来一个体系用更少的基本单元组合出来更多的高级单元,同时通过具体例子来体会思维方式。今天组会,有个学生出了一个很有意思的错误,很深刻。总结和分享在这里。

学生要处理一批文本数据,统计出来一些中间结果,然后对这些统计出来的数据做数值分析。文本保存在两个文件中,需要把两个文件的信息连通起来才能把中间结果统计好。第一个文件中每一行存储了一个ID的所有信息。另一个文件中存储了这个ID和另一个ID相连。这个学生的处理方式是把两个文件先统一成一个文件:每次在第二个文件中看到一个ID就把第一个文件的信息复制在这里,整体还排成了一个长方形的表格。接着,问我说:这个合起来的文件太大了,没法放到内存中做计算,R语言没法处理。能不能换个大内存的服务器来算。

我们先讨论了技术上的问题,例如,如果真的要处理一个很大的文件,可以如何通过逐行读文件来处理。

不过,真正的问题在于,为什么要把两个文件用这种方式合起来?经过不断地追问,发现,这个学生希望把它们合成一个方形数据表是因为这样就可以像excel表格一样来统计出来中间结果了。例如,计算一行或者一列的总计之类的。

所以,真正的问题在于这个学生尽管在用编程语言,但是,处理问题的方式,思维方式,还是excel型的:排成一个长方形的数据表,做行或者列的统计。

这就是上来就用高级工具,而不是底层工具,对思维的限制:用惯了一个工具,思考,就会受这个工具的限制——我只想这个工具一样思考只面对这个工具能够面对的问题。这个时候,如果这个工具是一个高级工具而不是适应性强自己能够控制(拆分、重组、解决新问题)的低级工具,就会对思维方式产生极大的误导。

这就是为什么学习编程和学习使用计算器是不一样的,像超级功能计算器一样用MATLAB和像编程语言一样使用MATLAB是不一样的原因。这也是用低级工具latex来写作和用高级word来写作不同的原因:word写作可以写到哪里算哪里,所见即所得;latex写作必须先做整体设计,分好章节、段落、主要意思,然后来丰富细节。这也是为什么要学一学C语言层次的低级语言,然后,再来靠学习更加高级的语言:明白计算机是在硬盘(或者其他数据流)、内存、CPU之间获取和存储数据并且在中间在CPU上完成你给计算机的计算指令。这样至少将来有可能在遇到内存问题的时候,可以考虑在硬盘、内存或者CPU的层次帮助一下你的电脑。

所以,在能够从被高级工具限制的思维之中走出来之前,不推荐使用word, ppt, excel, MATLAB,而用更加低级的东西来代替,自己来拆分重组来面对新的问题。人不能被工具限制思维,而必须是你自己的思考有了思想有了,接着合适的工具来发挥作用!

这其实就是科学和系统科学,不断地细分,然后依靠细分之后的单元的联系组合起来来解决新问题。做了这个不断细分之后,通过组合起来学会学科大图景(典型思维方式、典型分析方法、和世界和其他学科的关系),并且学习一样东西就要学会这样东西背后的典型思维方式(就好像学习计算机编程的目标之一就是要学到面向过程的编程,就是像计算机一样思考每一步都知道怎么办,而不是学会运用这个程序提供的计算功能),才能真正具有提出和解决新问题的能力。

学习和使用什么东西,怎么学习和使用的,真的会促进或者阻碍我们思想和思维的发展。

Excel->R 这个转变不仅仅是工具,而是思维方式。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180907B1OLBN00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券