之所以用“万法归一”的标题是脑海里搜索到最贴合最近想高度概括的一个思考,这是我长达一个多月工作时长超过12小时后积累出来的思考,谈不上思考的有多么深多么准,只想输出分享与此。万法归一是借用道家的说法,当然并没有能力在这参禅悟道。道家里面我们最熟悉的无非是老子的《道德经》中一句“一生二,二生三,三生万物……”,就用“三生万物,万法归一”开始我的分享。
绕了这么大圈子,并没有故弄玄虚,是引发我们的思考,不要局限于认为“道理我都懂,那又怎样”。下面就从工作中提炼我的心得体会,简明扼要就一点——归纳演绎。
归纳演绎
说得高大上是归纳演绎,说得通俗点是伸缩自如。对于做人,既能弯得起腰又能抬得起头,可谓能屈能伸;对于做事,既能拿得起又能放得下,可谓圆润通达。这儿不谈做人做事,只是不禁表达世间万物,大道至简,道理是相通的。如我的工作每天和计算机和程序打交道,一有空就看技术性文章博客(并不是自己多么勤奋,是环境所致由外向内倒逼着学习)慢慢地积累点滴思考,关于计算机的思维,表达自己不成熟但深切的感悟。归纳演绎放在计算机当中发挥的作用无所不在,比如分区磁盘比如文件夹的功能比如浏览器比如搜索引擎等等,想了一想,如何不用写一行代码来表述清楚我想表达的东西,就按照一贯的作风分3点表达。结合计算机思维和工作中的学习体会分三点:指令、API、模块化。
指令
指令对于我们经常玩电脑的人来说并不陌生,敲一下键盘或点击鼠标就是一个指令,告诉了电脑要执行什么指令,通知了电脑我们要做什么,当电脑反应反馈给我们东西了,就相当于完成了一次通信。所以无论现在的电脑设备多么智能,都脱离不了指令,再深挖追溯指令,可以挖到计算机的二进制(我也只能挖到这里了)0和1的无限组合,由此演变出8进制、10进制和16进制等等。
指令的思想性太重要了,相当于军队里面的军令,封建社会皇帝的圣旨一般。在计算机里处处是指令,比如享有世界之窗荣誉称号的浏览器,从你输入浏览URL地址开始,告诉了计算机要去域名解析、DNS查询、IP寻址、网络下载、内容渲染……一系列操作井然有序进行到底,直到呈现出来你想要浏览的页面。所以不得不佩服谷歌Google,界面非常简洁大方,整整一个界面就放一个logo和一个搜索栏,而这个搜索栏的背后确是无穷无尽的信息、数不胜数的网站页面,这就是把所有无数小指令万法归一到一个搜索栏。所以联想到做产品、做事与做人,产品功能再多也要做到自然流畅的体验,三岁小孩不用教也能学得会,这是产品的终极体验;做事情亦如此,对别人许下的承诺,也要想尽办法兑现;做人也具有产品的属性,具有品牌的思维,靠谱是一个人的宝贵品质,专业是一个人的定海神针。
API
API,是程序员里最熟悉不过的东西,这是除了家人之外最亲的词汇,中文意思是应用程序接口。为什么我要单独拿出来讲呢?没有丝毫犹豫过,因为和我们的生活紧密相关。比如我们家用电器的插头与插座比如我们电脑设备的各种对外暴露的接口(USB、HDMI、雷电等)比如我们的U盘……因此,我想大胆概括一下,凡是现代化的设备需要连接协作的都可以归纳于接口化。API,是我在工作中抽象概括的一个总结,虽然我并不是直接做应用程序接口,但是工作中敲的每一行代码都和API有关,大家也许听过“面向对象编程”,实质上是API化编程(斗胆戏谑我的独创词汇),你看浏览器有各种API(范式定义),对于用户看得见的是打开标签栏、粘贴内容复制内容等等,对于程序员来说输入console出很多Windows对象属性,实则可以理解为API,包括编程语言的使用规范使用规则,所谓的用法即为API,遵循它的规范用法编程实质上就是API化操作,更不用说我们经常使用的框架和使用文档。
不谈专业知识,我是拿来主义实用主义,所有学到的东西杂糅在一起,希望可以发酵酿出又香又甜的酒,让自己沉浸其中醉生梦死一般乐在其中。
那么,API又是如何让我浮想联翩的呢?应用于人应用于生活其他场景,我们面对公众讲话或者准备一次演讲就是一次API输出,意思是说你分享你总结的经验传递你的信息知识,完成了一次传输,形成了有逻辑有条理的东西,而这可以类比于API化了;与之呼应还有输入的接口,比如我每天一早醒来学习听得到音频看技术性文章,就在给自己的大脑“充电”,所以充电就需要清空大脑让大脑准备好接口等待一大波知识来袭,所以早上输入或输出极其有效率。类似的例子可以发挥想象,计算机的思维很很伟大,它是高智商人群(像图灵、冯洛伊曼)高度精简出来智慧,我们可以从中学到很多思维概念,并应用于实际生活中。
模块化
说实话要讲清楚什么是模块化,心里根本没有底。虽然我的工作中无时不刻在用,但是真要讲的通俗易懂不容易,可以说自己专业度不够。就像每个人都有五脏六腑,真要去说清楚五脏六腑,想必也很难。我尝试着把我思考到的一面理一理写一写。
先不讲程序的模块化,先来理解什么是模块化,比如每年一度的春晚这一盛大的节目,它是由几部分构成,嘉宾观众舞台主持和各个表演项目,而构成春晚的这几部分就可以理解成各个模块,大家通力协作各自分工完成属于自己的那一部分,然后按照时间线串联起来,最终呈现我们看到的春晚。好,假设大家理解了模块化,在计算机里模块化无所不在无所不用其极,就拿键盘鼠标显示器来说,我们不用管他们的内部实现原理,会用即可;我们不会去关注键盘鼠标设计多么精妙多么出巧,只会关注使用体验;我们不会关注舞台和表演节目背后的故事,只会在乎视觉听觉传达和感官体验。而编程中的模块化更是多得无法想象,衡量程序员的编程能力重要指标就是能不能编写高质量具备健壮性的模块化代码。
不得不承认模块化在工作中表现淋漓尽致,利用模块化的思维可以去网上下载需要的模块,不用再造轮子,可谓前人栽树后人乘凉,所以至始至终称自己码农是事实,不生产代码,只是代码的搬运工。回到主题,模块化往大的说可以形成项目工程,往小的说可以更细更颗粒化形成组件,这就是工作中时常体会到过的模块化可变大与可变小无限组合的奇妙之处。
计算机太神奇了,计算机的思维也太精妙了。后续还会在工作中体会到更多,比如边界与极限,大数据下的算法和智能,分布式数据库与共识……这就是从计算机演绎可以发散思维学习很多东西,也是行业里经常说的,变化太快了,快学不动了!
小结
以上啰里啰嗦谈了自己的浅见,对于计算机的思维还有很多,到重点不在于多,重点在于应用,把计算机思维迁移复用于实际生活当中,为了是更好地理解生活世道为了形成自己的理解范畴或者精准说是做人做事的低层模型。所以,回到主题上,要论“万法归一”从源头上就是回归于自身的成长。
文章一开头引用“一生二,二生三,三生万物……”那么一从何来?道德经里面说“道生一”,所以一来自于道,但对于道的理解我们不谈天道人道自然道的广义含义,从狭义上理解为自身悟道;再来思考万法归一,是归纳总结,那么一归何处呢?又该怎么演绎?哈哈,思考是无穷无尽的,所以好好体会一句“当你在凝视着深渊,深渊也在凝视着你”。