两种行为模式与三根轴

絮絮叨叨的开场

上一篇需求的视角,我们介绍了一种可以让人回归场景的的小工具,避免在实现功能时的需求理解问题。但是在我们很好地理解了需求之后,在实现过程中,就会一帆风顺么?也不是的。

我们工作久了,就会发现有些人资质很好,有些人资质就很差。你会发现,有些人会考虑的比较有深度,有些人就不行。到底什么是深度呢?我不太能理解这个词,于是我继续观察。从外在看呢,我们会发现他们的行为表现有差别。我称之为工人的行为模式和工程师的行为模式。这两种行为模式在面对问题的时候差别尤为明显。

一个工人行为模式的人,遇到问题的时候,采取的方式就是直接把做过的行为再做一遍,期望能有所不同。比如装个环境,遇到问题了,就把执行的命令再执行一遍。

而工程师行为模式的人,遇到问题的时候,却什么都不着急做,往往是盯着出错的屏幕若有所思,片刻之后,突然说“哦,我知道了”,然后一下就把问题解决了,仿佛是在脑子里Debug。

我们打开看呢,你会发现他们的思考问题的维度是有差别的。我一直找不到一个好的模型来解释这种思维模式的差别,直到我在一本叫《创新算法》的书里面看到有个三轴分析的模型,可以较好的描述这个维度差别:

三轴分析

按照三轴分析的模型,我们思考一个机器,要从三个维度去思考,一是操作,就是人是怎么操作这个机器的;一是系统,就是这个系统都有哪些组件,这些组件都有什么关系;三就是因果,就是当人进行某种操作,到看到结果之间,一步步是怎么发生的,哪些组件起了作用,出了问题又是哪些组件没搭配对或者那个组件出故障了,或者操作本身是不是做错了。简单讲因果轴就是前两轴的动态关系。

计算机虽然精密,它也是一台机器,这上面跑的软件也没有任何的魔法,一样是适用于三轴分析的。

所谓像工人行为模式的人,其实就是指关注操作轴的知识,而对下面的系统轴和因果轴关心较少造成的。我曾经在面试的时候,让一个人讲他用到的一个框架的原理,结果他在白板上一顿乱画,我始终没看到组件有哪些,互相又是怎么配合的,最后发现,他是按照界面在描述那个框架的(很多框架都提供跟eclipse集成的GUI操作界面),他说的全都是在哪界面上填什么信息,然后就会有什么效果。只能用操作轴的信息来描述一款框架,这种行为也就是我们所谓的没有深度。

这样的例子在行业里比比皆是,我们在培训中就曾经碰到过一件哭笑不得的事情,比如在进行一些代码操练的工作坊的时候,让学员使用intellij来进行编程,一些有多年工作经验的学员写的代码出了编译错误,说这一定是你这个IDE的问题,我用eclipse这么写就没问题。当面用eclipse打开,依然是编译错误,就没话说了。还有远程就不会断点调试、配了log4j就抱怨e.printStackTrace()不打印了等等奇葩的例子就不展开聊了(但不写出来吐槽一下是真难受,我的一个朋友经常吐槽,为什么这个行业里这么多“业余”的人。说实话,我也是有点绝望的……),其实这些都是一个问题,就是只关注操作轴,关注的久了,所有的技能都只用操作轴的信息来编码,换个界面就武功全废,也是很多人觉得编程只能是青春饭的原因。

而工程师行为模式的人,一定不会只关注操作轴维度的信息,他们会打开系统,看到系统内部构造和系统到底是怎么运转的。由于对这些东西非常了解了,才能盯着屏幕上的日志,在脑子里模拟代码的运行,推理自己可能哪里出错了。

要想做到这一点,其实并没有什么魔法。我们用到的绝大多数框架、库、工具都是开源软件。开源软件都是很慷慨的把自己的机制、代码都放在了网上,完全没有信息壁垒。如果我们在读完入门案例后,还去读读Manual或Reference(有余力也可以读读源代码)我们不但会对系统的组件和系统的运转机制有更深入的了解,而且会在操作层面多一些新技能,当我们施展出来,还会有人惊呼“还有这种操作”。唯一需要做的就是认认真真读文档,照着文档写几个demo,编程初学者的话,把API doc都读读是最好的。然而这一件简单的事,竟然都成了少有人走的路。

所以对于开发人员来说,想要成为一名合格的工程师,只关注操作轴肯定是不行的,在学习的过程中要刻意的逼迫自己去关注系统轴和因果轴。不过这确实不是一件容易的事,不同于普通机器,软件的复杂度要高得多。咱们软件业有一句话说,没有什么问题是不能通过添加一个中间层来解决的(如果有就再添加一层),所以学习过程中会不断的发现,自己被一个抽象层挡住了。需要重新用三轴分析工具分析一下,抽象层的下面又是什么。学无止境,无尽的三轴。

本次讲的刻意练习其实是最简单的:阅读,写demo,这些都是优秀程序员的基本功。也是最难的一个,因为实在是太枯燥了,以刻苦的学习击穿认知的次元壁从来也是少数人才能达成的成就,但其实你仔细去观察那些少数人的时候,你会发现他们有些小技巧,能把苦变得有趣,这里就介绍几个小技巧。

Demo法

写一些小demo其实非常有助于建立起从操作到系统的映射,并可以通过下载开源代码及单步调试来理清中间到底发生了什么。由于demo都很小,很容易快速的建立收获感,你不会觉得做了很久没有任何收获,从而放弃。也不需要很大块的时间来做,导致每次学习都死于起手式。

我的前同事李鹏是此中高手,他有一篇文章《当我拿到一个前后端实现todolist的学习任务时,我应该怎么做?》中,把任务分解(我们下一篇就讲这个)和demo法结合在一起,大家感兴趣可以看看。受他影响,我也做了一个小github组织,来放自己的demo:https://github.com/jtong-demos 可惜最近几个月太忙就没时间更新了,不过也看出了另外一个优点,等我忙过这阵,想要捡起来的时候,这些demo会比网上的什么资料都快。

输出

为了深入到另外两个轴去,阅读当然很重要,但是对于大多数人来说枯燥是最大的退却原因。所以我在之前带学生的时候,都要求他们输出,写博客。有输出,枯燥感就会下降一些。但是写文章本身也很累,而且很容易变成抄书,所以我们后来又找到了另外一个工具:概念图。

概念图工具的概念图

可以用节点来表达组件,用线上的关系来表达组件之间的关系,非常适合表达系统和因果轴,可以更轻量的进行输出(具体怎么用,简书上一搜一大堆,我就不写了)。其实我之前介绍的C4,就可以看作是一种特殊的概念图。

小节

如前所述,我们学习软件相关的知识,可以借用三轴分析法,从操作、系统和因果三个角度扩展自己的认知。只有这样才能成为专业人士,刻意的阅读、输出、写demo,这简单的几件事,能做到的人却很稀有,这也是为什么优秀的工程师非常稀有的缘故,我们公司的数据,一个业务分析师或者QA,只要聪明,进入公司,差不多1年就可以比较独当一面,而开发人员,大都需要三年。大多数人都喜欢走易走的路,而难走的路反而是人少的捷径,坚持做好这几个动作,就是提升自己的捷径。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,923评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,154评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,775评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,960评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,976评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,972评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,893评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,709评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,159评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,400评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,552评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,265评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,876评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,528评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,701评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,552评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,451评论 2 352

推荐阅读更多精彩内容

  • 第4次进攻3400,依然存在很大难度。今日上指最终站在3413点上,深创板指也紧随其后。不过应该高兴的是大盘中涨停...
    自言者阅读 141评论 0 0
  • 1 我们高一在同一所学校,而且在同一个班。 第一次,见你的时候,就感觉:你是一个很特别的女孩。 你常说自己是女汉子...
    小胖红阅读 296评论 4 8
  • 1.回家第一晚洗完澡准备睡觉,爸爸走进我房间问我盖一张棉被会不会冷,我说还好,然后他过了一阵又抱着一张厚毛毯进来,...
    啊喵星人阅读 205评论 0 2
  • 目前发现比较好用的工具:Apktool:可以将res资源文件(drawable、mipmap、layout、val...
    贝贝beibei96阅读 710评论 0 0