首页 > 技术文章 > 做个真正贪婪又懒惰的开发者

xuanmanstein 2017-10-07 18:27 原文

懒人的意思是:外在行动爱折腾,骨子里的目的却懒到极致。

  今天用docker-compose才发现,重启flask,之前自己居然都是不断“在编辑器和控制台来回点鼠标”+按“↑”和“enter”解决的,太“勤快”了(非褒义)!

年纪越大越懒了,懒人才能发现不爽的改进点,才能推动技术进步啊-_-!

1练就“节约看起来不起眼的时间”的能耐

正经说,每一点小小的改进,只要能稍微节约
“在不同位置点鼠标 +按几个键”的时间,虽然每次只节约几秒钟,但每天、每年下来就能节约很可观的时间了!

这么宝贵的时间可以拿来多睡会觉,想想就很带感啊!

做人一定不能太傻勤快了,因为,往往意味着在时间使用上太大方了(挥霍自己的时间)。

 所以,这样往往很穷。

 

要想没有明天那样,珍惜自己生命的每1秒(而不是每1天)。

庄家比散户更在乎每一分钱,冠军比普通人更计较“小分”的争夺,“细节”的拼杀。

普通人觉得是细节、不重要的东西,可能才是高手眼里非常重要的东西。

一定不能在稀缺的东西上“傻大方,不在乎”。这种心态是比没钱的状态更可怕的东西,很可能是没钱的原因。

要先学会庄家的思维方式,才有可能最终变成和庄家一样有钱。

“有钱”是结果,“吝啬”的思维方式才是原因。

“有时间,高效率”是结果,“懒惰”的思维方式才是原因。

自己的观念和行为,要调整到自己觉得宝贵的东西,在别人看起来无所谓就浪费掉;而别人觉得宝贵的东西,自己可以挥金如土舍弃掉。

不是刻意追求这样的效果,而是聚焦思考很多问题+不断亲身实践之后的必然结果。

 

2用软件给时间值钱的人省时间

开发软件也是一样。认真去做业务用例组织建模,系统用例,用例规约,交互步骤。要有老大的思维,懒人的思维,阿布的思维,才能发现改进点,改进别人习以为常的工作流,偷点懒。

软件作为服务业,如果能替涉众省点时间,就是体现软件价值的地方。

想靠写软件赚钱最简单的思路,就是给最不缺钱,但是最缺时间(时间最值钱)的人省点时间,然后找他收钱分账。

软件系统的升级,就是倾听、理解领域专家脑中的领域知识,再变成代码,显式表达出来,封装进系统;

开发人员的修炼,就是不断学习配环境、开发、测试、部署各种技巧步骤,再变成脚本,显式表达出来,固化进自己的组件库;

 

所谓的封装和显示表达,其实本质上就是“用各种书面语进行翻译”的工作。

倾听/审题能力+表达能力 以及更基础的抽象思维(分析)+具象思维(综合)才是真正需要的能力。这是更像是语文的“分析中心思想”的能力,而不是数学计算的能力。

而写程序的特殊性在于:并不是追求文艺或者武艺那样,把具体步骤烧进自己脑子和身体,长在自己身上;而是追求把知识封装固化在外部脚本。

自己脑子里要刻意忘掉具体步骤,留下各种目的,知道为了得到什么样的效果,可以调用什么,在哪能查到,就OK了。

脑子要能尽量倒空,虚心,才能留出空间去聆听接纳完全陌生的非软件方面的领域知识,和软件方面最新的技术。

不能实心,自满。

脑子应该留下什么,系统里应该封装什么?应该是比较空、虚的框架,不要实。

这两天在某女装编程群(请无视群名-_-!)里看到的,很有启发

【群主】小小三锅 (234221044) 21:45:52
三十辐共一毂,当其无,有车之用也。埏埴以为器,当其无,有器之用也。凿户牖以为室,当其无,有室之用也。故有之以为利,无之以为用。

大多数语言的基本组成都差不多,基本数据类型、各种运算符、条件语句、关键字等等,这些都是“有”,是拿来使用的。

关键是如何把这些基本元素组合起来,让它们完成不同的功能,在这些“有”之间充斥着“无”,这些“无”才是真正可以应用的。

这就是有之以为利,无之以为用的意思

 自己的系统要想值钱,有价值,不能着眼于实现,而要扮演的角色。

要吃透甲方的领域知识,业务流程,

要把甲方讲不出来的,字背后的知识,真正有用的不可言说的东西,抽取出来,固化显示表达出来。封装在系统里,卖出去,系统就值钱了。

“鸳鸯绣了从头看,莫把金针度于人”

鸳鸯是甲方的领域知识,线和金针是开发者掌握的实的东西,而使用金针的套路,各种取舍权衡的考虑,才是看不见的“无”的东西。

是开发者需要倾听、思考、提炼出来的,甲方讲不出来的东西,是自己要真正吃透掌握,先提炼出来,再封装进系统里实现的真正有价值的东西。

 

自己脑子里要留下接口规约和控制类。掌权的人是接口和控制类,有价值的程序也是这样。

只有接口稳定,只封装接口和控制流,程序才能轻便起来。

把稳定的目的性概念抽象出来,把具体的实现细节甩出去,内聚/微服务化。

  对于开发出来的程序,要勤反思:自己封装实现的,到底是什么?是重要的东西,还是把不重要的东西当成宝贝了?

一个思路是:学习掌握一定的基础设施工具的技能,但不能沉迷于成为基础设施工具开发者。这样就成了做有的开发者。要去做无的开发者。

从这个角度,人人都应该有产品经理的思维方式。

业务重于代码。算法和数据都应该调用外部的,不自己去写,也不要把这些当成宝贝,藏起来。

 

3 前期投入值得吗?

唯一的心里障碍在这里:为了每次省几秒,结果花了好几天甚至好几星期学新的脚本、语言、工具,值得吗?万一“成本-收益”背不会来呢?

最简单的答案:

stay hungry, stay foolish。

功成不息;坚守痴心。

用到 hungry 的时候,针对的「成功」,也就是「hungry for success」。

虚心叫做「humble」、叫做「be a good listener」、叫做「be open to new ideas」。而 fool,根本不是「虚心的人」,fool 是「笨蛋」的意思。

乔布斯自己的话:

我一直试图做的事情——不断前进。否则,就如迪伦所说,如果你不忙着求生,你就在忙着求死 (If you're not busy being born, you're busy dying)。

 

也就是说,不要像过于聪明的智叟一样,算盘打那么精。要像愚公。

但是,总有很多智叟,类似这样的问题永远有人在问一样:

充电电池贵好几倍,万一充不了那么多次,还不如买一次性电池;

太阳能发电那么贵,也省不了几度电,万一半途中坏了,还不如不用;

为了省几小时时间,就花几千亿修高铁,不值

……

 

其实这有点类似《反脆弱》里塔勒布提出的那个“持续小亏+突然大赚”VS“持续小赚+突然大亏”

 

计算机技能的学习、健身、养生,买房,都类似基础设施的投资,正相反:

初期尽量“主动有意识多亏点”;然后后面慢慢受益,甚至是无意识,意外受益


大多数人,也算不过这个账。觉得这样不合算,就不干了。

买房比较特殊,要分类讨论:

如果买了房导致每天时间小亏,那还不如不买;

如果当成趸交租金,对抗通胀,那就值得买;

如果既每天小亏时间,但是又对抗通胀,那就要看每天亏的时间能不能用于提高技能,是不是比房价更能有效对抗通胀。不同人答案必然不同。

 

回到技术问题:不能一开始觉得投入太大,就不投,忍受每天的时间小亏。

作为准备吃技术饭的人,要像个愚公,要有武曲“一心以事业宫紫微为重,其他地方不动心,短虑”的能耐。

短虑,就是foolish的一部分。

发明算命的古人显然是智叟,看不起武曲的短虑,台湾人陈雪涛在《紫微明镜》内外篇里也把武曲说成是“为了事业宫的紫微为重,为了任务而卖命,缺乏大志,不顾亲人感受,财帛是廉贞,只是赚到了精神享受”。——请问,乔布斯难道不正是这样的人吗?

我偏要反过来说:武曲很容易在工作中进入心流状态,也就是所谓的“以事业宫紫微为重,只想着手里的工作,短虑到把其他都忘了”。

此外,贬低喜欢变化、不安分的杀破狼。

——这些都TM是糟粕,纯的。

在这个时代做开发者,就是要有武曲的傻,和贪狼的贪。

 

推荐阅读