小言_互联网的博客

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

260人阅读  评论(0)

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

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

作者 | liuyubobobo

来源 | 是不是很酷

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

但是,我错了。

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

是的,一样的作业。

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

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

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


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

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

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

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

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

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

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


为什么讲这个故事?

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

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

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

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

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

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

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

如此反复。

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


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

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

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

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

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

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

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

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

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

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

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

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

大家加油!

有热门推荐👇

1.程序员

2.【GitHub

3.【算法

4.【数据结构


转载:https://blog.csdn.net/kexuanxiu1163/article/details/100914465
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场