回答:
箱はありません!
解決すべき特定の問題と、適用される可能性のある一連の制約があります。問題が何であるかを(抽象的かつ実際の用語で考えて)特定のトピックベースの用語とより一般的な用語の両方で定義します。
各制約を調べて(仮定を行わないで)、適用されるかどうか、いつ、どの程度まで適用されるかを確認します。誰が影響するか(目標を忘れないでください)の観点から、および舞台裏から問題を見てください。
仮定をしないでください。
特定の事柄が真実ではないと仮定すると、さまざまな視点を調べることを防ぐことができます。また、他の人が下した既存の決定/仮定に挑戦します-それには正当な理由があるかもしれませんし、そうでないかもしれないし、もはや適用されないものがありました。
抽象的に考えます。
物事をパターンとして、抽象的な用語で見ることを学びます。パターンを見つけたら、同様のことを検討し、そのパターンから現在のものにアクションを適用できるかどうかを確認します。サブジェクトエリアに名前付きパターンがある場合は、それらを学習しますが、それらをクッキーカッターソリューションとして扱わないでください。
抽象的に考えないでください。
常に物事を見るようにしてください-「ユーザー」は人であり、常に論理的または合理的ではないことに注意してください。あなたが作成したものを使用して人々と共感を練習します。
目標を忘れないでください。
「ユーザーにYを許可する方法」などの実際の目標を思い出すのではなく、特定のターゲット/実装(たとえば、「これらのXコントロールをUIに合わせる方法」)で行き詰まるのは簡単です。 )
学習を止めないでください。
一般的な知識は、インスピレーションの大きな源泉になり得ます-多くの問題はすでに誰かによって解決されています-知れば知るほど、現在の状況に当てはまる何かを思い出すかもしれません。
[プログラミング言語]が得意なだけでなく、優れたプログラマーになる。
複数のテクノロジーやテクニックを学ぶことを恐れないでください。複数の「重複する」言語でも、異なる用語で物事を見るのに役立ちますが、さまざまな異なるものがより役立つかもしれません。もちろん、専門/修士する分野をいくつか選んでください。また、複数の異なる言語を習得することで得られる一般的な概念に十分な基礎があることを確認してください。
誰かが助けられないほど経験が浅すぎると思い込まないでください。
あまり知識がないように見える人やプログラミングしたことがない人は、プログラミングの問題に対して役に立たないように見える場合がありますが、だからといって無視する必要があるわけではありません。誰もが異なる視点とスキルセットを持ち、ソリューションへの出発点となる独自の洞察を提供するかもしれません。
幼い子供たちは、特にインスピレーションを与えることができる「汚染されていない」視点の良い情報源になります。
心を開いて、何でもできる限り多くのオプションを探索するために邪魔にならないようにします。プログラミングだけでなく、これを人生で使用してください。
あなたが知っていることだけに固執するなら、あなたは何と比較することは決してないでしょう。そこに行って代替案を探ると、他のやり方を見るようになるでしょう。時間が経つと、関係のないオブジェクトにリンクが見つかることに気づき始めます。楽しんでいるビデオゲームには、まったく関係のない場合でも、作業中のビジネスアプリケーションで見たい機能がいくつかあるかもしれません。電子レンジには、実装したい非常にクールな構成設定がある場合があります。
ボックスを見る方法を学ぶ
ボックスを見て、その制約を理解してください。これらの制約のどれが問題を解決するのに実際に有益であるかを検討し、どれが邪魔をするか、または必要でないかを指摘します。
仮定に言及する答えはまったく同じものであると思われるかもしれませんが、それらがそうであるかどうかはわかりません。問題の領域を知ることも重要です。問題を明確に把握し、すでに解決策を検討している場合は、1つを取り上げて、他の潜在的な解決策が思い浮かぶかどうかを確認できます。
展開あなたの箱を
あなた自身の心であるボックスの外側を考えることはできません。だから、あなたが知っていること、聞いたことがあることを続けてください。他の人にとって面白くないかもしれないものは、あなたの興味を引くはずです。ほとんどの場合、実際には予想外でエキサイティングなものを見つけることができます。
問題を分析しているときに、これらのランダムで興味をそそる情報のすべてが奇妙な形で集まってくることがあります。何が起こるかわかりません。
オッドボールの答え:
楽しさと練習のために、通常の会話で人々が言うことを聞いて、文字通りと選択した単語に別の意味を使用することでそれがどのように機能するかを見てください。これは、しゃれや他の言語の面白い誤用に変わる可能性がありますが、「箱の外で考える」ことを実行するためのかなり頻繁な方法でもあります。
誰もがそのような能力を達成できるかどうかはわかりませんが、あなたがまだやっていないと仮定して、おそらくそこに到達しようとする方法についての私の提案があります:
認知行動療法-これは、自分の脳を「引き戻す」ことに似ています。私の場合、私は、バランスのとれた物事がどのようになりうるかを見ることに慣れており、最初に考えたことを耕すのではなく、反対側を見るようになりました。この本「Mind Over Mood」には、この道を進みたい場合に役立ついくつかの演習があります。これは不安の治療に使用され、うつ病はこのトピックに出くわした方法です。
自助の本-たとえば、フィル博士の最初の本「Life Strategies」には、自分の考えを解き明かそうとする演習があり、場合によっては誠実かつ正直に演習を行うと、1つと同様の結果が得られる可能性があります。ここで機能する本は他にもありますが、一部の人には機能しない本もかなりあります。
膨大な知識-たとえば、あなたはいくつのソート戦略を知っていますか?バブル、シェル、クイック、ヒープ、マージなど、学校で教えたものをいくつか覚えているので、ばかげた知識を吸収することで、問題を解決しようとするさまざまなヒューリスティックのリストを入手できる可能性があります。ここでのヒューリスティックの例には、貪欲であること、分割して征服すること、動的プログラミング、および特殊なデータ構造の使用が含まれます。場合によっては、誰かが最初に考えたよりも大きな箱で考えるのに十分なものをたくさん知っているだけです。;-)
これに対する単一の答えはありません。日常的な日常的な活動であっても、箱から出して思考を定期的に精神的に行使する場合に役立ちます。
前提の逆転 多くの可能なアプローチの1つとして、ソリューションまたは問題の固有の前提の逆転に焦点を当てることができます。
問題から始めます。簡単な解決策、誰もが考えられる解決策を考えてください。次に、このソリューションの根底にある前提は何ですか?または、問題に関する仮定は何ですか?次に、これらの仮定のうちの1つ(またはいくつか)を考えてみてください。または、ある要件に直接対処する代わりに、別のソリューションの副作用としてそれを満たすことができるとしたらどうでしょうか?
大胆になります
ボックスを知る
あなたの考え方を破る
視点を変える
言語を変えてください
問題を次のように考えてください。
表現の変更
もう一方の端から開始
サイズ変更
何かをする。何でも
他の人に尋ねる
自分自身を創造的であると考える人は、仕事やブレインストーミングで一般的に創造的である人だとどこかで読みました。言い換えると、創造的な人とは、単に違う考えを恐れない人であることを強く示唆しています。
「箱の外で考える」ことの大部分は、問題に対処することだと思います。問題をよく理解していると、質問の言葉遣いが誤解を招いたり、実際には明確な解決策が目の前に残っている場合でも、非常に具体的な道を考えてしまうことがあります。先日、stackoverflow.comで質問がありました。特定の文字数(10文字だったと思います)に達したときに、入力テキストボックスをテキストエリアに変換しようとしていました。彼の複雑なソリューションでは、10文字を持ちますが、それを超えるものは何もありませんでした。つまり、入力すると、イライラして10文字を超えるものはすぐに削除されました。
彼のコードを投稿して、多くの人々がそれを修正し、価値を維持するための提案を提供しようとしていました。私は彼がtextareaを保持し、テキストボックスを完全に忘れて、属性行のみを変更することを提案しました。箱の外を見たのは、私がとても賢いからではなく、彼の目的を理解しようとしたからです。そのように言えば、テキストボックスから始めてそれを置き換えるのは馬鹿げているように思えます。
ちょうど私の10セント。;)
ここではさまざまな量のセントを追加しているので、いくつか追加します。
私の多くのクライアントや仲間から一貫して独創的な思想家として一貫して説明されてきた人として、ここにいくつかのヒントがあります。
アルゴリズムはありませんが、ここではいくつかのアクティビティに役立ちます。
1.パズル
私がずっと楽しんでいたことの1つは、脳で楽しんでパズルをすることです。たくさんのパズル、特にMENSAの種類。横方向の思考を必要とする本または2つのMENSAパズルを自分で購入します。行き詰まったら、イライラしないでください。答えを読み、解決方法を学んでください。同様のパズルには同様の解決策があり、解決方法を学習すると、パターンを学習します。
2.ペットプログラミングプロジェクト使用
する言語についてできる限り学びます。ペットプロジェクトを自分用に作成し、暇なときにそれらに取り組みます。特定の言語で何が利用できるかを理解すればするほど、ソリューションの道は広がります。他の人のコードを取得して、別のことをさせます。
3.すべて
を質問する、恥ずかしがらないでください 学習は、あなたが何も知らず、成長したいと認めることから生まれます。高度なものは常にそこから発展するので、基本を知っていることを確認してください。基盤がしっかりしていない場合、その上に構築する知識は常に何らかの形で欠陥があります。
4.予期せぬ
問題が何であるかを正確に知るまで、思いついたアイデアを捨てないでください。最良のソリューションは、多くの場合、最も予想外のアイデアから生まれます。
幸運を。