在解决每个问题中,总会有人以不同的方式思考,当其他人仅提出5个建议时,他们会提出第六种选择,他们认为“开箱即用”。请告诉一个人如何实现这样的能力?以及实现它需要什么?
在解决每个问题中,总会有人以不同的方式思考,当其他人仅提出5个建议时,他们会提出第六种选择,他们认为“开箱即用”。请告诉一个人如何实现这样的能力?以及实现它需要什么?
Answers:
没有盒子!
有一个特定的问题需要解决,并且可能会遇到一系列限制。找出问题所在(抽象地和实际地思考),用基于主题的特定术语和更一般的术语进行定义。
检查每个约束(不作假设),以查看它们是否适用,何时以及在何种程度上适用。从影响谁的角度(不要忘记目标)以及幕后的角度来看问题。
不要做假设。
如果您假设某些事情是正确的,那么当您认为某些事情不是正确的时,您将阻止自己检查不同的观点。还要挑战别人已经做出的现有决定/假设-可能有充分的理由,或者没有,或者不再适用。
抽象思考。
学习将事物视为模式和抽象术语。发现模式时,请考虑类似的事情,看看是否可以将其应用到当前的事情。如果您的主题领域已命名模式,请学习它们-但不要将其视为切饼机解决方案。
不要抽象地思考。
总是尝试看待事物本身-记住“用户”是人,他们并不总是逻辑或理性的。使用您创建的内容与他人进行同情。
不要忘记目标。
有时很容易陷入特定的目标/实现中(例如“如何将这些X控件放入UI中?”),而不是记住真实的目标(例如“我们如何允许用户执行Y?”)。 )
从未停止学习。
常识可以作为灵感的重要来源-某人已经解决了很多问题-您知道的越多,您可能会记得的东西越多。
成为一名优秀的程序员,而不仅仅是擅长[编程语言]。
不要害怕学习多种技术和技巧-甚至多种“重叠”语言都可以帮助您以不同的术语看待事物,但是各种各样的不同语言可能会有所帮助。当然,您可以选择一些领域来进行专业/掌握,但也要确保您在一般概念上有扎实的基础,可以通过学习多种不同的语言来获得这些基础知识,
不要以为别人没有太多帮助的经验。
有时,看起来不太有知识的人或从未编程的人似乎对编程问题毫无用处-但这并不意味着您应该忽略他们。每个人都有不同的观点和技能,并可能提供独特的见解,使您跳入解决方案。
年幼的孩子尤其可以成为激发灵感的“不变”观点的良好来源。
学会看盒子
查看框并了解其约束。请考虑其中哪些约束实际上对解决问题有益,并指出哪些约束或不必要。
您可能会认为提及假设的答案是完全一样的,但我不确定它们是否相同。了解问题的领域也很重要。一旦清楚地了解了问题并考虑了解决方案,您就可以拿起一块,看看是否想到了其他可能的解决方案。
展开你的盒子
您永远都不会想到自己的想法。因此,继续扩大您所知道和所听到的。对其他人来说似乎不感兴趣的事情应该使您感兴趣。实际上,几乎总是存在一些细节,您会发现意想不到的令人兴奋的地方。
分析问题时,所有这些随机的,令人困惑的信息位都可能以奇怪的方式汇集在一起。您只是永远不知道会发生什么。
奇数答案:
为了娱乐和练习,请听取人们在正常对话中说的话,并从字面上以及通过使用所选单词的替代含义来了解它的效果。这可能会成为双关语或其他令人讨厌的语言误用,但这也是锻炼“跳出框框思考”的一种较常见的方法。
我不确定每个人都能达到这样的能力,但是我建议您尝试达到此目的的方法,前提是您还没有:
认知行为疗法-可以类似于“重新大脑”。就我而言,我已经习惯了看事物之间的平衡,看待另一面而不是继续思考我最初想到的东西。如果您想走这条路,那本名为“思想上的思考”的书中有一些练习可以对此有所帮助。这是我用于治疗焦虑和抑郁的方法。
自助书籍-例如,菲尔博士的第一本书“生活策略”中的练习可以帮助您解开思维方式,如果您真诚地进行练习,可能会取得与某人相似的结果。 。可能还有其他本书在这里有用,但也有很多书对某些人不起作用,因此要找到一些对某人有用的书可能是一个反复的尝试。
丰富的知识-例如,您知道多少种不同的分类策略?我记得在学校教过的一些知识,如气泡,shell,快速,堆和合并,因此有机会通过吸收荒谬的知识,可以掌握各种启发式方法来尝试解决问题。这里的启发式示例包括贪婪,分而治之,动态编程以及使用专用数据结构。在某些情况下,仅仅知道大量的东西就足以在比最初想像的盒子大的盒子中思考。;-)
大胆
知道盒子
打破思维定势
改变观点
改变语言
认为问题为:
变更表示
从另一端开始
变更尺寸
做点什么。任何东西
询问其他人
我在某处读到,那些认为自己有创造力的人通常是在工作或头脑风暴中更有创造力的人。换句话说,它强烈暗示了一个有创造力的人就是一个不怕改变思维的人。
我认为大部分“框外思考”正在解决这个问题。如果您对问题的理解很好,您会发现问题的措词有时会引起误解,或者会导致人们思考一条非常具体的道路,而实际上仍然有一个明显的解决方案摆在您面前。前几天在stackoverflow.com上出现了一个问题,即有人试图将输入的文本框达到一定数量的字符(我认为是10个)后就将其转换为文本区域。在他复杂的解决方案中,它将包含10个字符,但没有超出的字符,这意味着快速沮丧地键入会删除10个字符以外的任何内容。
在发布他的代码后,许多人试图对其进行更正,并提出了保留其价值的建议。我建议他保留文本区域,而完全忘记文本框,只修改属性行。我看到框外的原因不是因为我是一个很聪明的人,而是因为我试图理解他的目标:使文本输入字段随文本的增加而增长。当您这样说时,从文本框开始然后替换它似乎很愚蠢。
只要我的10美分。;)
由于我们在这里添加了不同数量的美分,因此我将添加一些。
作为我的许多客户和同行一直描述为开箱即用的思想者的人,这里有一些提示。
没有算法 ..但是这里有一些帮助。
1.拼图
我一直喜欢的一件事是玩弄大脑并做拼图。很多很多的难题,特别是MENSA系列。给自己买一本书或其中两个需要横向思考的MENSA拼图。不要沮丧,如果遇到困难,请阅读答案并学习如何解决。相似的难题将具有相似的解决方案,一旦您学会了如何解决它,就将学习模式。
2.宠物编程项目
尽可能多地了解您使用的语言。为自己制作宠物项目,并在业余时间使用它们。您越了解特定语言提供的功能,解决方案就越多。采纳他人的代码,并使其做不同的事情。
3.质疑一切,不要害羞
如果问问题会让您觉得自己很愚蠢,那么就变得愚蠢,不要为此感到羞耻。学习来自承认您一无所知并想成长。确保您了解基础知识,因为高级知识总是从中发展出来的,并且如果您的基础不够扎实,那么您在此基础上积累的知识将始终在某种程度上存在缺陷。
4.出乎意料
在您完全知道问题出在哪里之前,请不要忽略您想到的任何短暂的想法。最好的解决方案通常来自最意想不到的想法。
祝好运。