从程序员的“劣根性”发散开去

2023-10-21 13:20

本文主要是介绍从程序员的“劣根性”发散开去,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

// Description: 原作于2016年3月4日。
/*
*  “劣根性”之所以加上引号是表明并非真想骂谁,而是对某些现象表达一点儿浅见。
*  然而这种看法又带着些许自黑的色彩,也是为了警醒自己。
*/

1240

从业十年来,我最反感从程序员嘴里听到的两句话分别是:

  • 编译器会去优化
    - 通常是在被人指出存在效率隐患的时候;
  • 我这儿试过没问题呀
    - 结果往往证明之前并没试过。

如果说前一句是为自己的拙劣找个伪专业借口的话,那么后一句就是赤裸裸地逃避责任了。不过我不得不承认这第二句话曾经有那么三五个月也是鄙人常说的——但每次说出口0.5秒之后我就会痛恨我自己,因为这实在太不专业了!

后来我花了很长的时间来思考这个问题:什么样的人才不会逃避责任?不对,在没有不可抗外力胁迫的情况下,其实每个人都会有逃避和不逃避的时候,所以更准确的方向是找到逃与不逃所对应的场景区别。

如果我没说错的话:只有当一件事情成为一个人心中必然的牵挂时,他才会主动承担自己在这件事情中扮演的角色所对应的责任。

看来从理论上解决逃避责任的问题很容易,只要对一件事情投入和付出,就会在乎,就不会逃避责任。那么拖延症代表各种情绪问了一句:“我凭啥对每件事情都投入和付出?”嗯,这个问题问得好。

的确,每天生活和工作中都会面临很多事情,不是每件事情都值得我们投入和付出。尤其在工作中,不仅很多事情并非自己直接参与,还有不少时候是因为求助者的粗心或懒惰,那么如果双方都把皮球踢来踢去就会进入死循环,然后谁也不服谁、谁也瞧不上谁,何必呢?这种时候总得有个人站出来终结这个问题吧,与其指望对方觉悟高,不如发扬“我不入地狱谁入地狱”的情操。

我不能总是痛恨我自己吧,所以后来我把那句话改成了“怎么重现的?我试试。”别说,效果还不错!一方面没有直接把责任揽到自己身上;另一方面也多了一次从不同视角看待同一事物的经验,这对于一个一直想升级成为产品经理的土鳖来说是很好的锻炼机会。问题解决以后,如果确实是我引起的,我并没有因为一开始的嘴硬而被鄙视;如果是对方造成的,他也会从中受到启发,同时我还收获了一份尊敬,情商也得以充值,多好?

差不多十年前,我在路边一位推自行车卖麻花的大叔那儿买了些麻花,找给我几块零钱,没数,只是收钱的时候感觉好像多了。走了两步总觉得不对,一数确实多了一块钱,我返回去问大叔:“麻花N块钱,你应该找我10-N块对吧?”大叔一脸的诚恳二话没说就拿出零钱准备给我添,我说:“不是不是,你多找了我一块钱。”大叔收钱时的表情和动作触动了我很多年,那种底层劳动人民的失误得以挽回时发自内心的感激,虽然只是区区的一块钱,但表情是真实到位的。大叔没那么多理论,他只是个单纯的不逃避责任的人,单纯得都不先考虑一下是不是自己的责任。

就在笔者刚开始唠叨的时候,一位朋友,准确地说应该是一位老板,发来测试对方是否已经把自己删了的微信,我顿时感觉很好笑,主要是当时脑子里首先出现的画面比较搞笑,不过还是回了个握手的表情。一位经营一家公司(好像是两家吧?),谈的都是上百万买卖的老板,夜里该他好好享受生活的时候却在那儿戚戚地看哪些人把自己删了,之不大气,实在让人忍俊不禁!(估计是因为我还没到谈上百万买卖的时候)我从不去测谁把我删了,反正删我的也都是不联系的。假使我要测,也会发句工作上的套话,如果有人问啥意思,就说发错了呗还能咋的,也不至于显得小里小气。不过我倒是偶尔会去看微博上那些曾经互粉的有谁取关了,然后我会把这些都清理掉,所以两三年前我就已经不再礼貌互粉了,没意思,通常这类人跑得最快。跑就跑吧,他还不捎带手把我移除粉丝,弄得好像我对他多么感兴趣似的。

话又说回来,清高也是程序员的劣根性之一。换个角度,清高没准儿也是好事儿。只要有意识地控制和驾驭清高,它会督促你不断保持进步,只有你真的有资格去清高的时候,你才不显得酸了吧唧。像我这种脱离不了低级趣味的人,也就不追求虚怀若谷的境界了。

罗里吧嗦的话就不啰嗦了。其实起因很简单,就是当我的项目采用某公司提供的数据服务时遇到问题,无论根据推测还是调试都可以确定是对方的错误,然而却有技术人员以“我这儿没问题,你代码有问题吧”为由来踢皮球。查询条件不变,你服务器轮着番儿地给正常数据和问题数据,你不根据我提供的数据和方式去调查一下,张嘴就说我代码有问题,“朱时茂,我演了十几年戏了,没见过你这么难伺候的主角!”出来混,情商很重要,很多话我憋在心里没骂,而是一步一步调试给他看,证明从我的角度能追溯到最接近问题源头的地方已经表明确实是他们服务器端有问题而不是我low得不会写代码。所以当对方嘴软的时候,我觉得有必要对那个曾经同样浮躁的我叨一叨这几年的得失,真不要以为自己处在一个火热的领域是因为自己多不得了,谦卑一点儿才能在这个行业走得更稳更远。

那句“编译器会去优化”我就不点评了,现在几乎听不到谁再说这样的话。假如将来有谁再拿这个当借口,我倒要向他请教请教各种编译器对同一代码分别是怎么优化的。

转载于:https://www.cnblogs.com/Autumoon/p/8550532.html

这篇关于从程序员的“劣根性”发散开去的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/254658

相关文章

LabVIEW程序员是怎样成长为大佬

成为一名LabVIEW编程领域的“大佬”需要时间、实践、学习和解决复杂问题的经验。尽管LabVIEW作为一种图形化编程语言在初期可能相对容易上手,但要真正成为精通者,需要在多个层面上深入理解。以下是LabVIEW程序员如何逐步成长为“大佬”的路径: 1. 打好基础 LabVIEW的大佬们通常在初期会打下非常坚实的基础,理解LabVIEW编程的核心概念,包括: 数据流编程模型:Lab

程序员必备心理学——心流

心理学之心流 前言一、“心流”是什么?二、心流的好处二、如何进入心流心流状态的四个阶段第一个阶段:挣扎第二个阶段:放松第三个阶段:心流第四个阶段:巩固 进入心流的技巧 总结题外话 前言 你是否常常感觉自己明明学习了一整天,但是就是感觉没有太多的收获。这个时候除了你的学习方向等问题之外,也可能是你的学习方法太低效了。作者本人就经常有这种情况,好在偶然间在b站刷到一个大佬的这个心

程序员都在使用的画图工具

大家好,我是袁庭新。 程序员都在使用的画图工具,你一定没用过这款画图工具吧!我教程中的架构图都是用它来画的。 比如我编写的RDB工作原理图就是用draw.io绘制的,如下图所示: 再例如Redis集群故障恢复原理图我也是通过draw.io工具绘制的,如下图所示: 是不是觉得draw.io绘制的图形特别简洁、美观。它的官网是: https://www.drawio.com dra

GitHub:代码是程序员沟通最直接的手段

如果不是 Andreessen horowitz 的投资,估计 GitHub 很难被福布斯、CNN、纽约时报等传统媒体注意到。普通大众之前不了解这个工具,是因为它距离记者的世界太远了——GitHub 是一个程序员所使用的托管项目的服务。 但在一些程序员眼里,它不仅是托管项目的地方,还是“开源”项目的大本营,而且是提高程序员“技术水平”和“技术品味”的地方,更是一个程序员社交的地方。

黑马程序员---银行业务调度系统

模拟实现银行业务调度系统逻辑 需求分析: 银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。 有三种对应类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、电话费之类业务的客户)。 异步随机生成各种类型的客户,生成各类型用户的概率比例为:         VIP客户 :普通客户 :快速客户 =  1:6:3。 客户办理业务所

黑马程序员---空中网面试题

空中网4k/5k月薪挑选大四实习生的线程题     两年前,我们一个大四的学员去应聘空中网的实习生职位,空中网只给他出了三道线程题,拿回家做两天后再去给经理讲解,如果前两题做好了给4k月薪,第三道题也做出来的话就给5k的月薪。这样的实习薪水和招聘要求,不需要有工作经验的限制,纯粹是技术功底的比拼和考核,而不像许多其他公司非要招两年工作经验的人,逼得那些刚毕业和未毕业的大学生不得不去撒谎,不得不去做

黑马程序员---线程并发库

软件包 java.util.concurrent 在并发编程中很常用的实用工具类。 请参见:            描述 接口摘要BlockingDeque<E>支持两个附加操作的 Queue,这两个操作是:获取元素时等待双端队列变为非空;存储元素时等待双端队列中的空间变得可用。BlockingQueue<E>支持两个附加操作的 Queue,这两个操作是:获取元素时等待队列变为非空,以及

黑马程序员---多线程

TraditionalTread 传统线程技术回顾 创建线程的两种方式: thread3中,同时创建了Thread的子类和Runnable,那么会优先执行Thread的子类,因为Runnable的代码被当做参数传到了Thread类里,Thread子类的run方法又覆盖了父类的方法,所以会执行Thread子类的代码。 package cn.itcast.heima;public class T

黑马程序员---代理

分析代理类的作用与原理及AOP的概念 代理的概念与作用  1.已经写好一个类,现在要为这个类增加一些功能,例如,异常处理、日志、计算方法的运行时间、事务管理、等等,你准备如何做? 现在我们写一个代理类: 保持了原来那个类的功能,又增加了你现在需要的功能。 主函数调用的时候,直接调用代理类就行了。 这就是代理类的功能。   2.编写一个与目标类具有相同接口的代理类,代理

黑马程序员---类加载器

------- android培训、java培训、期待与您交流! ----------   简要介绍什么是类加载器和类加载器的作用 Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap,ExtClassLoader,AppClassLoader   类加载器也是Java类,因为其他是java类的类加载器本身也要被