• 学算法而领悟到的万能学习法


    点击蓝色“五分钟学算法”关注我哟

    加个“星标”,天天中午 12:15,一起学算法

    640?wx_fmt=jpeg

    作者 | liuyubobobo

    来源 | 是不是很酷

    我曾拜一个师傅学习设计,更准确的说,是页面设计。

    为什么要学习页面设计,因为我觉得页面设计很实用,也很简单。 说“简单”或许不准确,说“门槛低”应该更准确。

    毕竟,对于普通的开发者来说,做页面设计,其实主要是摆弄不同的文字或者图像元素,将他们进行合理的排列,调整方向,大小和布局; 决定字体和颜色,大概也就如此,并不需要真正的去“创造”什么。

    实际上,任何一个人,在生活中,近乎都一定会接触这样的设计。从写一份文档进行排版,到做 PPT;从为自己设计一张名片,到搭建个人网站。

    设计有没有什么理论,技巧和原则?有。

    对于程序员朋友,我强烈推荐一本书,叫《给大家看的设计书》。这本书的英文名字其实更准确,叫《The Non-Designer's Design Book》,即《给非设计师看的设计书》,里面介绍了很多极其基本的设计原则。现在已经是第四版了。

    640?wx_fmt=jpeg

    这本书我在拜师前就翻了两遍了。还是觉得对设计不得要领。总以为,还有很多更深刻的理论知识我没有掌握,所以设计出的页面总不能让自己满意。

    师傅听说我看过这本书,告诉我,你已经不需要学习其他理论知识了。对于你的需求,这本只有 200 来页的小册子足够了。

    那么这个师傅还能怎么教我呢?

    他问我:你随便说一个你觉得好看的页面设计。

    那个时候,苹果的设计风格风靡全世界。我说:苹果官网的页面设计就很好看啊。

    师傅说,那好,给你留一个作业。你一定都记得苹果官网主页都有什么内容吧?回去,不要看苹果官网,按照自己的记忆和想象,把苹果官网的页面设计重复出来,下次带来。

    就这么简单的一个事情,让我明白了什么叫“我以为我知道得一清二楚的东西,但我其实完全不知道”。

    按理说,苹果官网我访问过那么多次;因为觉得它好看,还几次特意停留,长时间观察它的页面效果;甚至在浏览器的开发者模式下,看过其中的源码。

    但是,当我从零开始,要再次把这个页面的设计重复出来——注意,只是重复而已,没有任何创造——我却发现,我完全做不好。

    第二次,我拿着自己的“苹果主页设计”找到师傅,师傅只是打开苹果官网,和我的设计一点一点对照,对于其中的区别,讲了讲而已。其实,所有的理论我都懂。

    相信很多同学了解这个师傅的“套路”了。大家一定觉得,他的第二次作业是,再问我一个我觉得好的页面,让我复制吧?至少当时我是这么觉得的。

    但是,我错了。

    师傅的第二次作业是:怎么样?是不是对苹果官网的设计理解更透彻了?那么好。回去,不要看苹果官网,按照自己的想象,把苹果官网的设计再重复一遍,下次带来。

    是的,一样的作业。

    这次,我能让自己满意吗?答案是不能。虽然有进步,但是,我发现,还是有很多细节,是被自己忽略的。

    我以为我知道得一清二楚的东西,但我其实完全不知道。

    再找师傅,师傅依然是,打开苹果官网,和我的设计一点一点对照,对于其中的区别,讲了讲而已。当然,这次,会触及很多更细节的内容,比如字体的选择,字号的选择,颜色的选择,等等等等。


    这个师傅没教过我几次课。但是,我从他身上学到了一个重要的学习设计的方法:看再多理论都没用,去设计就好了。

    只是,自己动手设计以后,还没有结束。还要用自己的作品,和别人的优秀设计再去做对比,仔细总结,自己的设计和优秀的设计,区别到底是什么。自己欠缺的到底是什么。

    这步总结至关重要,所有的进步,都在这步总结中。

    如果你认为有的人似乎没有那么努力,但却能取得不错的成绩,我认为关键就是这步总结做得是否到位了。

    在一年的时间里,如果我做了 100 个设计,你只做了 10 个设计,但是,每个设计都认真和大师级作品做对比,总结,积累。我认为,大概率的,你的进步会更明显,取得的成就也会更大。

    但不要以为这是什么捷径。实际上,认真和别人的设计做对比,总结,修改,很有可能比再设计 90 个稿子更熬人,累心。经历过的人都懂。

    你为了做这 10 个设计,付出的努力,很有可能远远超过我做 100 个设计付出的努力。


    为什么讲这个故事?

    因为,有很多同学都问我:老师,听你的课,觉得自己都懂,但是一写代码,就不会写了,怎么办?

    我的回答非常简单:硬着头皮去写。

    实在写不出来了,开始总结,自己为什么写不出来?是语法原因?概念没搞懂?还是哪里的逻辑没有理清楚?

    然后,再看一遍视频,特别是你没有理清楚的那部分,再仔细体会一下课程中是怎么完成这段逻辑的。

    然后,关上视频,再尝试自己去写。

    还写不出来?很正常。继续仔细总结,自己为什么仍然写不出来。当然,你也有可能写出有 bug 的代码,那就仔细去调试。看看 bug 在哪里?关键是总结:为什么自己觉得已经理解的逻辑,落实到代码上,却写出了 bug?是不是某一个变量的语义,或者初值,或者某些边界,其实是自己没有在意的地方?甚至,其实,自己以为自己理解了,但实际并没有理解?

    然后再打开课程视频的代码,比较,总结。

    如此反复。

    说实话,看一遍视频,却写不出代码,这太正常了。要是看一遍就会了才不正常。那样的话,算法也太简单了一点,也就不会有那么多同学因为算法感到头疼了。


    这个方法只适用于学习设计和算法吗?

    当然不是。这个方法在我看来,是万能学习法,可以应用在一切领域的学习中。

    说白了,不断地重复,不断地总结。在不知不觉中,我们就进步了。

    有的同学可能会说,不断重复,怎么能激发创造力,做出创新呢?

    所有的创新,都根基于对基础的深刻理解,而不是信马由缰的异想天开。只是,在大多数时候,我们只能看见创新者的创新,却看不见他们基础扎实的那一面。

    我们看到毕加索的《梦》,觉得这个好简单,我也能画。

    640?wx_fmt=png

    但是,我们看不到,毕加索自小就有着扎实的美术功底。

    比如,毕加索 13 岁的油画《老渔夫》

    640?wx_fmt=jpeg

    毕加索 14 岁的油画《艺术家的母亲》

    640?wx_fmt=jpeg

    毕加索 15 岁的油画《科学与慈善》

    640?wx_fmt=jpeg

    很多人只看到毕加索的这只牛,觉得好简单,我也能画:

    640?wx_fmt=jpeg

    却忽视了,这只牛,是从一头完整的牛,不断做减法,得到的艺术抽象的结果。

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    大家加油!

    640?

    有热门推荐?

    1.【程序员】

    2.【GitHub】

    3.【算法】

    4.【数据结构】

  • 相关阅读:
    JPG bufffer转Mat
    cv:Mat MFC上显示 BitMatToWnd
    opencv 版本修改
    2个多边形的关系判断和相交面积计算
    截取图像 opencv
    SQL Server 存储过程的分页方案比拼
    XP系统下数据库文件夹的权限设置
    关于23种设计模式的有趣见解
    一些编程的好习惯
    sql server 2000的数据库还原
  • 原文地址:https://www.cnblogs.com/csnd/p/16675210.html
Copyright © 2020-2023  润新知