做加法容易做减法难,程序员的我深有同感

新闻
从小到大的教育和成长环境中,我们一直都在争取和追求着更多的东西,所以每当我们不得已要放弃已经拥有的东西时候会感到难受,当做是一种损失。

[[410889]]

本文转载自微信公众号「BAT的乌托邦」,作者YourBatman。转载本文请联系BAT的乌托邦公众号。

前言

你好,我是A哥(YourBatman)。手残昨天又没标原创~

现在的你是不是感到时间不够:没时间看书、没时间学习、没时间写文章、没时间旅游、没时间运动、没时间约朋友吃饭、没时间看电影、没时间带孩子;但是明知道没时间,你却又不停地给自己做加法:办健身卡、买学习课程、报班等。如此往复,然后自己变得越来越焦虑。

我们大都如此,普通人只懂得加法,而不懂得减法的重要性。

最近看到一句话,来自弗吉尼亚大学的著名心理学家Benjamin Converse:“做加法的想法几乎立刻就能在脑海中浮现出来,但做减法却需要更多的认知努力”。这让我联想到那句“做加法容易做减法难”,一直在脑中回响,所以趁周末就聊上几句。

所属专栏

程序人生

相关下载

https://wangpan.yourbatman.cn 程序员专用网盘上线啦,开放注册送1G超小容量,帮你实践做减法

版本约定

程序员、产品经理...

正文

数学上来讲,加法和减法的难易程度可认为是一样的;但生活和工作中来看,做减法可比做加法难得多得多。

猎豹CEO傅盛曾说:让一个人有所成就的最好方式,就是不断做减法。记得有段时间,我非常忙,各种会议满天飞,效率很低。我当时就想,难道当年乔布斯比我更忙吗?归根到底还是我的管理方法不对。

为什么做加法容易做减法难?

从小到大的教育和成长环境中,我们一直都在争取和追求着更多的东西,所以每当我们不得已要放弃已经拥有的东西时候会感到难受,当做是一种损失。

你是否注意到当我们遇到问题的时候,自然而然的喜欢做加法。如:更多的人、更多的功能、更多的会议、更多的渠道、更多的表格、更多的产品、更多的代码...总之越多就感觉做得越好。在寻找某件事情的解决方案时,我们的大脑总是往寻找增加新东西(加法)方向思考而非删除点什么(减法),这似乎已是思维定式。殊不知,这只是一种认知偏好,和每个人从小到大的教育成长环境密切相关。

做加法似乎是顺应人性,而做减法是逆人性的。但只做顺人性的事(如贪婪、不劳而获、睡懒觉、占便宜...)往往难有成就,往往做逆人性的事情会收获更多,如:坚持早起、坚持学习、坚持健身。

[[410890]]

在当下资源、信息大爆炸的时代,当我们一直在给人生做加法的时候,往往会忽视掉最为关键的东西,同时还可能会迷失自我。人脑和CPU是一样一样的,处理的频率有上限,如果上下文过多需要切来切去,效率必然骤降,甚至导致出错、返工。殊不知:不用重来才叫快,能够积累才叫多。

生活上同样,就像给家里添置新东西,多大平米的房子最终都能被塞得满满当当,舍不得扔越堆越多反倒过来影响到生活质量。所以说做加法相对容易些,有点钱随意购买添置点物品很容易,但买回来后再扔掉就非常难了!

当然,在生活中,你得做了足够多的加法,累积了一定多的资源,才有资格做减法。

总之,正如心理学家所说的那样:做加法的想法几乎立刻就能在脑海中浮现出来,但做减法却需要更多的认知努力。

我们都在做加法

汪涵在节目里说,他的微信好友最多的时候有100多人,就让他很紧张了,随后他就将开始删微信,删了后感觉自己很轻松。

也许你会说那是汪涵,即便没有微信,还是会有人通过其它方式去找他,他也不会缺资源。下面举些日常例子,看有哪些能触碰到你!!!

  • 通讯录里的好友/号码越来越多,但能联系的越来越少,所以每次找起来就很困难
  • 关注的公众号越来越多,但从中提取到有用的知识似乎越来越少
  • 百度网盘里的文件越来越多,但看过的却越来越少
  • 家里经常购置新东西却很少扔旧物品,每次搬家时“想死”的心都有
  • 看到一篇好文章,想着先收藏再精读。现在回头看看自己的微信收藏夹、浏览器收藏夹、CSDN收藏夹是不是早已不堪重负
  • 新买一本书很容易,但新增一个知识点却很难。看看自己的书架是不是已压弯
  • 书越看越薄往往比越看越厚难得多得多
  • 用人单位招人扩张相对简单,但收缩却非常的困难
  •  ...

人的精力是有限的,当噪音太多时,就很难做到聚焦,从而容易偏移重点。这体现在工作、生活的方方面面,作为产品经理/程序员的我们当然更不例外,继续来聊聊。

产品经理的加法

当下有2个神级一样的产品:QQ和微信,恰巧它俩分别是加法和减法的典型代表。

你有多久没有登录QQ了?这是最新版QQ的样子(Mac PC版):

曾经的QQ也只有聊天功能,后来慢慢的做加法。比如这是通讯录的分组管理:

我们总是时不时就会发现QQ又出了新功能,窗口按钮越来越多、元素越来越丰富。从起初的每一次新奇感,到现在的无感甚至反感。

对于年龄较小的用户而言,因为没有体验过所以他们会常常用QQ觉得功能丰富、好玩,但对于年龄较大的用户而言,对于很多存在但几乎不使用的功能感到疲乏了,想要的更多是简洁的用户体验,所以会倾向于微信。

这是最新版微信的样子(Mac PC版):

对于个人而言,微信好友的数量是我们每个人在做的加法。可以翻阅看看自己的微信好友数现在是多少人了?细细想来,每次你翻阅朋友圈时,是不是被朋友圈占领的时间在变得越来越多。

诚然,微信已逐渐从强关系的好友互动,逐步演变为弱关系的资源积累,对于年轻人来讲, 你可能会觉得这种资源累积是无可避免且还十分重要的。但真的是这样吗?你发现微信并没提供通讯录分组功能,这是它的产品理念。“一年交十个朋友,不如十年交一位朋友”,你应该开始考虑是否需要克制。

其实,微信本身是一个做减法的成功案例。微信从2011年的诞生到现在2021年已有10年了,其本质的东西并没有变化多少,你会发现微信的每次发布新版本连RELEASE NOTES都没有。虽然张小龙说这并不是“克制”,而是在遵循一种好的设计原则让微信不去做一些影响设计美感的事情。

龙哥说每天都有5亿人说我们做得不好,每天还有1亿人想教我怎么样做产品,显然他要做的最重要的事就是克制,要做减法。

在产品的初始阶段都能实现1+1=2的价值输出,成熟后很可能只能做到1+1<2,这个时候可以尝试做减法,实现2 - 1 > 3的价值,这是一个需要很多认知、很难的过程!

大道至简,产品至简。一款成功的产品,在解决用户需求以外,应该要能保持至简。这个简不是简单的,而是简洁。前者是复杂度描述,而后者是一种思维,会贯穿于整个产品的设计理念,让用户能够保持良好的使用体验而收到不必要的干扰。很喜欢王自如的那句:真正的科技是让人感觉不到科技的存在。

程序员的加法

在程序员口中常能听见这样的话:这代码写得跟屎一样。行,给你展示一个真实的代码示例,前方高能请系好安全带:

一个业务处理方法足足截了近10张图,累死老夫了。

如果让你来挑这段代码的毛病,是不是觉得罄竹难书?然后,再猛的一回头看看自己写的代码,是不是和它又有几分相似?五十步笑百步了,哈哈,大写的尴尬!

用代码写软件就好比盖房子,虽然房子的样式多种多样,但很多基础原则却是一模一样的。越上层越具体多样,越底层越抽象归一就是这么个道理。

Java是门面向对象的高级语言,如果全程用面向过程的思维去编写,那它相较于PHP、Python这种脚本语言的优势将大打折扣。很多公司经历过x语言(PHP、Python等)到Java语言的迁移,如果只是照抄着一字一句的翻译,那么请问这么做的价值又有多大呢?

回到本文主题,造成这种屎山代码的原因是什么?有哪些力量?

  • 紧急的上线:这个功能很简单,怎么实现我不管”,横批“明天上线”
  • 管理者的短视:一个程序员水平不高往往只会影响某个局部,并且还可以通过培训提高。若管理层只有短期目标,那没救了
  • 程序员的水平:程序员的入门门槛不高,培训培训就能上岗,水平不一

每行代码都是程序员一行一行敲出来的,所以究其根因是程序员的水平不一,这个锅我们程序员必须背上。其实,对很多程序员而言,只会做加法:写补丁式代码,长期以往,屎山便逐渐形成。

对于一套现成的代码,打补丁(加代码)往往是容易的,但从200行减到100行却非常的难。人性的弱点致使总是倾向于选择容易的事为之,毕竟做减法的话需要有大量的思考和经验的运用,难度颇高也费脑细胞,如抽象思维、代码设计、面向对象、设计模式的运用。

如果说生活上做加法只会影响到自己一个/一家人,那作为程序员你的加法就很有可能影响到“很多人”,包括的你的同事、你的用户、还有你的后辈们。每个英俊潇洒的程序员都不希望写些被“后辈”疯狂责骂的代码,程序员可以多些对代码的敬畏之心,方可少为屎山贡献力量,这便是做减法的体现。

好的代码就是金山银山

相较于屎山代码,好的代码就是金山银山。当我们看到一些代码发展了十几/几十年还依旧保有非常高的活跃度的时,无不是因为有着金山银山的支持。比如JDK、Spring等。

好的代码习惯并非“天生”所得,需要后期的经验积累和不断的学习。Java的开源生态让其学习环境非常的好,我们总是能找到各个技术子领域的优秀项目代表,用以学习、模仿、成长。写程序在于先精后广,如果你连精通都不会,再宽的广度也只是没有核心竞争力的皮毛。

代码是程序员的武器。虽说公司并不会因为员工为“屎山”贡献了力量而遭到开除,但一个程序员的持久生命力体现在能否写得出金山银山的好代码,贡献长久价值。自我回忆回忆自己的心目中的“偶像”大佬、架构师,都能写得一手好代码,无出其右。

做减法:断舍离

当事情越来越多的时候,我们总想着通过增加时间来解决:延迟下班时间、每天早上5点起床、推掉旅游娱乐、减少健身的时间...但,看似增加出来的时间其实很快又能被填满。所以,在很多时候继续增加(时间)已是无益,做减法才能够解决。加法已经够多了,我们不妨学习做减法,学习断舍离。

断舍离是最近几年很火的一种方式,是从日本开始流行

  • 断:断绝想买回家但实际却并不需要的东西
  • 舍:舍弃家里那些泛滥的破烂
  • 离:脱离对物品的执念,处在游刃有余的自在空间

别以为“断舍离”的目标仅仅是指向物品的,但实际上它还指向了我们的内心。

“断舍离”的过程能让我们更加深入的了解事物的本质、了解自己的价值观、了解自己内心的渴望。对于程序员而言,就是善于删除代码,减少垃圾代码的输出,将自己放在一个较高的层级空间运筹帷幄。

总结

人生的旅程是一个由简到繁,再由繁到简的过程。

加法和减法看似一对相反的动作,但二者合理结合方能有最大效用。没有绝对的好与坏,QQ做加法并不是失败了,而是另外一种战略路线的体现,用马化腾的话讲:腾讯现在有两条腿走路更踏实了。

作为一枚程序员,既有写代码的工作,更有生活。年轻时我们一直在学习、积累、购买。当到了一定年纪后,我们更应该利用已有经验和认知,做减法来提高工作效率和生活品质,达成由内而外的升级。

今天,你做减法了吗?

 

责任编辑:武晓燕 来源: BAT的乌托邦
相关推荐

2013-12-02 11:11:04

腾讯微信

2012-11-01 11:31:56

程序员编程开发

2021-03-08 08:42:05

程序员技术体力劳动

2022-08-11 09:41:35

阿里程序员

2013-11-29 13:05:07

程序员工作

2020-11-08 14:40:37

程序员编程

2020-06-15 09:32:59

程序员大公司小公司

2011-07-05 11:08:05

程序员

2022-02-24 16:59:22

英特尔AMD半导体厂商

2019-10-16 11:51:31

程序员人生第一份工作跳槽那些事儿

2013-11-01 09:24:58

程序员API

2012-07-27 09:26:53

程序员

2020-12-21 08:24:21

程序员设备加班

2015-03-16 15:33:11

JavaScript程序员应备素质

2013-12-23 14:53:25

2013-08-13 10:14:29

程序员转行

2011-07-13 15:23:22

程序员

2009-03-26 09:22:05

2016-03-24 13:53:29

博士程序员

2013-11-15 09:03:43

程序员职业
点赞
收藏

51CTO技术栈公众号