コンピューターの前に座っているときに問題を解決できない場合でも大丈夫ですか?[閉まっている]


12

私は趣味のプログラマーであり、初心者です。ほとんどの場合、コンピューターの前に座っている間は問題を解決できません。たとえば、ある数字が別の数字の力かどうかを調べようとしていました。ペンと紙をつかんで問題を分析するまで、解決策がわかりませんでした。およそ3分でそれを解決し、Pythonでスクリプトを作成しました。

コンピューターの前に座って問題を解決できる場合もありますが、苦労します。それは大丈夫ですか?


6
私にとってこれは問題ではありませんし、実際、多くの人がコンピューターを凝視しすぎており、最終的にはこの問題の程度が低いことに気づきません。プロのプログラミングの多くは、宿題として通常与えられるトリッキーな論理式の代わりに非常に手間のかかる変更を伴います。少なくともそれらを達成できれば、それはそれほど大きな問題ではありません。
Katana314

2
プログラミングについてより理にかなっているように、質問を書き直したいと思うかもしれません。
スヌープ

8
これは完全に主観的です。誰もが異なる方法で学び、働きます。あなたのために働くことをしてください。

7
コンピューターの前は、問題を解決しようとする最悪の場所になる可能性があります。なぜなら、考える必要があるときにタイピングを開始したくないからです。多くの場合、機械から逃げる方が良いのは、行動起こさないと思わせるからです。私の最も難しい問題のほとんどは、朝オフィスに歩いて解決されました。
ロボットをゲット

2
また、問題がどれほど難しいかという問題もあります。あなたがより多くの経験を積むにつれて、今では難しいいくつかの問題が簡単になります。しかし、それはあなたがさらに難しいものを解決できるようになることを意味しています。私自身は、ハイキングやクロスカントリースキーをしながら、本当に難しいものの多くを解決しています。
-jamesqf

回答:


34

私は最も難しい問題を解決する傾向があります。

  • ホワイトボードの前で(時には何も描かずに、問題を視覚化する方法を考えるだけで解決策につながることがあります)
  • 同僚に説明しながら
  • 窓の外を見る
  • 散歩しながら
  • シャワーの下で
  • トイレで

モニターから離れることは、実装をタイプアウトするだけでなく、問題自体に集中するのに非常に役立ちます。

問題解決はあなたの頭の中で起こります。プログラムコードを入力するだけで、ソリューションをコンピューターに説明できます。


1
ありがとうございました!あなたが正しいと、私はコンピューターから離れれば離れるほど、問題に集中できます。
マフムードムハンマドナゲエブ

2
私は机にゴム製のアヒルを置いておくよう提案した本を読んだのを覚えています(残念ながら覚えていません)。
ロボット

7
@StevenBurnapこれは、ラバーダックデバッグと呼ばれ、Addison WesleyのThe Pragmatic Programmerで読んでいると思われます。
フィリップ

2
「プログラムコードを入力することは、ソリューションをコンピューターに説明する方法です。」–アランペルリスは次のように述べています。私はむしろこの方法を見たいと思います:コードをタイプすることはあなたのソリューションを同僚に説明する方法です。ひと(今から6か月後を含む)がそれを理解できるような方法でソリューションを明確に説明すると、それはまたマシンによって実行可能になるという事実は、厳密に説明された副作用にすぎませんあいまいさはありません。...
イェルクWミッターク

4
再:ゴムダッキング。テディベアについても同様の話があります。MITのチューターは、テディベアをオフィスの外に座っていました。クマに問題を説明した後にのみ、ノックすることが許可されました。学生の半数は、クマに説明しながら問題を理解したため、ドアをたたくことはありませんでした。StackExchangeで適切に記述され、研究され、フォーマットされ、詳細で、高品質な質問を作成すると、同じ効果が得られる可能性があります(理由の1つ)。
ヨルグWミットタグ

7

これはいい質問だと思います。これをどのように解釈するかから、あなたが尋ねていると思うのは、「定期的にコンピュータから離れなければならないということです」ですか?

立ち上がって他の人に自分の考えを尋ねたり、問題を解決するためにスクラッチペーパーを取り出して方程式を書き留めたりする必要がない日が来るとは思いません。また、プログラミングをさらに始めると、ダイアグラム/アーキテクチャを事前に作成するまで、コードの作成を開始することさえできないでしょう。

私は大学にいたときにデータ構造のコースを受講していましたが、ソートアルゴリズムの設計に問題がありました。教授に助けを求めたとき、彼は事前に問題について考えていなかったことを知っていました。彼が私に言った最初のことは、私はまだコードを書き始める準備ができていなかったということでした。そこで彼は一枚の紙を引き出し、いくつかの正方形を描いてから、配列から数字を入れました。次に、彼は正方形を移動する写真をさらに2枚描き、ソートアルゴリズムがどのように機能するかを視覚的に示しました。

あなたの心をクリアし、問題を解決するためにできることがいくつかあります:

  • 休憩する
  • 同僚と話す
  • 問題/概念のホワイトボード
  • 寝て!

真夜中に解決策で目覚めても驚かないでください。


1

できれば、効率的なプロのプログラマー/開発者になることはきっと役立つと思います。ただし、ソリューションをプログラムロジックに変換する際に問題について考えるには、トレーニングが必要です。したがって、これらのタスクをシリアル化しても問題はありません。両方を正常に完了できればよいのです。コーディングを開始する前に最初から最後まで解決策を考えることには確かにメリットがありますが、これには多少辛抱強い性格である必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.