IT人的拖延——失控不可怕,跟着“拟退火算法”抢回“控制权”

因为失控感而产生的拖延

看过一本书叫《活着就是在找感觉》,书中作者用很多案例来说明“人们都需要一种感觉”,一种“我好且对的感觉”,这种感觉也是一种“自我掌控感”。如果人感受到自己周遭的事物不在自己的“可控范围”内时,人们就很容易因为“失控”,而想要找回“控制权”,而拖延也是一种抢回“控制权”的典型方式,一种为了重新获得控制感而会采取的一种心理防御机制。其中包含但不限于以下一些场景:

  1. 情绪调节问题:当工作压力大到感觉自己无法应对时,拖延成为了一种暂时缓解压力的方式,通过暂时避开任务,来控制自己的情绪反应,即使这可能会导致长期的负面影响。

  2. 自我怀疑: 失控感常常会导致我们产生不必要的自我怀疑情绪。我们可能会开始自己的能力和价值,觉得无法胜任当前的工作任务,从而陷入拖延的状态。

  3. 工作与生活的界限模糊:在远程工作或灵活工作制中,工作与私生活的界限变得越来越模糊,因此我们也可能会通过拖延来试图重新划定工作和生活的界限,找回我们自己对个人时间的控制感。

  4. 信息过载应对:面对大量待处理的信息或任务时,我们难免会感到不知所措,为了减轻这种感觉,我们可能会选择不做任何决定或行动,通过拖延来暂时“冻结”情境,找到看似处理信息的主动权。

  5. 对任务产生恐惧: 失控感会导致我们对要做的事情产生恐惧和压力,我们可能会觉得无法应对任务的挑战或担心任务完成后可能收到负面反馈或批评,因此通过拖延来延迟让我们面对可能的负面评价,这是一种对自我形象和自尊的保护,也是一种试图控制外界评价的方式。

我们日常生活中,难免就像打麻将那样,从别人那里接手些代码,系统,又或者是生活的现状跟自己理想中的样子差别太大,一手的牌不知道怎么打下去才能转危为安。此时,我们先平复下情绪,然后还要认识到“拖延”无法真正让我们重获控制感,我们需要其他更有效的方式来重新抢回“控制权”,不妨让我们从拟退火的算法思路中找些灵感吧!

拟退火算法

拟退火算法是一种基于模拟退火过程的全局优化算法,常被用于解决组合优化问题。在实际退火过程中,固体材料在高温下会变得非常柔软,原子会随机地移动,而在逐渐冷却的过程中,原子会逐渐固定在低能量的位置,形成有序的晶体结构。拟退火算法模拟固体材料的退火过程,通过在解空间中随机游走来寻找问题的最优解。在初始时,算法会允许接受较差的解,以防止陷入“局部最优解”的情况,然后再逐渐降低接受较差解的概率,最终收敛到全局最优解。

拟退火算法的主要步骤

  1. 初始化:

  • 设定初始状态:选择一个初始解作为搜索的起点,这个解可以是随机生成的,也可以是根据经验预设的。

  • 设定初始温度:初始温度较高,允许算法在解空间中有较大的探索范围。

  • 定义温度衰减策略:确定温度随迭代次数减少的规则,常用的有线性衰减、指数衰减等。

  • 确定接受准则:概率通常由当前温度和解的差异决定,即使新解比当前解差(即能量更高),也有一定概率接受它。

2.循环迭代:

  • 产生新解:从当前解出发,通过某种方式(如随机扰动)生成一个新解。

  • 计算能量差:计算新解与当前解的目标函数值(或称能量)之差。

  • 接受或拒绝新解:

  • 如果新解更好(能量更低),则接受新解;

  • 如果新解较差(能量更高),则以一定概率接受新解。随着温度的降低,接受较差解的概率会逐渐减小。

  • 更新或保持:更新当前解为新解或保持不变,取决于接受的准则。

3.温度更新: 根据预先设定的温度衰减策略降低温度,模拟物理退火过程中的冷却,逐渐减小搜索范围,使算法更倾向于局部搜索,以细化解的质量。

4.终止条件:当温度降低到一个预设的阈值或达到预定的迭代次数时,算法停止。此时的解即为最终解,期望它是全局最优或接近全局最优的。

拟退火算法的关键在于合适的温度调度和接受准则设计。通过合理的参数设置,拟退火算法可以在解空间中有效地搜索全局最优解,并且具有一定的抗干扰能力,适用于多种优化问题。拟退火算法对“拖延”的启发组要有:

  1. 允许接受“较差解”: 拟退火算法根据一定的接受准则来接受新的解。初始时,算法是允许接受较差的解。

  2. 降低接受“较差解”的概率: 在退火过程中,拟退火算法以模拟材料冷却过程中原子逐渐固定的情况,它会降低接受较差解的概率,直到收敛到全局最优解。

让我们以程序员接手一个别人的项目,产生了因为这个项目让自己感觉不可控而拖延为例,我们可以如何来应用拟退火算法的步骤:

  1. 初始化:根据当前任务的状态,预设合理的期待值,有时候当前业务的代码可以已经很“废”(代码负债的问题很多公司都有),一次性达到很好的状态是比较难的,所以预设“合理的期待值”,是能让自己走出“拖延”很重要的一个开始,关键还是找到“影响较大的点先做起来”,先改善影响较大的一个点,比要把整个都改完美,更接地气些。根据预设的期待值,确定一些基本的准则,比如搜索的速度是目前影响的关键点,那多长的搜索时间是当前的业务场景可以接受的,除了产品经理会定义之外,其实也需要大家根据业务场景,数据量、展示方法等一起商量出来的。

  2. 循环迭代:

  • 产生新的结果:从当前的状态出发,先对要解决的问题,做出一个结果来。

  • 计算结果的差距:计算新的结果和期待结果之间的差距有多大。

  • 接受或拒绝新结果:

  • 如果新的结果达到了期待结果的要求,则接受新结果;

  • 如果新的结果没有达到期待的结果,则以一定概率接受新结果。具体要不要接受新结果,是看差距有多大,还有如果用新的方法,耗时有多久,是否会对其他环节有影响等,如果差距没有很大,且再不接受,会对其他环境有较大影响,那就有一定的概率接受这个“较差”的结果。但是,随着代码的不断迭代,接受较差“结果”的概率会逐渐减小。

3.继续优化或停止:根据项目所剩的时间、复杂度和优化结果,选择继续优化代码或停止。当有新的业务场景出现时,再次启动这部分代码的“优化”工作。

拟退火算法,给了我们一个启发就是“设定合理的期待值”,比较“实际结果”和“期待值”的差距,结合“项目所剩的时间”、“业务场景的接受程度”、“未来继续优化的可能性”来逐步调整每个阶段的期待值。也就是说,“抢回控制权”不需要一次性就完成,不需要一开始就想着要完全的拿回控制权,拿回一部分的控制权也可以,然后再逐步的迭代优化,逐渐让自己掌握更多的控制权。这个思路也很像我们平时要做的产品迭代的过程类似,产品上线时可能跟预想的结果有很大差距,投入了很多资源和精力,结果很少用户来使用,也不知道怎么改进能解决问题(有点失控),但我们在产品研发时不可能因为结果差(失控),就停止产品的下一步规划,要么是深入分析后发现之前的产品方向有问题,要么是发现执行时有偏差,需要改进后再测试。总之,产品不会因为失控就停下来拖着不做,而个人的拖延不妨也效仿下产品迭代的思维来让自己逐步走出拖延!

失控感的应对“认知”

在面对失控感时,我们还需要对“自我”有清晰的认知,才能从根源找到适合自己的方法,此时,可以跟着"象与骑象人"和"内在小孩"来学习下如何认知自我。"象与骑象人"和"内在小孩"是心理学中两个富有启发性的概念,虽然它们分别来自不同的理论背景,但都与个体的心理运作、行为决策及个人成长密切相关。

象与骑象人

"象与骑象人"的概念出自一本书《象与骑象人》,在这本书中,人的心理被形象地分为两部分:

  • 代表人的感性面,包括情绪、本能、冲动和习惯,相当于人的自动化、直觉性反应。大象强大而难以驾驭,常常按照既有的习惯或直觉行事,不易受理性控制。

  • 骑象人代表人的理性面,包括逻辑思维、计划、决策和自我控制能力。骑象人像是骑在大象背上,试图引导大象按照理性的路线行走,但往往力量有限,难以完全控制大象的行为。

这个模型说明了人的心理冲突,即理性与感性之间的拉扯。理解这一概念有助于我们认识到,要改变行为,仅凭理性思考是不够的,还需要理解和调整潜意识层面的习惯和情绪反应。

内在小孩

"内在小孩"是心理学中常用来描述个体内心深处那个未经世事、纯真、易受伤的部分。在这个概念里,每个人的内在都住着一个小孩,很多外在的行为是源自我们忽视了这个“内在小孩”,所以认识并与其和解可以帮助我们减少内在的冲突。其中,

  • 内在小孩代表了个体早期经历中形成的未完成情结、创伤记忆和未被满足的情感需求。它反映了人在成长过程中未被妥善处理的情感状态,如恐惧、悲伤、愤怒等。很多时候,我们都被教育要勇敢,坚强,虽然有道理,但是如果过度,而忽视了自己内在的情绪,让其压抑很久,没有得到合理的表达,那这些情绪可能会在某个时刻用我们意想不到的外在形式而表现出来。

  • 疗愈内在小孩意味着我们要认识并接纳自己内心深处的脆弱与需求,通过自我关怀、情感释放等方式,去理解和满足这个内在小孩的需求,如爱、陪伴、夸奖、玩耍、道歉等,从而促进个体的心理成长和情感修复。在社交媒体上,现在不乏能看到很多“爱自己”的思想,比如如果我们自己不能爱自己,又怎么希望别人爱我们自己。这些思想大抵跟 “疗愈内在小孩”有着异曲同工之妙,教我们要学会观察自己的需要,不要忽视自己的内在需要,才能更好地让我们有动力“给出去”更多的能量!

总的来说,"象与骑象人"可以帮助我们理解决策和行为改变的心理动力,而"内在小孩"则聚焦于个体内心深处的情感关照和个人成长。在面对因生活失控感导致的拖延问题时,结合“关注内在小孩”和“象与骑象人”这两个概念,我们可以尝试采取以下策略来帮助自己走出拖延的困境:

象与骑象人

  1. 理解大象(情绪):认识到拖延是大象(感性面)的自然反应,它可能因为感到压力过大或害怕失败而选择了逃避。试着理解大象的恐惧和需求,而不是强行对抗。

  2. 引导大象骑象人(理性面)可以通过设定小目标和奖励机制来引导大象前进。这些小目标应该是具体、可实现的,比如将大任务分解成小步骤,每完成一步就给自己一个小奖励,这样逐步重建控制感和成就感。

  3. 创造熟悉的路径:大象倾向于走熟悉的路径,因此,我们可以通过建立新的习惯路径,比如固定的学习或工作时间表,可以让大象习惯于新的行为模式,从而减少拖延的倾向。

  4. 强化正面的情绪利用正面的情绪来激励大象前进。比如,通过可视化成功的场景、回顾过去的成绩来激发自我的积极情绪,使大象(情绪面)愿意跟随骑象人(理性面)的方向前进。

关注“内在小孩”

  1. 识别与接纳:首先,意识到自己的拖延可能是内在小孩在寻求逃避或安慰的一种方式。尝试静下心来,通过正念、日记或艺术创作等方式,探索并识别出那些让你感到生活失控的情绪源头。试着让自己接纳内在小孩这些情绪,告诉他:“我看到你了,我理解你感到害怕/挫败/无助。”

  2. 自我关爱:像对待一个需要关爱的小孩一样对待自己。为自己设定一些简单、愉快的活动,比如泡个热水澡、散步、阅读或听音乐,以此来安抚内心的不安,减少逃避倾向。

  3. 积极对话:与你的内在小孩对话,用鼓励和支持的话语替代批评和责备。比如,当你发现自己因为害怕失败而拖延时,可以对自己说:“我知道这很难,但我们可以一步一步来,我会一直陪伴你。

综上,通过同时关注并照顾好内在小孩,以及合理运用象与骑象人,可以有效帮助个体在面对生活的失控感时逐步找回生活的掌控感,从而减少拖延。下面我们以程序员的工作场景为例介绍几个应对这种原因的拖延小技巧。

失控感拖延的应对的7个小技巧

1. 分解任务,轻重缓急心中有数

面对繁重的编程项目,我们可以尝试着将任务分解成小块。例如,一个大型软件开发项目可以拆分成需求分析、设计、编码、测试等多个阶段,再进一步细化为编写特定功能模块的代码、调试特定错误等小任务。要知道,每完成一个任务,无论大小,都是我们迈出拖延的一步。同时,识别哪些任务更为紧急与重要,优先处理,比如修复影响用户使用的严重bug,通过处理重要影响的事物来确保工作的有序感,减轻失控感。

2. 借力外部资源,汲取经验智慧

当遇到难题时,学习及时地向同事、有经验的人求助。比如,在GitHub上寻找相似问题的解决方案,或加入开发者社群寻求经验丰富的同行指导。这些外部资源不仅可以提供给我们技术上支持,还能给予心理上的慰藉,让你意识到自己并不孤单,大家都在共同努力。

3. 从小事做起,积累自我效能感

选择一个相对容易控制的小任务开始,哪怕只是整理代码注释或是优化一个小功能。为每完成一个小任务设定奖励,比如一杯咖啡时间或短暂的游戏放松。这种正面反馈机制能显著提升你的自我效能感,激励你继续前进。随着一项项任务的完成,你会发现自己正逐步重建自己对工作的掌控感。

4. 珍视已有的进步,宽容对待自己

在项目推进过程中,难免会有不可控因素出现,导致我们原先的计划偏离预期。此时,重要的是认识到,即使在最不利的情况下,每一点努力都是宝贵的,我们完成的每一行代码、解决的每一个问题都是向前迈进的证明。对自己保持宽容,认可自己的努力,而不是苛责自己未能达到设想的完美。

5. 接纳意外,灵活调整计划

生命本就充满变数,我们的工作也不例外。当意料之外的任务或突发事件打乱了原有的计划,我们要学会接纳并适时调整。比如,客户突然提出的新需求,虽然它打破了原计划,但从另外一个方面想,它也是对产品改进的一次尝试或者它还好在你没完成时就提出了。大意就是如果已经发生了,纠结凭什么,不如多花时间想想以后怎么避免类似的情况,当下该怎么调整计划等。

6. 搁置难题,激发灵感

遇到技术瓶颈或创意枯竭时,不妨暂时放下,去从事一些完全不同的活动,比如散步、阅读或冥想。换一个环境或思维模式,往往能在不经意间激发灵感,让原本卡壳的问题迎刃而解。这种“搁置法”不仅能缓解焦虑,有时还可能带来意想不到的灵感来解决问题哦!

7. 学会拒绝,守护专注力

在任务繁多的工作环境中,也要学会对那些不重要的琐事或偏离当前目标的事情说“不”。这不仅是时间管理的艺术,更是对自我精力的必要保护。明确自己的优先级,拒绝那些无关紧要的事情,确保自己的精力优先处理重要的事情。只有这样,我们才能在繁忙中保持高效,减少不必要的拖延!

总的来说,想要克服因为失控感而产生的拖延,关键在于理解并接受“失控感”的来源,保持对“内在”的关照,然后通过小步快跑的方式,有技巧地逐步累积信心让自己找回“控制权”,从而逐步走出拖延行为。要知道,这些对内和对外的方法不仅仅能帮助我们走出拖延,同时还能提升工作质量和生活幸福感哦!

最近更新

  1. TCP协议是安全的吗?

    2024-06-09 10:10:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-09 10:10:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-09 10:10:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-09 10:10:02       20 阅读

热门阅读

  1. TS的高级类型

    2024-06-09 10:10:02       8 阅读
  2. kafka是什么?

    2024-06-09 10:10:02       10 阅读
  3. Docker概念速通

    2024-06-09 10:10:02       7 阅读
  4. RuoyiAdmin项目搭建及Docker 部署备忘

    2024-06-09 10:10:02       13 阅读
  5. 学习分享-注册中心Naocs的优雅上下线

    2024-06-09 10:10:02       9 阅读
  6. Redisson 源码分析 —— 调试环境搭建

    2024-06-09 10:10:02       9 阅读
  7. 面试题之webpack与vite系列

    2024-06-09 10:10:02       7 阅读