4 月 13 号,在路上,听着别人的微课,忽然想起这个话题:从事软件开发工作在哪些方面影响了我的生活。
稍一回想,不由感慨万千,赶紧记录下来。根据我个人的经验,软件开发这种工作会在下面三个方面影响你的生活:
- 习惯
- 思维
- 气质
习惯
其实做开发有很多习惯,会被你不自觉地复用在生活中。
- 编号从零开始
你看看下面这个图:
注意到什么异常没?我在为录制的课程撰写 PPT 时,文件编号是从 0 开始的!这都是因为开发工作中经常和数组打交道,而数组下标从 0 开始。
相信你也有很多做开发形成的习惯,欢迎在文后留言,分享给大家。要真的是你自己的习惯哦,网上找的那些黑程序员的段子不算。
- 说话时省略背景信息
程序员之间交流时,往往会省略一些背景信息,这是因为我们有很多黑话或者行话,比如你说这块应该使用单例而不是全局变量,别人就知道你在说什么,你无需告诉他所谓单例是设计模式中的单例模式。
再比如你会对小伙伴说,“你看下那个崩溃的 Bug ”,你往往不会告诉他到哪里去看、 Bug 的编号是什么。对吗?你预设他知道应该到 jira 或者 Bugzilla 上去看,还预设他能找到你说的“那个崩溃的 Bug ”。
这种习惯会影响我们在生活中和别人沟通。我有时和媳妇说话,就觉得她应该知道我在说什么,可她往往不明所以,然后我就会忽然生气,说我明明告诉你了你怎么不知道,然后呢,她会说你什么时候给我说过这个……再然后呢,我只好道歉了。
- 否定性的话语较多
“你这块代码逻辑不对!”
“你这代码怎么能这么写!”
“你的代码一运行就崩溃。”
“这么简单的功能,三行代码的事儿,你居然搞了一个星期!”
“算算算,让我来!”
这些话熟悉吗?
这都是我们在日常开发过程中用得很频繁的话,它们也会换个模样出现在我们的生活中。但这些偏否定的话,往往会让和我们说话的人感到沮丧或者愤怒,觉得我们看不起他们。
我媳妇有一次问我手 Q 怎么清缓存,我就说,“哎呀这么简单的事儿都不会”(我自己也不会……),然后就炸了锅了,你懂的。
- 爱用符号列表
这个好奇怪,好像确实是我做了程序员后才养成的习惯……有序列表、无序列表……凡事都要列个1、2、3……
- 随口就说“马上来”
嘿嘿,测试让我看 Bug ,同事找我寻求帮助,别人邀请我参加会议……我常常会说,“马上来”……你会这样吗?
然后呢,过了几分钟,或者更久,再一次被叫,又会应承一句“马上来”……然后……
其实当我说“马上来”时,真实的意思是:“我忙着,等我手上这事儿告一段落就来。”但往往我们一忙,就把刚才随口应承的事儿给忘了。
我把这个习惯完美地迁移到了家里。比如我正用电脑写文章,老婆说“你看下水壶,别溢出喽”,我就会说“马上来”,然后,过了一会儿,只好在尖叫声中过去赔不是、清理现场。再比如孩子会叫“爸爸你来陪我玩儿会儿”,我随口就会说“马上来”,但往往是孩子因为无聊的等待失去了玩儿的心情了我还没出现……
- 热衷给建议或者答案
别人问我个问题,或者咨询个什么事儿,我总是很乐意给个建议或者答案,哪怕别人并不需要。
比如有时朋友会聊他们遇到的事情,我往往会说“你可以这样”、“你可以那样”、“你试过那么做没”、“你用这个工具肯定好”,然后呢,他们会说“我那么试了,没用”、“那个工具我试过,不好用”、“你说的我都试过,没什么效果”……
好尴尬啊。
思维
开发工作会严重影响甚至改变我们的思维,有这么几种思维方式,影响了我的生活。
- 工程思维
我会觉得什么都应该是实用的,逻辑化的。这就像墨子,连别人听个音乐他都要问:听音乐有什么用?房子可以住,这是房子的用处,可是听音乐有什么用?
我也有这种倾向。
有这种倾向就会导致一个人变得刻板、无趣。好吧,气质那部分我会继续聊这个。
- 逻辑化
我老觉得事情必须有个前因后果,不弄明白因果就觉得心里不踏实。
觉得凡事都要讲逻辑,万般不能接受违反逻辑的事情。可是,生活中,没逻辑的事情可真是太多了哇。
逻辑化还有一个小伙伴,理想化。
逻辑化和理想化叠加,可能的后果就是:我们好像不太适应这个人际关系复杂的社会嗳……
- 锤子思维
拿一把锤子,看见什么都以为是钉子,非要拿你的锤子敲敲。
这是作为开发者的我习惯性的思维方式。我会觉得,工程思维可以解决一切问题,凡事都可以通过软件工程来解决,或者,事情总可以通过分解来适应软件解决问题的方式。
也即:我拥有了一种解决方案,就开始为这种方案寻找问题。
- 喜欢归因于特定事件
我的工作,有一大半时间在找 Bug ,解 Bug ,假如我还要做 20 年开发,那会有 15 年或者以上的时间和 Bug 做无休无止的斗争。
我们找 Bug 时,最终的落脚点往往是某行代码、某个条件。即,我们绝大多数时间是通过定位到某个特定的原因来解决 Bug 。
这种事情做多了,我们就会形成一种思维:面前的问题一定是某个原因造成的,找到它,问题就解决了。
举个例子。
某猿晚上 11 点多下班,老婆从屋里锁上了门,不给开。某猿就会说,“老婆,别生气了,我下次不加班了。”他把老婆生气归因于他加班这件事了。但实际上呢,往往不是加班这件事让老婆生气了。所以,老婆还是不给开门。
某猿继续猜:“老婆,对不起,我应该提前给你说清楚加班的时间。”某猿充分运用了调试 Bug 时常用的排除法,要知道,在一个特定的范围内寻找东西,排除法非常有用啊。可是老婆还是不开门,因为其实她并不是因为这个生气的。
某猿继续猜:“老婆,对不起,我不该老是说 20 分钟就回,我应该……”老婆还是不开门,因为她也不是因为这个生气。
某猿继续猜:“老婆,对不起,我不该说谎,说自己已经在路上了,实在是手上那个 Bug 没法放下……”老婆还是不开门,因为她也不是因为这个生气。
你知道,某猿的老婆,是因为什么生气吗?
- 应该化
我们开发软件的一般性过程是这样的:
输入代码 --> 编译 --> 运行 --> 预期结果
这是确定性的行为,你正确地进行了编码,结果不是预期的样子,那一定是哪里出了问题,那你肯定可以找到问题并解决之,最终让结果符合预期。
这种工作方式,最终会影响到我们的思维。让我们不喜欢波动性、不确定性,我们老是会想:这个事儿的结果应该是什么。并且不愿意接受结果出现偏差的情况。
但实际上,生活里充满波动和不确定性,只有拥抱它们,才有更多可能,也才更好玩。
气质
- 无趣
因为工程师思维的影响,我讲求逻辑,一板一眼,遇事总要从工程思维去分析,认为某件事必然有确定的结果和内在逻辑,这样的我,在别人眼里就显得比较无趣。
这也是别人对我的看法。虽然我并不这么认为,但却不能改变他们对我的看法。
- 拘谨
我 MBTI 测试结果是 INFP ,内倾,偏好精神生活,随和,安静,有时会情感用事。最重要的是,我比较拘谨,在人多嘈杂的环境会觉得不自在,社交活动会消耗我的能量,与人交往一段时间,我就需要独自一个人来恢复一下。
很多做开发的朋友,MBTI 测试结果都是 INFJ 、 INTJ 等。在内倾这点上,和我类似了。
然后开发工作,因为和机器打交道比较多,在一定程度上会加强内倾特质,让人变得拘谨。
- 形象中透出技术的味道
我在驾校学开车,等待的过程中和人闲聊,有个小伙伴就问我,“你是搞技术的吧。”
我女儿上小学,我去参加学校的活动,莫名地会对某些家长有种亲近感,后来一聊,你猜怎么着?他也是做开发的。然后他会说我一看就是搞软件的。
我不由想起水浒传中的林冲、杨志等人脸上的金印,可能,软件开发工作也在我脸上刻了几个字哇。
这让我相信,你做过的事情,都会以某种形式化入你的形象中。你去找一个县长的头像,找一个程序员的头像,并排放在一起,一看就知道哪个是程序员。不信你试试。
欢迎在文后留言,说说你的工作对你生活的影响~