it-swarm.cn

当事情不起作用时应对挫败感

您曾经尝试实现一些简单的方法,但是由于某些奇怪的原因而无法正常工作。

因此,您尝试一个可能的解决方案,但其他方法不起作用。您一直在尝试不同的解决方法,但是每一次不同的方法都不起作用。

每次距离您更近一步,您也将比解决此问题更一步(或更多个步骤),而现在这已经是3个小时了,而这本来需要10分钟。 而且仍然没有解决。

公司中没有人可以提供帮助,您将把拳头伸到屏幕上。


此时,您非常沮丧,无法再清楚地考虑问题了。此时您该怎么办?或者您可以采取什么措施来避免达到这一点?

63
JD Isaacks

尽管这是一个实际的问题,但它并不特定于编程。但是,恕我直言,这一点非常重要,因此在本论坛上应该占有一席之地。

我的建议:休息一下。散步,冥想,睡觉,进行体育活动*-做一些与完全不同的事情,让您的大脑放松并摆脱精神障碍,同时让您的潜意识和平解决问题。通常,它以惊人的速度提供结果-只需要让您知道它。但是,当您的意识在不断地重复相同的思想循环时,它将无法再听其他任何东西。

您可以怎么做才能避免到达这一点?

放松和正念技巧是克服压力反应并使您的注意力清晰集中的关键。实践这些确实会有所收获。当某人有经验时,他已经可以注意到压力水平在挫折感接管之前就已经上升了。这样一来,人们就可以打断思想循环,例如深呼吸或几分钟放松练习。这可能是此时所需的全部内容。

*亲吻你的伴侣,爱抚你的宠物-我妻子的建议:-)

70
Péter Török

现在已经3个小时了,这本应该花10分钟。

魔术字是应该。从您的词汇中删除。

谁说要花10分钟?具体是谁?他们提出索赔的事实依据是什么?

如果您之前已经做过3次,并且每次接近10分钟,那么您都有应该的合理依据。

如果您以前从未做过,说应该只会使自己陷入失败。您应该今天停止使用应该

35
S.Lott

寻找某人用作探空板

即使没有人确切地掌握您的工作内容,还是经常谈论这些事情是一个好主意。仅仅用某人作为一个共鸣板就可以使您的思维开始转向。您会发现自己正在考虑尝试新事物。这也将减轻您的压力,使您发泄一些并可能结识新朋友。总体上来说,使团队感到舒适的共享和同情也很健康,从而为解决此类问题营造了一种面向团队的氛围。

22
Doug T.

走一会儿,然后做其他事情。睡个好觉,然后早上再解决问题。

另外,不要打自己。您的十分钟估算值显然是不正确的,而且这种情况一直存在。

9
jprete

当我达到这一点时,我有几个步骤。通常,如果我花时间退后一步来反思,我可以找出解决方案。

第1步:远离问题,清理头脑。当您不感到沮丧时回来,可以用新的思路看它。

第2步:返回代码,看看是否有任何遗漏。如果您无法正视某人,请有人来第二眼。

步骤3:从公式中删除代码。您要解决的问题是什么?将其写在一张纸或白板上。与某人讨论问题,以获取他们对问题和解决方案的意见。

第4步:联系社区,看看他们是否有解决方案,或者是否有其他人碰壁。

基本上,这些可以概括为“停止黑客攻击并远离代码”。

9
Tyanna

我想在这里提出一个问题,并请社区帮助您解决。这样压力就小了。

2
Bernard

对于这种情况,我有一个特殊的名字:史诗般的编程之战

如果我至少没有使用一种特定的编程语言或工具进行史诗般的编程大战并解决了问题,那么我不能对自己说可以使用这种编程语言或工具。

因此,有我的解决方案:像打架一样对它进行心理处理,并进行勇气和耐力的考验。如果我不能解决问题,那么我“ 为另一天而战”。

听起来有点可笑,但是用这种术语来思考它(如必须赢得比赛是某种游戏)会更加有趣和令人满足,而不是一路受苦,因为您必须面对事实您什么都不知道

1
dukeofgaming

我有另一种解决方法-[〜#〜] sleeping [〜#〜] !!

当您对问题感到沮丧时,您将很难摆脱它。因此,如果您累了要解决问题然后入睡,那就更好了。

当您醒来时,您将有一种新鲜的感觉,您可以再次清楚地思考问题。有时候我会做。

1
ruben

找到一些有助于重新建立信心的东西,这是我达到这一点时倾向于做的事情。这可能是解决Sudoku或Kenken难题,执行一些简单的,无意识的管理任务,例如填写我的时间表或出去散步。对于我来说,关键是要对这点小小的分心有一定的成就感,这可以帮助我振作起来,重新回到马匹上,骑进狂野的蓝色峡谷,在那儿混合一些隐喻。

为了避免造成这种情况,我可能建议您采取一些时间装箱策略,这样,如果您认为某些事情要花10分钟,而突然过了一个小时,却没有太多进展,我会停下来稍作休息,而不是试图将我的头撞在墙上。

1
JB King

好吧...我认为您需要一个新的职业或一套全新的期望。尽管肯定不那么频繁,但是花3、4、8、10或40个小时来完成您原本认为是10分钟的工作在软件行业中并不少见。我确信大多数从事中等复杂性工作的开发人员在深入研究并理解问题后,都会将2天的任务变成1个月的任务。

成为一名优秀的开发人员的一部分需要耐心,否则计算机将赢得胜利,您将最终合并某种快速修复的hack,这种hack看上去几乎不起作用,但不可避免地会破坏您没有想到的东西。如果轻微的延误给您带来很大的压力,那么您可能不应该从事此工作。

0
Dunk

两个建议:

  1. 我认识的最聪明的人说,他有两个博士学位,并且在一家小型私营公司工作,职称为“研究研究员”。

    如果您已经解决了15分钟,但没有答案,那说明您做错了。

    不要再想了.

    小睡一会儿。 (散散步等)

    当你醒来时答案就在那里。

  2. 获取David J Agan的书“ Debugging”。它可能会教给您更多有关调试的知识,以便在无法正常工作时可以快速进行调试。

0
Tim Williscroft

每当我遇到无法解决的问题时,我总是会记住这句话:

当您下地狱时,请继续走,因为那是此时可以做的最好的事情。

休息一下,尝试使自己恢复活力,并专注于新水平的问题。

0
Rachel

回应其他人的建议:

  • 这种情况几乎总是一件琐碎的事只是看不到;休息一下
  • 另一双眼睛,甚至只是向猫咪解释问题都会有所帮助

并添加:

  • 重新检查您的假设,尤其是未陈述的假设;很有可能您一直在吠错树
  • 扭转这种情况:假设当前行为是期望的结果,那么您必须对代码做些什么才能使这种情况发生?
  • 编写一些测试代码(断言或日志记录,或条件断点-保持简单),以沿执行路径验证您的假设
0
Steven A. Lowe

疲劳或缺乏睡眠对我来说从来都不是问题。对于整个行业缺乏组织,以及我们为自己设定的低标准,我感到更加沮丧。这让我感到沮丧的五件事:

  1. 设计复杂的API。就像学习一种全新的编程语言一样。实际上,某些API比学习新的编程语言要难得多。我很欣赏您的聪明才智,但您可以输入我需要软件工程或计算机科学博士学位才​​能理解的文档,这样可以节省我的时间。

  2. 缺少好的文档。我永远无法克服这样一个事实,即许多API设计人员花费大量时间来制作API,而只是以最少的文档发布它。谢谢,但是我怎么用呢?在这种情况下该怎么办?等等.

  3. 专有实现。可以使用某些专有的实现,但是如果存在标准,为了人类的利益,请遵循这些标准。没有什么比花时间去思考为什么某些事情不能仅仅发现实现不遵循正常标准而感到沮丧了。

  4. 沙盒环境/限制。好的,也许这有助于将坏人拒之门外,但在我看来,限制程序员可以做什么只能限制创造力和技术进步。在发现我不允许做某事后,我曾被丢掉的许多好主意。编程行业真正的目的是搅动日常应用程序,而不是创新的突破性软件。因此,如果您决定当一名程序员,那么您真的会选择当现代人,除非您想成为一个孤独的学者。

  5. 现代讨论。如今,人们仍在争论LISP括号的丑陋性,Python清洁性的优点,或诸如Cobol或Fortran之类的某些语言将如何灭绝,等等。这是我们辩论的话题?让我们谈谈并行性,或设计更安全系统的更好方法,或逻辑编程如何改善我们的生活。让我们不再像编码员那样思考,而像明天的世界设计师一样思考。

因此,由于这些挫败感,我个人不再对此进行编程。直到业界决定它要做的不只是创建下一个Facebook,或者重塑我已经准备好的字处理器。我把它留给你们。老实说,没有冒犯的意思,这是好钱。

0
annoying_squid

有时,最好不要只是尝试解决问题的方法。花一些时间,用伪代码写出您需要做什么。我知道有尽快完成工作的压力,但是据我所见,这种编码风格会导致您描述的情况类型。如果有人编写的代码只能在少数条件下起作用并且设置了更改,那么代码将中断或执行意外的事情。

另外(我讨厌承认我的教授是正确的...),记录和单元测试也有帮助。在给定输入集的情况下,这将使您更容易知道将放出一段代码。然后,将更容易看到该部分输入中的更改将导致什么影响。

0
John