如何学习/成为具有开箱思维能力的人?[关闭]


12

在解决每个问题中,总会有人以不同的方式思考,当其他人仅提出5个建议时,他们会提出第六种选择,他们认为“开箱即用”。请告诉一个人如何实现这样的能力?以及实现它需要什么?


9
1)在盒子上切一个洞...
JohnFx 2010年

1
服用大量的迷幻药
NimChimpsky 2010年

3
意识到您和盒子是一回事。
加里·罗

我认为将会有更多答案。
Denys S.

请遵循以下有关此类问题的建议:组织方面
Maniero 2010年

Answers:


17

没有盒子!
有一个特定的问题需要解决,并且可能会遇到一系列限制。找出问题所在(抽象地和实际地思考),用基于主题的特定术语和更一般的术语进行定义。
检查每个约束(不作假设),以查看它们是否适用,何时以及在何种程度上适用。从影响谁的角度(不要忘记目标)以及幕后的角度来看问题。

不要做假设。
如果您假设某些事情是正确的,那么当您认为某些事情不是正确的时,您将阻止自己检查不同的观点。还要挑战别人已经做出的现有决定/假设-可能有充分的理由,或者没有,或者不再适用。

抽象思考。
学习将事物视为模式和抽象术语。发现模式时,请考虑类似的事情,看看是否可以将其应用到当前的事情。如果您的主题领域已命名模式,请学习它们-但不要将其视为切饼机解决方案。

不要抽象地思考。
总是尝试看待事物本身-记住“用户”是人,他们并不总是逻辑或理性的。使用您创建的内容与他人进行同情。

不要忘记目标。
有时很容易陷入特定的目标/实现中(例如“如何将这些X控件放入UI中?”),而不是记住真实的目标(例如“我们如何允许用户执行Y?”)。 )

从未停止学习。
常识可以作为灵感的重要来源-某人已经解决了很多问题-您知道的越多,您可能会记得的东西越多。

成为一名优秀的程序员,而不仅仅是擅长[编程语言]。
不要害怕学习多种技术和技巧-甚至多种“重叠”语言都可以帮助您以不同的术语看待事物,但是各种各样的不同语言可能会有所帮助。当然,您可以选择一些领域来进行专业/掌握,但也要确保您在一般概念上有扎实的基础,可以通过学习多种不同的语言来获得这些基础知识,

不要以为别人没有太多帮助的经验。
有时,看起来不太有知识的人或从未编程的人似乎对编程问题毫无用处-但这并不意味着您应该忽略他们。每个人都有不同的观点和技能,并可能提供独特的见解,使您跳入解决方案。
年幼的孩子尤其可以成为激发灵感的“不变”观点的良好来源。


4
+1您的最后一点应该刻在一些神圣的石头上。无知是杀死许多好主意的原因。
奥德里斯

为“不做假设” +1。这类似于过早的优化。不要太早排除想法。
David

眼睑内部的“永不停止学习”纹身
Javier

4

保持开放的态度,竭尽所能探索任何事情。终身使用它,而不仅仅是编程。

如果您只坚持自己所知道的,那么您将永远没有可以比较的东西。如果您去那里探索替代方案,您将开始看到其他做事方式。一段时间之后,您开始意识到可以在不相关的对象中找到链接。您喜欢的视频游戏可能具有一些您绝对希望在您正在处理的业务应用程序中看到的功能,即使它完全无关。您的微波炉可能具有您想要实现的非常酷的配置设置。


3

学会看盒子

查看框并了解其约束。请考虑其中哪些约束实际上对解决问题有益,并指出哪些约束或不必要。

您可能会认为提及假设的答案是完全一样的,但我不确定它们是否相同。了解问题的领域也很重要。一旦清楚地了解了问题并考虑了解决方案,您就可以拿起一块,看看是否想到了其他可能的解决方案。

展开你的盒子

您永远都不会想到自己的想法。因此,继续扩大您所知道和所听到的。对其他人来说似乎不感兴趣的事情应该使您感兴趣。实际上,几乎总是存在一些细节,您会发现意想不到的令人兴奋的地方。

分析问题时,所有这些随机的,令人困惑的信息位都可能以奇怪的方式汇集在一起​​。您只是永远不知道会发生什么。

奇数答案:

为了娱乐和练习,请听取人们在正常对话中说的话,并从字面上以及通过使用所选单词的替代含义来了解它的效果。这可能会成为双关语或其他令人讨厌的语言误用,但这也是锻炼“跳出框框思考”的一种较常见的方法。


我只是在输入相同的内容。
Kramii 2010年

作为与假设相关的三个答案之一,我想澄清一下,这不是我答案中最重要的方面,而只是我能够表达的第一个答案。作为对此的部分解决方案,我在其前面加上了摘要式的内容,这可能表明我们在思考的方式与首次出现时更相似?(或者也许我仍然缺少您所做的
杰出贡献

1
@Peter Boughton:看来我们对此不一定有不同的看法。但是,当教别人如何去思考时,以不同的重点来描述它的方式更可能使这个概念真正得到理解。
约翰·费希尔

当然-这就是Prog.SE的价值-不需要一个公认的答案;用不同的方式说出相同/相似的内容会很有帮助。
彼得·布顿

2

其中很多要么是实践带来的,要么就是天生的:有些人比其他人更有创造力。但我认为,创新思维的很大一部分来自于知识的广度,以及知道(或具有经验知识)何时将该知识应用于不同的问题。


+1为知识的广度。我发现我在总体上学到了更多的知识,因此在解决问题方面变得越来越快。
Michael K

2

我不确定每个人都能达到这样的能力,但是我建议您尝试达到此目的的方法,前提是您还没有:

  1. 认知行为疗法-可以类似于“重新大脑”。就我而言,我已经习惯了看事物之间的平衡,看待另一面而不是继续思考我最初想到的东西。如果您想走这条路,那本名为“思想上的思考”的书中有一些练习可以对此有所帮助。这是我用于治疗焦虑和抑郁的方法。

  2. 自助书籍-例如,菲尔博士的第一本书“生活策略”中的练习可以帮助您解开思维方式,如果您真诚地进行练习,可能会取得与某人相似的结果。 。可能还有其他本书在这里有用,但也有很多书对某些人不起作用,因此要找到一些对某人有用的书可能是一个反复的尝试。

  3. 丰富的知识-例如,您知道多少种不同的分类策略?我记得在学校教过的一些知识,如气泡,shell,快速,堆和合并,因此有机会通过吸收荒谬的知识,可以掌握各种启发式方法来尝试解决问题。这里的启发式示例包括贪婪,分而治之,动态编程以及使用专用数据结构。在某些情况下,仅仅知道大量的东西就足以在比最初想像的盒子大的盒子中思考。;-)


2

没有唯一的答案。如果您在日常琐碎的活动中定期进行思维开阔的思维活动,这将很有帮助。

逆转假设 作为许多可能的方法之一,您可以尝试着重于逆转解决方案或问题的固有假设:

您从问题开始。考虑一个简单的解决方案,任何人都可以想到的解决方案。然后问问自己:该解决方案的基础假设是什么?或关于这个问题的假设是什么?现在,采用这些假设中的一个(或几个)并问自己:如果放弃/逆转该假设会怎样?或者,如果我可以满足另一个解决方案的副作用,而不是直接解决某些要求,该怎么办?


1

大胆

  • 您准备在别人面前提出古怪的想法吗?
  • 你准备好错了吗?

知道盒子

  • 当您了解什么限制了您当前的想法时,您可以超越它。

打破思维定势

改变观点

  • 考虑一个有不同看法的人,然后猜测他们如何看待问题。
  • 起床走走。

改变语言

认为问题为:

  • 水流经它们的管道
  • 与要求付款的看门人的一系列大门
  • 来自《星际迷航》的战斗

变更表示

  • 画一张图
  • 用一句话表达问题

从另一端开始

  • 尝试从目标倒退。
  • 您在解决正确的问题吗?

变更尺寸

  • 如果您只需要解决一个用户的问题怎么办?
  • 如果您必须做十倍大怎么办?

做点什么。任何东西

  • 尝试先关闭电源,然后再打开。
  • 喝杯茶。

询问其他人

  • 您是否尝试过谷歌搜索?
  • 问一个六岁的孩子。

1
哈哈,我喜欢“问一个6岁孩子”-这是改变观点并避免人们可能会有的偏见的好方法。至少您会得到一个有趣的答案,这可能也很有帮助。:)
Peter Boughton 2010年

0

我在某处读到,那些认为自己有创造力的人通常是在工作或头脑风暴中更有创造力的人。换句话说,它强烈暗示了一个有创造力的人就是一个不怕改变思维的人。

我认为大部分“框外思考”正在解决这个问题。如果您对问题的理解很好,您会发现问题的措词有时会引起误解,或者会导致人们思考一条非常具体的道路,而实际上仍然有一个明显的解决方案摆在您面前。前几天在stackoverflow.com上出现了一个问题,即有人试图将输入的文本框达到一定数量的字符(我认为是10个)后就将其转换为文本区域。在他复杂的解决方案中,它将包含10个字符,但没有超出的字符,这意味着快速沮丧地键入会删除10个字符以外的任何内容。

在发布他的代码后,许多人试图对其进行更正,并提出了保留其价值的建议。我建议他保留文本区域,而完全忘记文本框,只修改属性行。我看到框外的原因不是因为我是一个很聪明的人,而是因为我试图理解他的目标:使文本输入字段随文本的增加而增长。当您这样说时,从文本框开始然后替换它似乎很愚蠢。

只要我的10美分。;)



0

由于我们在这里添加了不同数量的美分,因此我将添加一些。
作为我的许多客户和同行一直描述为开箱即用的思想者的人,这里有一些提示。

没有算法 ..但是这里有一些帮助。

1.拼图
我一直喜欢的一件事是玩弄大脑并做拼图。很多很多的难题,特别是MENSA系列。给自己买一本书或其中两个需要横向思考的MENSA拼图。不要沮丧,如果遇到困难,请阅读答案并学习如何解决。相似的难题将具有相似的解决方案,一旦您学会了如何解决它,就将学习模式。

2.宠物编程项目
尽可能多地了解您使用的语言。为自己制作宠物项目,并在业余时间使用它们。您越了解特定语言提供的功能,解决方案就越多。采纳他人的代码,并使其做不同的事情。

3.质疑一切,不要害羞
如果问问题会让您觉得自己很愚蠢,那么就变得愚蠢,不要为此感到羞耻。学习来自承认您一无所知并想成长。确保您了解基础知识,因为高级知识总是从中发展出来的,并且如果您的基础不够扎实,那么您在此基础上积累的知识将始终在某种程度上存在缺陷。

4.出乎意料
在您完全知道问题出在哪里之前,请不要忽略您想到的任何短暂的想法。最好的解决方案通常来自最意想不到的想法。

祝好运。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.