1
时间回到我上小学的时期,大概是在三年级,有一件事让我记忆犹新。
那天我放学回家做数学作业,作业过程中遇到一道题,内容大概是这样:有一棵树,从这棵树上飞走了三只鸟,又飞走了四只鸟,问一共飞走几只鸟?明眼人一看就能得出答案是七只,答案简直太容易了,可就在那天,我也不知道脑子当时出了什么问题,因为读不懂这道题的逻辑,导致不知如何下手计算,自己的大脑进入了一个怪圈:“题目没有告诉我树上有几只鸟啊,万一没有鸟呢,岂不是没有办法飞走”!
思维定式到这里绕不出去,我就悲剧了,而且我性子又急,气到想要哭出来的节奏,后来由我姥爷对我耐心讲解个把小时,才让我有点开窍。如今回想起这件事,觉得当时自己这么蠢,都没有被留级,还真是幸运撒。不过话说回来,我确定当时进了钻牛角尖的怪圈。
2
出于对计算机底层原理的热爱(非装逼的热爱),我最近在学习c语言。关于c的强大我不在这里赘述了,如果您有兴趣了解,直接问度娘最好。
初学一门编程语言会涉及到数据类型、数据结构、流程控制、函数库知识等等,而c中的指针操作更是它的灵魂,当然也最有趣。问题来了,好多初学编程的同学指针学的不好,我也算一个。
指针操作与内存操作是一脉相承的,但是内存操作归咎于到计算机的底层原理,需要对计算机硬件有一定了解,而学好指针可以不对计算机内存知识有过深的了解。我非计算机科班出身,头脑中并没有一个完整的计算机系统体系,内存方面的知识更是不甚了解,但当我在思考指针操作时也会连带思考内存的运行原理,这很明显超出了我的知识能力范围,可是出于好奇(此时绝对是个贬义词),我又开始探索计算机的底层知识,结果闹的自己一头雾水。浪费时间不说,指针这块内容我依然处于懵懂的状态。
本来应该学习编程,却学起了计算机科学,耗费了不必要的精力且最终得不偿失。
后来我仔细分析了上述错误,突然发现自己是不是有点想太多了。如果暂时把握不了计算机底层知识,至少先把指针操作方面的语法格式给熟记下来,先写出代码,做到要事第一,等未来有时间和精力再回过头去思考和学习。
我把这种思想称为“确定边界”,也就是说我们要明白我们自身对知识的诉求点是什么?是只达到应用层还是更深入理论层,是只知道如何操作还是要做学术。
确定了边界,就代表我们确定了做事的度量标准,确定了我们的最终目的是什么。比如我现阶段学习c的目的是为了解结构化编程,而结构化编程只需要用c的简单语法写几句,声明几个函数出来就可以了,但是如果我需要通过c了解计算机系统,那么简单的编程很显然满足不了我的诉求,这下我要通过c再去学习算法和c的一些函数库。
说到底,确认边界的目的就是为了用最少的资源达到最好的结果和效果,这是一个经济学问题,本质上是个人时间资源的稀缺性。
说到这儿,文章已至结尾,希望各位观众能够理解我所表述的内容。
网友评论