想要成为一个快乐而富有成效的程序员吗? 使用心理学的这5种技巧
人类心理学的思想如何帮助程序员?
您想以最佳表现进行编程吗? 您想享受编程工作吗? 从棘手的问题中解脱出来的诀窍是什么? 您如何提高自己的认知能力? 转向心理学可以告诉我们答案。
就像电影中的英雄一样,程序员的生活中有恶棍,转移注意力,打架和情感。 您准备好成为编程英雄了吗?
1.达到流程状态
心理学家Mihaly Csikszentmihalyi在著名的《 Flow:最佳体验心理学》一书中指出,达到最佳性能的秘诀是在称为flow的最佳状态下工作。
流动是意识的最佳状态,我们可以感觉到自己的最佳状态,并能够在最高水平执行。 在交流过程中,人们通常会出于自己的需要而体验到深刻的享受,创造力并完全参与到一项活动中。
当一个人的技能完全参与克服几乎可以控制的挑战时,也会发生流动,因此它可以吸引新技能和不断增加的挑战。
为了达到流畅状态,您必须在活动难度和技能之间取得平衡。
提前学习技能✅
如果您的工作需要新技能(可能是新语言或新技术等。),请勿尝试同时学习和完成工作。 熟悉它可以避免焦虑,并有助于获得流动状态。 因此,请提前学习技能,以确保您具有应对项目挑战的正确技能。
首先使其工作,然后使其完美✅
如果您尝试编写完美的代码,挑战将更加艰巨,并且可能会陷入困境。 因此,为了减少挑战,只需编写可运行的代码的第一个版本,而不必担心它的性能很差。 然后,将更容易进行重构并使其良好。
分而治之✅
另一个技巧是将复杂的工作分解为可管理的小任务,以便您可以控制。
因此,其想法是提高您的技能或减少挑战以实现流程状态。 游戏设计师使用这种技术来吸引玩家。 它们使游戏级别的难度适合于玩家的技能,从而使玩家既不会感到沮丧,也不会感到无聊。 在流程状态下,编程感觉就像在玩游戏。
???? 如果您达到 流动状态, 您将成为 英雄 。 但是,等等,有一个 恶棍。
2.赢得焦点
刚开始时可能不会有流程经验,您需要集中精力来专注于工作。 卡尔·纽波特(Cal Newport)在他的著作《 深度工作:分散世界中成功的规则》中谈到了专注工作的重要性。
深度工作:在无干扰的状态下进行的专业活动将您的认知能力推向极限。 这些努力创造了新的价值,提高了您的技能,并且难以复制。
为深度工作留出时间Work
您可以留出一些时间进行重点工作。 为避免分心,请关闭计算机和电话上的所有通知。 如果您不擅长自我控制,请尝试番茄技巧。
番茄技术Technique
Pomodoro技术提供了执行深度工作的系统。
基本上,您的工作分散了25分钟,注意力分散了25分钟。 然后,您短暂休息5分钟,然后移至下一个Pomodoro。 4个番茄之后,您可以休息片刻。 您可以在互联网上轻松找到Pomodoro应用程序。
Po 不要对番茄时间安排太严格。 如果您处于 流动 状态,则在25分钟结束时不必强制休息。 但是,还有其他好时光可以散步,我将在本文的后面讨论。
这对于外部干扰很重要。 内在的精神分心怎么办?
提出你的想法✅
我们通常会因未完成任务的想法而分心,无论其重要性如何。 因为未完成的任务在完成之前往往会占用我们的短期记忆。
但是要感谢Zeigarnik的后续研究。 现在我们知道了
实际上,我们不必完成说服大脑停止思考的任务。 我们要做的就是以一种使我们相信它将得到照顾的方式写下来。
完成工作后,您不仅应该将代码提交给源代码控制,还应该在一个适当的地方写下您的想法(例如,后续步骤,待办事项等)。
programmer 程序员的旅程不仅有 恶棍, 而且还有转移和打扰 的经历 。
3.减少选择
程序员的一生涉及做出许多决定,并且干扰了流程状态的体验。
巴里·施瓦茨(Barry Schwartz)在他的《 选择的悖论 》( The Paradox of Choice)一书中描述了更多的选择如何导致焦虑。 从购物到职业选择再到恋爱,他列举了无数个例子,表明减少选择不仅可以提高我们的生产力,而且可以提高我们的自由度,并使其更容易在当下享受它。
他主要研究购物者的行为,但同样的原理也适用于程序员。 我们可以使用一些技术来减少必须做出的决定的数量。
选择语言或框架时请考虑一下✅
许多人喜欢Go语言,因为只有一种方法可以做某事(例如编写循环)。 同样,人们讨厌Perl语言的原因之一是做同一件事的方法太多。
因此,在选择语言或框架时,请考虑灵活性与限制性的好处。 如果只有做某事的唯一方法,则无需担心执行最佳实践。
预先收集基本材料✅
程序员通常必须查找代码示例或文档来完成工作。 这不仅导致上下文切换,而且还增加了选择正确的示例或API的负担。
因此,请提前收集必要的资料,以便您不必浏览大量Google搜索结果并决定合适的结果。
编写代码之前先进行设计✅
在开始编写代码之前,请尝试做出重要的决定和设计。 这将帮助您专注于解决手头的问题,而不是浪费精力进行决策。
If 如果我拖延或陷入困境怎么办? 你需要打架吗?
4.不要与意志力作斗争
对高度成功的人的研究证明,成功不是强大的意志力和克服阻力的能力的结果,而是智慧工作环境首先避免了阻力的结果。
有一些技巧可以避免与意志力作斗争。
如何避免拖延症?
与其强迫自己做一些自己不想做的事情,不如找到一种让自己感觉像做进一步推动项目发展的方法。
有明确的任务 ✅
拖延的主要原因是在高水平上定义您的目标。 写下您将做什么,何时何地做什么的细节,为实际做事提供了更多的机会。 而且,您的大脑认为如果没有足够的细节,这太难了。 因此,拥有有意义且定义明确的任务将胜过毅力。
开始下一个任务 ✅
人们通常在完成任务的那天休息一下或称其为休息日。 但是,开始下一个任务或稍有进展是个好主意。 因为第二天开始工作时,您会更好地知道该怎么做。 这将帮助您避免拖延,因为您没有开始新的事情。
读书时可以使用相同的想法。 如果您仅阅读下一章的第一页,则不必在完成某一章后关闭一本书,而可能会再次拿起这本书。
如何解决难题?
与意志力类似,您不必费劲去解决一个棘手的问题。 您可以调整自己的想法,以便以令人惊讶的方式自动为您提供解决方案!
散散步 ✅
让思想徘徊而不专心思考,使我们的大脑有机会以不同的,通常是令人惊讶的富有成效的方式来处理问题。 当我们去散步,洗个澡或打扫房子时,大脑不禁要处理遇到的最后一个未解决的问题。
因此,如果您只是离开计算机,您可能会想到一个主意。
睡吧 ✅
带着未解决的问题回家。 不要试图强迫自己解决它,而要睡觉。 您的潜意识将对此起作用,您可能会在半夜或早晨醒来时找到解决方案。 很多时候,我的问题的解决方案出现在深夜或早晨的第一件事上,或者是在我洗澡的时候。
尝试处理其他问题或项目。 ✅
有时,当您不考虑问题时,解决方案会自动出现。 因此,与其努力解决难题,不如将精力转移到另一个生产目标上。 使用这种方法,可以同时处理不同的事情,您不会遇到任何精神障碍。
still 仍然缺少一些东西。 只有有情感,生活才能变得美丽。 同样的编程。
5.练习同理心
同理心是一项重要技能,可在个人生活和职业中带来更大的成功和幸福。 在编程中也要练习移情。 编程不仅仅是逻辑。 它像艺术一样富有表现力。
编写可维护的代码✅
请记住,您编写的代码将被其他人读取和维护。
必须编写程序供人们阅读,而只能偶然地使机器执行― Harold Abelson,计算机程序的结构和解释
遵循编码风格的最佳做法,例如有意义的变量名,较小的方法等。您不应在此注释中编写程序????
//When I wrote this, only God and I understood what I was doing
//Now, God only knows
确保您编写的代码对其他开发人员的认知负荷较低,以便易于维护。 写有用的评论。 这是我遇到的一个有趣的评论????
//
// Dear maintainer:
//
// Once you are done trying to 'optimize' this routine,
// and have realized what a terrible mistake that was,
// please increment the following counter as a warning
// to the next guy:
//
// total_hours_wasted_here = 42
//
在设计中使用简单✅
无论您是在设计API还是在设计用户界面,都使用户轻松自如。 您可以遵循的基本原则是
简单的事情应该更简单。 复杂的事情应该是可能的。
实行同理心不仅可以帮助您,还可以使您的团队富有成效,并使用户满意。
摘要
您可能已经在使用这些技术。 但是使用心理学知道他们背后的推理可以帮助您高效地做他们。
如果您讨厌编程或被认为退出,那么使用心理学上的这些想法可能会使您成为一名快乐的程序员。
当您从心理学的角度看编程时,您会欣赏它的美丽并喜欢编程的艺术。
谢谢阅读。 如果您喜欢这篇文章,请鼓掌,以吸引更多的听众。 另外,请在评论中分享您的想法。