技术是最简单的,最简单的也是技术。有很多事情只有我们经历了明白,有些事情我们可以从别人身上学到,有些则永远学不到。
动画片里的人们以一种预想的方式生活着,这个世界被设定为这样那样。或许你看到的天空是另外一个大陆,或者你看到的这个世界是一个是某个神打造的——连我们的历史也是预期的。我们以某种身份活着,而世界是复杂的,远远比我们想象中复杂。
最简单的是赚钱
在《魁拔妖侠传》开始的时候,对于主人公母亲的一个教诲是:
最简单的是赚钱
无论主人公想去做什么,都会补上一句赚钱是最简单的,不要去想别的。对于这个故事有一个简单的简介在百科上
在龙国,按照传统,魁拔复活之年至魁拔被消灭之日的全国军权应由王族移交给卡拉肖克家族执掌,这对卡拉肖克家族来说是复兴的机会,而对王族和另外三大家族而言却意味着退出统治舞台,于是,在魁拔纪年1661年,距离魁拔复活还有3年时,一系列你死我活的家族争斗就此展开。
主人公是卡拉肖克家族,而他的母亲是一个深思熟虑的人。对于这一族的人来说,一直是以提高技艺为第一要务。其他的东西是其次的,而以代替别人来参加比赛似乎就是一种合理的赚钱方式。不仅可以提高技艺,还可以好好地生活下来。
而在某些情况下,似乎很符合主人公对其母亲的印象。家里很穷,所以需要很多钱。故事的结尾是: 他的母亲是之前受人敬仰的公主。
对于我们来说,我们的故事是没有结尾的。谁说,唯心主义就一定不好?
技术是最简单的
过去一直在想的是提高技术,而提高技术本身而成为了一件有意思的事。
没有太多的工作经验,过去一直试想的是:
当我们技术足够好的话,我们可以很容易地从一个项目切换到另外一个项目。
前提是,这两个项目不在同样的一个领域里。而领域是一种很有趣的东西。
说说工作经验
假设我们在同一个项目里有一个新人和一个工作多年的人,在6个月后,这个新人基本上可以和这个工作多年的人有差不多一样的技术领域知识(ps:那些持续学习的人很难在短期被追赶上)。如同《重来》一书所说的:
一个具有6个月工作经验的应聘者和一个具有6年工作经验的应聘者相比,其差别小得令人吃惊。真正的差别来自于个人的努力程度、性格差异以及智力水平。
但是智力水平这东西真的存在么?
软件开发者最擅长的就是学习。
上面我们假设了一个前提是——最后两个人有差不多一样的技术领域知识。并不是因为这个工作多年的人不再学习了,而是在这个领域里已经没有足够的领域可以学习了。好好多是武侠小说中的瓶颈,需要有更好地机遇才能更上一层楼。我们假设多年人的经验是:
X语言入门
—> X语言应用实践
—> X语言高阶编程
—> X语言的科学与艺术
—> 编程之美
—> 编程之道
—> 编程之禅
—> 颈椎病康复指南
于是,我们说的是这个新人在半年内已经来到了编程之禅
。而工作多年的人已经在五年半以前已经到了,现在他们的差异就是: 颈椎病康复指南
。
大家的成长曲线都趋于平缓了,已经没有办法用技术来衡量人与人技术上的差异。之前有一篇文章说的是程序员差别的本质 想说的也就是,这时可以创造工具。当差异越来越小的时候,创造工具是一个好的学习方法。
于是,对于HR来说,他们就想去找那些富有技术热情的人。
小结
如果这样的两个人在技术上的差异已经不大,还有一些明显的差距是:
- 编程经验(如: 命名、设计、架构等等)
- 代码库熟悉度
- 领域知识(业务经验)
我们假设新人已经学够了的编程技术,也就是忽略这个差异,以及代码库熟悉度。剩下的就是——领域知识。
领域知识
所谓的领域知识也不过就是业务知识的一种转换,介于业务与技术。而我们都擅长学习,唯一不擅长的是:
跨领域的学习
这也就意味着我们需要再次的学习才能到这个领域里编程。DDD之所以流行的另外一个原因,或许在于此。
于是,我们需要不断地抽象出领域代码,分离出领域无关的代码
。
技术知识是通用的,而领域知识不是。
人际关系
人际关系是一种复杂的东西,相比于上面的领域知识来说。我们需要去处理和不同人之间的关系,无论是在项目上,还是在哪?但是这真的一点都不简单。
技术才是最简单的。
其他
技术就那点东西,软件工程经过一代又一代人地发展,当前似乎又处在一个新的瓶颈。就如当时,敏捷出来一样。但是领域知识不只一点点,项目管理也不止一点点。
我们能很好地处理技术问题,但是人际关系、项目管理呢?