简单 v.s. 基础
无论做平面设计还是做摄影创作,其基础都是一些比较粗浅的看似毫无用处的简单技能。例如画直线、拍挂在墙上的电视机,不一而足。
同样的现象还能在web的前端设计中看到。一堆类似小孩学绘画的标签,几个可以更改属性的css文件,完毕。
但神奇的是,就靠着这些简单而粗浅的概念,竟然可以做出让人惊叹的作品来。先不谈各种酷炫的网页界面就是由傻气的标签构成,就算是简单得像Windows系统自带的画板程序,也能够在绘画大师的使用下,创造出让人惊艳的绘画作品。至于摄影,很多优秀到让人赞不绝口的作品,也仅仅是依靠手机相机,而不是贵到让人傻眼的数码单反。
如果再配上PS后期,其作品的惊艳程度还能再上升一个等级。但同样让人惊奇的是,即便是PS老手,其使用的大部分功能,也就限于几个基本操作:图层上的转换组合、颜色基本属性的调整、以及简单的裁剪拼接。
那么,有了以上的观察后,我们是不是要得出诸如:基础很重要、简单的东西自有其韵味的陈词滥调呢?
不是,也是。
无疑,以上所举出的这些简单的东西“非常重要”。因为,无数的实践都在证明,掌握了它们之后,就像是嗖地跨过了一扇门,往后的技能便能飞速成长。但我想说的是,这个“重要性”并不是源自于它的“简单”或者“基本”,而是因为它们恰好是各自领域里,类似房屋的脊梁、建筑的基石一般的存在。
在数学的世界里,任何一个分支的基石,一定是其基本的定义和公理。再辅之以逻辑推理,便能够将一个数学分支给建立起来。仅仅学习过数学但却未做过数学研究的人,一般不会有意识地去关注这些基本的定义和公理,到底是如何被提出来的。通常只会一股脑地先接受定义和公理,然后就急匆匆地开始各种逻辑推理。
这样的想法,非常类似于我们学习绘画、设计、摄影和编写代码。我们基本上只会匆匆地快速开始学习如何画线、如何做出一个方块、又如何去构建一个图层或对象,却很少会花费时间去思考,为什么它们可以被当作这个领域的基础?
所谓基础,它一定要起到牵一发而动全身的杠杆作用。简单的事情千千万,为什么有些被当做是杂事、琐事,而有些却可以被当作是基石。其衡量标准不在于哪一个事情更为简单,而是哪一个更能起到杠杆作用。
例如,在PS中,“图层”的概念,无疑就比色彩的调试来得重要。因为色彩的调试,只是技艺的某个方面,它的影响范围是有限的。而图层的概念一旦被提出来,整个“设计”就带有了工程哲学的味道。
它很好地将每一个图形的复杂度控制在一个范围内,并且还能够让这些独立的个体单元做任意的组合(完全就是Unix的设计哲学啊)。通过它这样一个基础设施,既能创造出无限的组合,又能够精细地控制图形的复杂度,提高每一个个体单元的复用率,从而有可能让每一件作品、元素,彼此间产生复利的效果,能够让一种影响力建立在另一种影响力的基础上,成倍地放大。
同理可以考察前端技术的设计。例如CSS,在我看来,其最重要的技术,不在于它能够修改某个字体的大小、颜色,也不在于它能够为某个区域增加背景图片,而是它拥有“选择器(selector)”这样一个强大的工具。如同“图层”这个概念之于PS,有了selector,CSS去控制元素的方式便具备了构建大工程的属性。每一个选择器能够直观简介地控制一个区域的界面样式,但它们又能够通过child-parent、sibling等关系进行组合,从而让你可以大规模地去控制网页元素的样式效果。
又如手机的进化。在iPhone出现之前,一部更为“先进”的手机卖点,在于其是否比普通的手机多了某个功能。例如,Nokia的最新款可以录音,而之前的版本不行。或是Blackberry可以提供PDA记事本、拍照功能,而别的手机不行。
但自从iPhone提出了手机App生态这样的概念后,就一劳永逸地解决了所有功能性多寡的问题。其point不在于它提供了哪一种优秀的具体功能,而是提供了“提供功能”的功能!有了这样的概念后,整个手机开发的视野和创造前景一下子就被打开了。从此,在手机内,便拥有了“无限”的可能性。
那么,再回到文章最开始的那些案例。为什么那些诸如画直线、写标签可以作为各自领域的基础呢?其根源在于:它们都具备“提供各自领域的杠杆性功能”这一属性。或者反过来说,一个概念或者技能,要能够成为某个领域的基础,它就必须具备杠杆性的属性。只不过,之前提到的这些稀疏平常的概念,是在长期大量实践的筛选下,沉淀下来的东西。也即是通过“自然选择”的方式,挑选出的具备杠杆性的工具集。
如果要做数学研究或者工程设计,当然不能被动地等待自然选择。而是要主动出击,费心思考“应该如何提出一个概念、提出哪些概念”才能提高挈领地抓住所在领域的本质。
所以,不是说看到一个东西貌似简单就值得去学习。必须要有能力分辨:哪些简单的东西是具备杠杆属性和复利属性,能让你的学习可以系统地层层叠加,将每一次的投入作为下一次行动的基石,来做指数级的成长。
近期回顾
《网络概念与快递物流 | 墙与梯子》
《精湛技艺的祭品》
《向南的高速公路》
如果你喜欢我的文章或分享,请长按下面的二维码关注我的微信公众号,谢谢!
更多信息交流和观点分享,可加入知识星球:
VIP赞赏专区
简单 v.s. 基础的更多相关文章
- 【RL-TCPnet网络教程】第38章 TFTP简单文件传输基础知识
第38章 TFTP简单文件传输基础知识 本章节为大家讲解TFTP(Trivial File Transfer Protocol,简单文件传输协议)的基础知识,方便后面章节的实战操作. (本章 ...
- 安卓四大组件之Sevice组件的简单使用 --Android基础
1.本例实现了简单的Service(服务)的创建.启动和停止,点击“启动SERVICE”页面会显示“服务被创建”,接着是“服务被启动”.点击“停止SERVICE”页面提示“服务被停止”.太过基础,直接 ...
- git的简单理解及基础操作命令
前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制管理>这本书(偏理论,内容完善,很不错),针对所学 ...
- docker 简单介绍及基础命令运用
一.什么是docker? Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. 简单的来讲Docker实际上就是一个大型容器.容器是完全使用沙箱机制,相互之间不 ...
- spark集群的简单测试和基础命令的使用
写此篇文章之前,已经搭建好spark集群并测试成功: spark集群搭建文章链接:http://www.cnblogs.com/mmzs/p/8193707.html 一.启动环境 由于每次都要启动, ...
- 简单的TSQL基础编程格式,存储过程,视图
这里简单整理一下数据库简单的编程,变量定义,赋值,分支语句和循环(这里以Sqlserver),以及存储过程格式 首先是变量定义,赋值,分支语句 --======TSQL数据库基础编程,定义变量,赋值, ...
- ActiveMQ基础教程----简单介绍与基础使用
概述 ActiveMQ是由Apache出品的,一款最流行的,能力强劲的开源消息总线.ActiveMQ是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,它非常快速,支持多 ...
- 函数第一部分:经典的永远是简单的-Python基础前传(10)
(一)前言 对于零基础学习Python的朋友,或者转行做数据分析的朋友,跟jacky交流最多的问题就是Python网络爬虫学习问题,比如说要爬取美团,或者说爬取携程等等,在爬取的过程中,这些朋友总是会 ...
- JQ的简单使用(基础)——————JQ
JQ基础--JQ的简单使用 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /&g ...
随机推荐
- VS code 代码格式整理的配置
{ "workbench.iconTheme": "material-icon-theme", "vetur.validation.template& ...
- node.js的Promise库-bluebird示例
前两天公司一哥们写了一段node.js代码发给我,后面特意提了一句“写的不太优雅”.我知道,他意思是回调嵌套回调,因为当时比较急也就没有再纠结.然而内心中总记得要解决这个问题.解决node.js的回调 ...
- Win10下windows mobile设备中心连接不上的方法无法启动
微软Win10自动更细补丁后windows mobile设备中心就无法启动了 需要重新启动相关的服务并授予 本机登录用户 权限 1.点击屏幕左下角“开始”图标,点击“运行”,在弹出的输入框中输入“se ...
- FastDFS数据存储
1. 数据存储 在fdfs传一份文件时,通常会返回下面的一串字符,这包含了该文件在服务器端一些存储信息 M00/00/00/wKg4C1tFmTWAFPKBAADdeFFxlXA240.png 下面解 ...
- log4j.properties配置与将异常输出到Log日志文件实例
将异常输出到 log日志文件 实际项目中的使用: <dependencies> <dependency> <groupId>org.slf4j</groupI ...
- 20172306 2018-2019-2 《Java程序设计与数据结构》第七周学习总结
20172306 2018-2019-2 <Java程序设计与数据结构>第七周学习总结 教材学习内容总结 概述 二叉查找树是一种含有附加属性的二叉树,即其左孩子小于父结点,而父结点又小于或 ...
- AX_ClassTemplate
static void main(Args args) { THK_InterfaceDataExtract THK_InterfaceDataExtract; FormRun formRun = a ...
- Navicat Premium 修改MySQL密码(忘记密码的情况下)
Navicat Premium 修改MySQL密码 1,首先,Navicat Premium还能够连接MySQL. 2,选择数据库,右键单击,选择“命令行模式...”,下图示例 3,打开命令行模式, ...
- 微信小程序开发之搞懂flex布局2——flex container
容器的概念,是用来包含其它容器(container)和项目(item). flex container——flex容器 A flexbox layout is defined using the fl ...
- 适用于Mac 的自动补丁管理软件
适用于Mac 的自动补丁管理软件 ManageEngine Desktop Central 的功能越来越神奇.系统管理员现在可以使用 Desktop Central 管理异构网络.即使是最复杂的任务, ...