转自:cnblogs

前言

  本文上篇主要介绍了解决问题的心理过程以及问题表征阶段影响问题解决的一些心理因素,并分享了另外相关案例和指导意见。本文继续介绍影响问题解决的其它心理因素。

  影响问题解决的心理因素

  自我监控技能

大胆假设,小心求证

––– 胡适

  在设计好解题计划后,问题解决者并不是简单地执行解题计划,而是要时刻自己监控自己对解题计划的执行是否正确、解题计划本身是否正确。这有点类似行车过程中,GPS导航软件时刻检查车辆当前的行车路线与之事先规划的路线是否吻合。若不吻合,则导航软件会提示车主车辆已偏离规划的路线。。

  问题解决者自我监控技能的强弱可能对问题解决的效果和效率产生决定性的影响。例如,解决某道数学题时,解题过程中需要计算出某事件出现的概率,然后再以此数据继续解题。若经过很多步骤才算出这个事件的概率是1.02,通过自我监控则可以发现这个概率值的计算显然是错误的。那么,应该重新计算这个概率值,而不是继续执行其它解题步骤。相反,此时若未觉察到这个错误,继续执行其它解题步骤,最终的答案很可能是错的。

  专家在解决问题过程倾向于更加频繁地进行自我监控,并且其自我监控的效果比新手更好。专家在解决问题,尤其是一些难题,往往更加频繁地提出各种假设,并通过逻辑推理和寻找数据证据对其进行检验,然后再根据检验的结果提出新的假设,再对这些新假设逐一验证,通过这样的自我监控逐步向解决方案靠近。就好比拨洋葱皮,每拨一层皮,就离洋葱核心更进了一步,最终解决问题。而新手在解决问题过程往往很难提出假设,即便提出假设,他可能不能清晰地意识到那仅仅是个假设,便在此基础进行其它操作了。最后他们得到的所谓“结论”,可能通过简单的逻辑推理就可以发现是错误、甚至是自相矛盾的。

  笔者曾经遇到这样的问题求助。求助人在写一段服务端的Java代码,用于获取网页表单中提交的某个字段的值。求助人传达给我的信息是:网页中确实存在服务端代码中所要获取值的字段,但是服务端代码就是取不到该值,“原因”是浏览器并没有把该字段的值提交到服务器。我问对方得出这个“结论”的证据是什么?他又回答不出来。显然,他只是把“假设”和猜想一厢情愿地当作结论了。如果求助人在该问题的定位过程中做到了自我监控,他可能会问我如何去验证客户端某个字段是否被提交到了服务端,而不是问我这个问题如何解决。最后,通过简单的Debug查看变量,发现浏览器事实上提交了服务端所要获取值的字段,只不过服务端代码中所用的字段名的大小写弄错了!

  提高自我监控能力,不是能够一蹴而就的事情。需要问题解决者清楚地明白“结论”和“假设”的区别。在问题解决过程中,任何中间结论的得出都必须经过逻辑推敲和相应的事实证据(数据)。另外,也可以对自己的解决问题过程进行反思:在问题解决后第一时间,自己问自己在问题解决过程中,自己犯了哪些错误,有没有及时自己发现这些错误(而非求助于他人)。通过这样的反思,问题解决者能够跟好地理解自我监控的重要作用,有助于以后在问题解决过程中逐步加强自我监控。笔者有时在遇到一些问题定位的求助时,尤其是对方是新人时,往往会先问对方目前的结论和进展是什么。若发现对方的结论(或者中间结论)是错误的,我可能不直接指出,而是引导其思考,让对方自己发现自己的错误。这种方法一定程度上也能提高问题解决者的自我监控能力。

  短时记忆容量

  根据记忆保存时间的长短,人脑的记忆可以分为短时记忆和长时记忆。前者类似于计算机的内存,其特点是记忆保持时间短(约为5秒到2分钟),容量小。后者类似于磁盘,其特定是记忆保持时间长(永久保存)、容量大。人脑在解决问题过程中,需要将长时记忆中的内容提取到短时记忆中参与信息加工。而短时记忆的容量很小,它只能容纳7±2个块的信息。这个“块”是一个相对的单位,一个英文字母可以算一块,而一个英文单词也可以算一块。因此,适当增加“块”的长度可以增加短时记忆的容量。例如,手机号码”13612345678“按“136-1234-5678”这样3块来记忆比“136-12345678”这样2块来记忆要容易一些。

  尽管如此,对于复杂问题的解决,或许减轻短时记忆的负担比设法提高短时记忆容量要重要。毕竟人脑此时的主要任务是解决问题,而不是记忆。减轻短时记忆负担可以使人脑集中力量到其它更加重要的活动上,如逻辑推理、提出假设和验证假设。一种简单可行的减轻短时记忆负担的方法就在解决问题过程中打草稿。例如,将问题的已知条件、待确认的细节、问题解决过程中获得的新知识、新经验以及中间结论(它可以看作新的已知条件)都列在纸上,这样既不增加短时记忆负担,又便于综合考虑。同时,也便于同他人就问题进行讨论。

  动机强度与情绪

  相信大家都遇到过这样的情形。解决问题时,尤其是遇到困难时,自己越是强烈地希望去解决它,问题解决越是没有什么进展。相反,当我们适当地停下来,把注意力转移到这个问题之外一段时间,回头再重新继续这个问题的解决。这个时候往往灵感闪现,有可能问题一下子就被解决了。这个过程中,其中一个影响问题解决的因素就叫做动机。动机简单来讲就是指心理动力。术语化的表述就是激发并维持个体活动的一种内在心理过程或内部动力。它与问题解决的效率呈一个倒U型关系,如图3所示。

图 3. 动机强度与问题解决效率的关系

  可见,最有利于问题解决的动机强度是中等的(并非越高或者越低才是越好的),并且对于不同困难程度的问题,其所需的最佳动机强度也是不同的。困难的问题比起容易的问题,所需的最佳动机强度要低。这就说,面对难题,问题解决者适度调低动机强度,心里不要抱着过大的意愿要去解决它,反而有利于问题的解决。

  情绪在问题解决过程可能起到积极的作用,也可能起到消极的作用。乐观、平静和积极的情绪有助于问题的解决,而紧张、惶恐、烦躁、压抑等消极的情绪会阻碍问题的解决。不难发现,不少新手遇到问题时的第一反应是害怕和紧张,甚至于烦躁。而专家在面对问题甚至是难题时往往也从容不迫。在问题解决过程中,如果我们觉察到自己的情绪有些紧张和烦躁时,不妨先暂时停顿下,先调节好情绪再继续问题的解决,这样效率可能比一头扎到问题中要高一些。

  因此,团队的直接主管在日常工作中也可以多关注组员在工作中表现出的动机强度和情绪状态,并在必要的时候指导组员对它们进行调节,而不是一味地施加压力和有意无意地制造紧张的气氛。这点,和中国古代各种兵书所重视的士气其实是一个道理。

  自动化加工与直觉思维

  熟练的打字员打字的时候无需思索要敲击的字母位于键盘的哪个位置,熟练的汽车司机可以边开车边与人聊天。这些都是自动化加工的例子。当人们对解决问题的某些部分的操作已经达到充分熟练的程度,这些操作就形成了自动化加工。这有助于在解决问题时将个体有限的心理能量集中到整个问题中最难、最关键的部分。从而提高了问题的解决效率。自动化加工也有助于形成直觉思维。下面看一个笔者经历过的直觉思维的例子。

  笔者曾经遇到这样的求助。对方称其在远程Debug一段Java代码时遇到了一个奇怪的问题:有个变量的值始终赋不上去。我的直觉的反应是对方Debug时所看的代码与远程主机上运行的代码不匹配导致该现象的。因此建议对方将远程主机上的jar包下载下来反编译相关class看看其代码与本地代码有何区别,以验证我的想法。最后发现是欲进行赋值的变量其值来自另外一个class中定义的常量,

  对方更改了该常量的值后仅仅将该变量所在class更新到远程主机,而未将该常量所有引用类重新编译后更新到远程主机,从而在编译器的作用下使得远程主机上的class读取到的仍然是该常量的先前值。

  上述问题的解决关键的一步其实是靠直觉思维:直觉给了我们一个问题的解决方向,接着才是在这个方向的指引下去求证,最后解决问题。可见,直觉思维往往可以使我们快速得到问题的解决思路,从而提高问题解决效率。但问题是新手通常不具备直觉思维的能力。直觉思维需要在解决问题方面长期的练习和积累才能逐渐形成。另一方面,软件开发人员在学习新技术新事物的过程中,需要注意理解和掌握基本概念和原理,并在日常工作中遇到问题时联系这些概念和原理进行分析,这样有助于问题解决,并通过一个个问题的解决逐步达到问题解决过程中能够形成直觉思维的境界。

  心理定势

  心理定势指预先存在的心理状态、习惯或态度。日常生活中我们提到的思维定势就是心理定势的一种。下面看一个实际的例子。

  测试人员要对一个数据库过期记录删除脚本的性能进行评估。测试该脚本时需要数量较大的数据库表记录(如30万条)。对于这些记录,有的测试人员仍然会采用提高负载测试工具给应用发送请求的方式由应用去生成数据库记录,因为他们经常接触到数据库记录多数是这么生成的。而事实上,这些记录完全可以由专门编写的脚本(如存储过程)去负责生成。这样不仅方便具体控制记录中的数据,也可以提高记录生成的速度,便于反复测试。

  可见,心理定势使得我们在面对“新问题”时倾向于采用过去使用过的方法和方式,从而可能不利于问题的解决。这是心理定势在问题解决中表现出来的消极作用。值得注意的是,心理定势也能对问题解决起到积极的作用,其表现在于通过复用过去的经验和方式方法可以减少问题解决所需的心理能量,有助于问题解决的自动化加工。

  因此,问题解决过程中一方面我们可以借助心理定势,以减少问题解决所需的心理能量,另一方面又要注意打破心理定势,避免其束缚我们采取更优的问题解决方法。

  当我们试图沿用以前的方式方法去解决现有问题而无法解决时,不妨再仔细分析下当前问题与以前遇到的问题究竟还有什么不同之处,以前的方法是否仍然适用。或者说,问题解决的更高境界是面对一个问题时我们能够敏锐地发现现有问题与以前问题的不同之处,从而在第一时间选择与以往不同的、更为适用的方法。例如上面例子中,如果问题解决者能在第一时间意识到其目标是生成一批记录,而这批记录是如何生成的是一个与其目标无关的因素,那么他可能就会去想有什么方法比通过发请求给应用更高效。

  人际关系

  软件开发毕竟是一个社会化的团队活动,从这个角度来看,可以说个人在问题解决中所起的作用有时是非常有限的。良好的人际关系有助于个人在团队中找到愿意协助其解决问题的人。而紧张的人际关系则使个人解决问题时能够使用的资源变得非常有限。

  观点采择

  团队开发中遇到的问题有时不是靠一个人的力量就能够解决的。当个人在解决问题过程中需要求助他人的时候,就需要涉及与他人的沟通。沟通是否顺畅会影响问题的解决效率。而沟通过程中当事人是否能够站在对方的角度去理解和思考可能成为沟通效果、效率的瓶颈。

  观点采择指采用他人的视角来理解他人的想法和感受的能力。心理学的研究认为观点采择这方面能力强的儿童能够更好地理解同伴的需求,因而他们能够更有效地和同伴进行沟通。如果拿实际的经验来对比,我们不难发现这点在成年人(同事)之间也是适用的。

  有心理学理论认为人的观点采择经历从3岁到青春期(12-15岁)的发展已经到达了“深入”的程度。但是,笔者也经历过不少个案,这些个案中的当事人在工作过程中与其他同事进行沟通时很难站在对方的角度去理解和思考对方的观点和思路,因而降低了他们在问题解决过程中求助的效果、效率。

  总结

  本文介绍了问题解决的心理过程,并在此基础上介绍了影响问题解决的心理因素。然后,以笔者实际经历的例子为基础通过比较专家与新手在问题解决过程中表现出的差异分享了提高软件开发人员问题定位与解决能力的指导意见。需要指出的是,本文所给出的相关指导意见,也可将其看成其有助于我们形成心理定势。因此,面对问题是我们一方面可以借鉴它们,另一方面要注意打破和超越它们。

  参考资源

  • 皮连生,《教育心理学》,第二版。
  • Richard J. Gerrig,Philip G. Zimbardo,Psychology and life, 18th edition。
  • 桑标 等译,Jhon W Santrock著,《毕生发展》,第三版。


通过心理学知识提高问题定位与解决能力(下)相关推荐

  1. Android进阶知识:ANR的定位与解决

    1.前言 ANR对于Android开发者来说一定不会陌生,从刚开始学习Android时的一不注意就ANR,到后来知道主线程不能进行耗时操作注意到这点后,程序出现ANR的情况就大大减少了,甚至于消失了. ...

  2. 模块说和神经网络学说_2021考研312统考心理学知识:大脑皮层与脑功能学说

    312统考心理学,要识记的知识较多.对于备考2021统考心理学考生而言,在基础阶段,应注重牢固核心知识点.接下来,北京文都考研网为心理学考研学子提炼出了"312统考心理学知识:大脑皮层与脑功 ...

  3. 第9件事 产品定位要解决的6个问题

    1.什么是产品定位? "什么是产品定位?产品如何定位?产品定位到底有什么价值?这都非常考验产品经理的功力."产品定位是产品经理的必修课,来不得半点马虎.产品定位一旦出现问题,很有可 ...

  4. linux的cache过高的原因定位与解决echo 3 > /proc/sys/vm/drop_caches

    先说结论解决办法: 一.在crontab定时执行echo 3> /proc/sys/vm/drop_caches清理缓存.治标不治本,过段时间缓存又会增加上来. 二.hcache -top 10 ...

  5. 这 100 个心理学知识你必须了解

    无论是设计网站.应用.软件,还是各种实体设备,你对人性了解得越多,就越能够为用户提供更好的体验.而用户体验完全取决于你对用户的了解程度.用户是如何思考.如何做决定的?是什么促使他们点击网站.购买产品或 ...

  6. kail linux安装软件提示“无法定位软件包”解决方法

    kail linux安装软件提示"无法定位软件包"解决方法 参考文章: (1)kail linux安装软件提示"无法定位软件包"解决方法 (2)https:// ...

  7. 【音频】削波失真(爆音)问题定位与解决

    [音频]削波失真(爆音)问题定位与解决 Why:为什么要解决削波失真问题? What:什么是削波失真,如何定位 用户反馈的现象 音频异常环节定位 音频异常是发生在音频处理的哪个环节? 不同的音频采集方 ...

  8. 游戏检测到计算机性能过低配色,Win7电脑提示是否要更改配色方案来提高性能窗口如何解决...

    在使用Win7系统的过程中,总是会碰到各种各样的问题让用户不知所措,比如最近就有win7系统用户反映说电脑突然弹出窗口提示"是否要更改配色方案来提高性能",对此该如何解决呢?导致此 ...

  9. Unity游戏运行闪退问题定位与解决(标签:Oops、crashed、System out of memory、UnityEngine.AssetBundle:LoadAsset_Internal)

    文章目录 一.闪退问题 二.问题定位与解决 1.结论 2.问题分析 3.解决办法 一.闪退问题 最近Unity工程发布PC平台的包,运行游戏,出现了一个闪退的问题,弹框如下. 根据提示,找到对应的cr ...

最新文章

  1. js获取验证码倒计时效果
  2. 网站建设你够专业吗?——不需说,从色彩搭配就能看出来
  3. Node.js进击基础一(5-5http知识填坑)
  4. 策略模式(stragegy)
  5. Html5实现手机九宫格密码解锁功能
  6. 005. how is RFC to backend determined - maintenance view IWFNDV_MGDEAM
  7. 数组的合并和升序排列_每日“力扣”系列10 下一个排列
  8. @ModelAttribute注解使用
  9. jquery多字段筛选,极简方法
  10. git push reject : pre-receive hook declined
  11. 计算机第四轮学科评估排名,最权威中国高校学科排名,全国第四轮学科评估结果出炉!...
  12. 【软件测试基础知识】SDK是什么?
  13. linux磁盘文件大小排序,Linux中查看磁盘大小、文件大小、排序方法小结
  14. 前苏联切尔诺贝利辐射禁区拍摄到野生水獭吞食鱼
  15. Java 水洼问题 dfs
  16. 手把手教你解决宏基笔记本wifi开关故障(超详细)
  17. grep -q的用法
  18. C语言汉字gbk转utf-8
  19. 看流星在夜空静静滑落—绚烂无比
  20. ui动效 unity_Unity3D 虚拟现实开发(五)-UI篇

热门文章

  1. cmd下载远程linux的文件,Java利用ssh协议实现从远程Linux服务器下载文件和文件夹...
  2. 用java实现:生成13位条形码
  3. 华为服务器网口ip配置文件,服务器远程ip配置文件
  4. AE基础教程(15)——第15章 质量图标和效果开关
  5. 奇虎360公司董事长周鸿祎发布2015新年信
  6. 基于微信小程序的图书馆座位预约系统的设计与实现
  7. 前端鸡汤奉上-好好解解腻
  8. Idea新建项目并推送到远程仓库
  9. LaTeX中的宽度单位em,ex,px,pt
  10. Moviepy自动化视频处理:提取视频里的音乐(eg:MV音乐提取,抖音热门音乐提取)