我脸上被软件开发刻了几个字

4 月 13 号,在路上,听着别人的微课,忽然想起这个话题:从事软件开发工作在哪些方面影响了我的生活。

稍一回想,不由感慨万千,赶紧记录下来。根据我个人的经验,软件开发这种工作会在下面三个方面影响你的生活:

  1. 习惯
  2. 思维
  3. 气质

习惯

其实做开发有很多习惯,会被你不自觉地复用在生活中。

  • 编号从零开始

你看看下面这个图:

注意到什么异常没?我在为录制的课程撰写 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 等。在内倾这点上,和我类似了。

然后开发工作,因为和机器打交道比较多,在一定程度上会加强内倾特质,让人变得拘谨。

  • 形象中透出技术的味道

我在驾校学开车,等待的过程中和人闲聊,有个小伙伴就问我,“你是搞技术的吧。”

我女儿上小学,我去参加学校的活动,莫名地会对某些家长有种亲近感,后来一聊,你猜怎么着?他也是做开发的。然后他会说我一看就是搞软件的。

我不由想起水浒传中的林冲、杨志等人脸上的金印,可能,软件开发工作也在我脸上刻了几个字哇。

这让我相信,你做过的事情,都会以某种形式化入你的形象中。你去找一个县长的头像,找一个程序员的头像,并排放在一起,一看就知道哪个是程序员。不信你试试。



欢迎在文后留言,说说你的工作对你生活的影响~

时间: 2025-01-31 06:47:37

我脸上被软件开发刻了几个字的相关文章

CSDN日报20170419 ——《我脸上被软件开发刻了几个字》

[程序人生]我脸上被软件开发刻了几个字 作者:安晓辉 4 月 13 号,在路上,听着别人的微课,忽然想起这个话题:从事软件开发工作在哪些方面影响了我的生活. 稍一回想,不由感慨万千,赶紧记录下来.根据我个人的经验,软件开发这种工作会在下面三个方面影响你的生活. [Web 前端]vue - cli & webpack & arcgis API For JS 的天坑之路 作者:realDE 最近参加esri比赛,但是又想趁机接触前端最新的一些框架和技术,所以,毅然决然的踏上了这个天坑之路.我现

敏捷软件开发VS传统软件工程

敏捷软件开发:又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新兴软件开发方法,是一种应对快速变化的需求的一种软件开发能力. 与传统软件工程相比,它们的具体名称.理念.过程.术语都不尽相同,相对于"非敏捷",更强调程序员团队与业务专家之间的紧密协作.面对面的沟通(认为比书面的文档更有效).频繁交付新的软件版本.紧凑而自我组织型的团队.能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中"人"的作用. 本文将介绍敏捷软件开发的历史背景与发展,

软件开发用户源代码保护需求

软件开发研发企业的需求: 随着企业信息化发展的日益增长,软件行业厂商之间的竞争也愈加白热化,加上国内对知识产权的不够重视.山寨模仿产品的横行.保护源代码.保证企业的核心竞争力,成为众多软件研发企业的第一要务.那么企业应该如何保证源代码的安全呢?企业该如何选择一款合适自己的加密软件呢?     需求概要分析 通常,企业中存在如下状况: 1.内部人员可以把涉密文件通过U盘等移动存储设备从电脑中拷出带走: 2.内部人员可以把自带笔记本电脑接入公司网络,然后把涉密文件拷出带走: 3.内部人员可以通过互联

敏捷软件开发:原则、模式与实践——第2章 极限编程概述

第2章 极限编程概述 作为开发人员,我们应该记住,XP并非唯一选择.--Pete McBreen,软件技术专家 在第1章中,我们概述了有关敏捷软件开发方法方面的内容,但它没有确切地告诉我们去做些什么:其中给出了一些泛泛的陈述和目标,却没有给出实际的指导方法.本章要改变这种状况. 2.1  极限编程实践 2.1.1  完整团队 我们希望客户.管理者和开发人员紧密地工作在一起,以便于彼此知晓对方所面临的问题,并共同去解决这些问题.谁是客户?XP团队中的客户是指定义产品的特性并排列这些特性优先级的人或

源代码加密软件,提供了哪些利于软件开发的功能?

源代码加密软件为软件开发工程师提供了哪些加密功能以保证其安全,高效的完成公司企业交付的开发任务.现有大部份源代码加密软件都是以透明加密为主的,而透明加密产品由于对文件类型的绑定,容易导致诸多调试问题,并不是开发软件企业的最优选择,理论上加密软件加密功能与产品开发效率是冲突的,而源代码加密软件所提供的各功能是在综合软件开发企业所面临多种安全威胁的前提下,以效率为优先,整合多种技术,为软件开发企业提供的安全系统,下列为源代码加密软件功能列表. 1)  源代码加密软件系统采用世界上先进的驱动内核级纵深

行业洞察:旅游APP软件开发未来发展走向

早在遥远的古代,在交通不便捷之时,古人们即使是木车,瘦马也挡不住他们那颗游历名川大山的心,更别说到了经济飞速发展的现代,交通便捷,钱包越来越鼓,人们对旅游的需求直线上升,旅游软件也应运而生,大有你方唱罢我登场之势,下面,小编就带领大家分析一下,旅游APP软件开发的发展趋势又有哪些呢? 第一.旅游APP软件品种更丰富 除了机票.酒店或者打包套餐商品,休闲度假.亲子教育.周末出行将会继续占领旅游的半壁江山 ,大家对旅游的追求也变成了到此一游,拍拍地标为荣,变成了以体验为主,更在乎出游中的吃喝玩乐.

结构化方法和面向对象方法在软件开发中的对比

学习过C语言和JAVA的同学们一定清楚,这两种语言代表了两种不同的开发方式,即以C语言为代表的结构化开发方法和JAVA代表的面向对象的开发方法.由于二者在程序结构上有着很大的区别,因此,在软件开发领域中,根据自己的需求来选择合理的开发方式就显得尤为重要. 开发软件通常有三个层次: 1.满足用户需求 2.可维护性,即可修改性,让软件能随着用户需求的变更而容易改变 3.可重用性(在其它软件中,能尽量重用该软件的模块) 通过对软件的这三个主要层次的分析,我们就能在实际开发中确定我们的选择. 结构化方法

敏捷软件开发简述

前言:由于我读了邹欣老师的<构建之法:现代软件工程(第二版)>,因此对敏捷软件开发有了比较大的兴趣.于是我在网上找了一些论文,比如Requirements Engineering and Agile Software Development.A decade of agile methodologies: Towards explaining agile software development.在读了这些论文之后,对敏捷软件开发有了大致的了解.这篇博文主要是简单介绍敏捷软件开发,重点集中在主

全新的跨平台app软件开发工具——Lae软件开发平台

Lae是一款运行于windows的界面开发工具,具有所见即所得.开发跨平台.UI布局自由.机制简单.维护容易等诸多优点,可以开发同时运行在windows.Linux.MacOX.iOS.Android等系统平台的软件,windows桌面工具软件.管理软件.游戏界面;  linux系统桌面工具软件.管理软件.游戏界面; Mac OSX系统上桌面工具软件.管理软件.游戏界面:安卓系统的APP软件.2D游戏:iOS系统上的APP软件.2D游戏. 感兴趣的朋友请搜索知乎上的Lae软件开发平台介绍,或加入