美文网首页
像机器一样思考读书笔记

像机器一样思考读书笔记

作者: robtomb_ | 来源:发表于2017-08-13 17:24 被阅读0次

    像机器一样思考
    (突然有点感触,怎么学一门语言?要先学好英语啊!略心塞)

    (一)宏观基础

    刚看到这篇的时候,我也思考了一下「 什么样的人适合作程序员 」,私以为有强迫症的人会是一个优秀的程序员。这篇文章上说:像机器一样思考的人。

    那么问题来了。机器是什么?谁定义了机器的思考?
    我们所有的计算机,都是「 冯诺依曼体系 」。
    就是下面这张图(截张图来用)


    说话的方式简单一点就是

    你可以看到,我们好像只需要考虑三分地方输入 处理 输出,归结起来就两种数据 | 数据结构 指令 | 处理过程
    (再插一句话,由于最近在看《算法导论》,想起我刚刚学过的《数据结构》,数据结构果然只是数据结构,算法却不只算法)

    这篇文章中举了一个例子,来说明这种模型是如何使用。在这,借张图来用。


    讲真,这样的思考方式真是简单粗暴又有效,体会过后,它带给我如下感受:

    • 明确输入类型 | 我要输入的是什么
    • 明确输出类型 | 要输出什么
    • 思维清晰,下笔如有神啊🙂

    其实,我受益最深的是,明确输入类型。最起码,在我以前的编程过程中一直这样不明不白的过来着 :(

    那为什么我们在思考的时候却不会这样的明确,至少我在编程的时候是不会这样的?
    maybe,有以下一点原因:

    • 太想要快点做出来
    • 编程好难,所以一定要先做它
    • 好像没必要呢???!!!

    编程其实是最简单的事,而其中流程是最重要的,我们往往认为编程好难啊!这种做法就好像分离了语言和流程,我们可以用任何语言来实现,但是流程是不会变的。

    在「 题外话-2 」中,它提到了当数据复杂到一定程度时,数据和过程的界限会模糊,这就是函数式编程。看来要好好了解函数式编程了🙂

    (二)数据的细节

    看完这章,我觉得果然是我们创造了计算机,人类世界的抽象 -> 对于物体的表达

    对于数据结构的设计,总感觉要尽量对应现实世界和简单化。

    还有一句话,在题外话1里:「 在表现层你最后使用的数据的结构,尽量跟你的表现层的结构一致,这样出bug的几率最低 」,想想以前编程,太多BUG出现在这个环节,百分百出BUG啊,真是心塞。

    总之,(一)是个模型,(二)就是针对数据的细节,讲真数据结构的设计确实很重要,而且决定流程的简单化。

    (三)穷尽就是力量

    「 穷尽 」你知道这个单词的意思么?我还真去百度了hhhh
    《穷尽》是一个汉语词汇,基本意思是竭尽,极尽;终止,止境。(想不明白,为什么要带书名号)

    看完这章,我就笑了,被以前的自己蠢哭了。

    以前的姿势是这样的:
    正在写一个函数,发现少了个参数,赶紧在函数头添加,而且有时候,发现添加了好多参数,并且不知道有的参数从哪里出来。。。

    看完这章后,正确姿势应该是这样:?
    先分析问题,心中大致分作几个步骤 → 列出输入输出 → 在反思一下修改 → 写下一个函数直到写完之后

    这篇中主要介绍了「 穷尽 」,就是在列出输入 | 输出时要「 穷尽 」,把所有用到的数据,都要写出来,并且要明确来源和输出要明确目的。

    感想:

    • 由于人的劣根行,讨厌麻烦,刚开始的时候,可能会讨厌,并且放弃,但其实这关注到你是否「 思维清晰 」。所以要严以律己,穷尽所有输入和输出。
    • 关于分步,初学者越小越好。

    (四)一图抵千言

    「 一图抵千言 」就是把上面的思维模式以图的方式呈现了,最大的好处感觉是:易于交流,方便你我。它很清晰的呈现了我们要写多少个函数,最主要的是函数与函数之间的关系,比如输入和接收
    注意几点内容:

    • 画图时函数的顺序
    • 输入输出箭头指向的内容
    其他

    思维方式的转换,按照测试的角度切分task(其实,我是这样理解的:从结果的角度)→
    从一个函数实现的视角转为一个函数调用的视角。
    可能我对TDD用法不深刻,体会不到这句话

     跳出盒子外来看盒子的视角。我们在画前面的图的时候,实际上是在我们要实现的这个程序内在看,完全没有使用者的视角,也就是所谓的在盒子内,。当我们站在测试的视角看的时候,我们就跳出了盒子外,他更容易让我们发现哪里可能设计上有问题,比如设计出的接口是不是好用。
    

    相关文章

      网友评论

          本文标题:像机器一样思考读书笔记

          本文链接:https://www.haomeiwen.com/subject/ewlerxtx.html