谈谈系统性学习

差不多上了一个月的班了,算是转了一点行,因为做的工作和之前的不一样。作为建模师,除了理论基础扎实之外,编程能力是必不可少的。本人误打误撞,大学实习的时候因为技术总管的介绍,接触了python,因为大学学过一点编程语言,所以很容易上手。工作两年,庆幸自己没有把python这门语言放下,在空余的时间都会学习,或多或少为自己有勇气换工作提供了条件,但是因为都是自学的,所有的知识点都是零散的,而且在大脑中建立不了关联,没有形成知识晶体,在运用上效率会比较低。有时真的有一种“书到用时方恨少,话到嘴边没地儿找,上网百度都学过,只好感叹,为什么想不起来呢!”

这就是今天要写的主题——知识的储存和知识提取。学过的知识要熟练的运用,除了经常使用使用之外,更重要的是要形成知识晶体。因为脑子里的形成多少知识晶体,才是知识提取能力的关键。什么意思?

      

我们知道,铅笔芯的石墨和钻石的都是由碳原子组成了,但是,硬度上,他们相差很远,可以说是千万个级别上的。为什么会这样,因为组成石墨的碳原子和组成钻石的碳原子的排列方式不同,也就是它们的结构不同。钻石的碳原子结构是非常稳定的,这也就是钻石为什么是自然界最硬的物质的原因。

 知识也一样,知识点就像无数个碳原子,只有把它们形成稳定的架构,产生“知识晶体”,从零散的变成晶体,就不易磨损。斯坦洛维奇称为“crystallized intelligence”。比如,沙子和混凝土,沙子是松散的,混凝土是坚固的,再比如满天的星星实在太多了记不住,人们就把他们连起来,用星座去识别。

学编程语言也是一样,不经过系统性的学习,平时只是东学一点,西凑一块,做项目时才去找知识点,效率实在是慢,这时候你不得不付出额外的东西去完成工作——加班。所以,作为一个自学两年python的我,太多的知识了,但是就是没用构建一个系统的晶体,为了建立一个系统,不惜花血本(作为这个年纪的我,这笔钱实在有点大)重新听课,为的就是建立python知识系统。

    

 到今天,上了两个星期的课了,确实很有用,虽然知识点都知道,这些知识点就像我拥有的砖头,需要一个建筑师把我构建一座大厦,而老师,正好充当了这个角色。

上周一上班的时候,为了满足其他部门的需求,我到数据库提数据,做清洗和分析,当初自己就想到了一个for循环,结果,结果加上调错的时候,这段代码整整运行了1个小时。那天晚上回去上课,学到了过滤器和函数,于是第二天重新修改代码,101秒,就把结果跑出来了!

天呐,这都是以前知道的知识啊,为什么会这样!!!!

于是,趁着周末,我赶紧复习这两周的内容,把学过的知识点结构化的做笔记。以后要用到相关内容,只要在脑海想起这副图,我就知道应该用什么知识,提取的强度大大增加。

其实,像我这种笔记的,叫做树状结构的知识晶体。

MI计算认知科学家实验室主任Josh用计算机模拟了循环结构、星星结构、方块结构、链条结构等,最终用数学方法证明人类最佳的抽象知识结构是树形结构。

这种树形结构的底层逻辑其实就是结构化思考力。我们的大脑啊,一次性接收信息的量是有限的,它更偏爱有规律的信息。什么意思?

举个例子,思考这样一个问题:如何能将200毫升的水装进100毫升的杯子里。(其实这是用编程写需求经常遇到的情形,这组数据是这样,如何把它提取、清洗成其他部门需要的格式再交付出去呢?你会想到很多办法,但是,对于程序员,代码运行需要时间,代码越简洁,消耗的内存越少,运行的速度就越高,你的效率就越快。所以,你想到的办法是不是最高效的呢?)

回到杯子的问题,同样,按照经验来分析,你有很多答案,但不一定保证想清,想全。

其实,这个问题的本质,在于水的体积是杯子的两倍。

如果你这样想,200毫升装不进100毫升杯子的原因,无外乎在于三个方面:

1.杯子太小装不下。  2.水是液态的,会流动。 3.外部因素环境,地球有重力。

当从这三个方面找答案的时候,实际就找到了解决这个问题的结构:水、杯子和外部环境。而且,你会发现你能找到很多解决方案。具体的我就不在这里列举了。

这就是结构化思维。有结构、有规律的整理,将大大提高思考效率。

同样,对于建模时,写代码的时候,结构化思维是提高效率的必备技能,这一切前提,你的脑海得构建编程语言的知识晶体。

如果你也经常感到“书到用时方恨少,话到嘴边没地儿找,别人一说都看过。只好感叹,你讲得真好”的时候,说明你是懂的,只是你还没有把它们形成知识晶体,才会让你感到“想不起来”的窘境。所以,系统性的整理一下吧!当然,多用多练也是增强提取记忆的必不可少的途径。

----------------------------------------------此处是分割线----------------------------------------

复习一下这两周学到的python基础知识点。

python底层的数据类型有三种,数值类型,序列类型和散列类型。

1.数值类型有4种:整型(int),浮点型(float),布尔类型(bool)和复数类型(complex)

    2.序列类型有5种:列表(list),tuple(元组),string(字符串),bytes(二进制)和bytearrys,其中,后两者了解即可,最重要的是列表和字符串。掌握列表和字符串的增删改查的全部用法及区别。

    3.散列类型2种:集合(set)和字典(dict)

    函数是编程语言经常用到的,几乎无处不用。熟练其参数的分类和类型,以及相关的内置函数。

    1.匿名函数(lambda)不是内置函数(以前一直搞错),它是简便函数的定义过程,为了处理简单的函数。

      2.常用的内置函数有dir() len() sum() max() min() sorted() reversed()

      3.高级的内置函数需要掌握四个:filter() map() enumerate()和zip(),注意map和filter的区别,是返回的结果不一样。

      4.区分局部变量(nonlocal)和全局变量(global),以及相关数据类型起的作用:

          

      • 函数外部不能访问函数内部变量

      • 函数内部可以访问函数外部的变量

      • 对于不可变类型变量,函数内部不能修改函数外部变量;对于可变类型变量,内部函数可以修改函数外部变量

      5.熟练掌握,闭包、递归、回调函数。

      6.控制流程很简单,不列在结构里面(for....in.....    ,   while,     if....else)

      • 1
        点赞
      • 0
        收藏
        觉得还不错? 一键收藏
      • 打赏
        打赏
      • 0
        评论
      评论
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包

      打赏作者

      整得咔咔响

      你的鼓励将是我创作的最大动力

      ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
      扫码支付:¥1
      获取中
      扫码支付

      您的余额不足,请更换扫码支付或充值

      打赏作者

      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

      余额充值