• ベストアンサー

プログラミング中に壁にぶつかったら

今、プログラミングを勉強しているのですが、 何かと壁に当たることも多いですが、 なんとか乗り越えて達成感を味わうことも多々あります。 最近は書籍のソースコードではなく、自分の頭で考えたような処理を記述できるようになってきました。 数日前から、ある処理について自分で発展させて、コードを書いていますが、一昨日あたりから、どうしてもわからなくなって、八方塞がりになってしまいました。自分でソースをすべてプリントアウトして眺めていても、混乱してきます。わかりそうで、見えてこないんです。だから素直に諦めきれないという状況です。 この丸二日間、悩みましたが結局いまだ理想の処理を実現するコードがかけていません。一部理想どおりにすると、一部に不具合が出るという状態です。 ほかにもやらなければならないことがあるので、 ひとまずその処理を実現させる作業は中断させて、 他のコードを組んだりしようと思っています。 そちらを勉強していくほうが今はためになるかと。 非常に名残惜しいですが・・! 場合にもよると思いますが、 どの程度悩んで分からなければ、 一度その処理に関しては、ストップされますか?

  • shevy
  • お礼率67% (703/1046)

質問者が選んだベストアンサー

  • ベストアンサー
  • ShaneOMac
  • ベストアンサー率39% (356/898)
回答No.5

発明する人もよく言うことですが、発想が浮かぶ瞬間は余暇の間だったりします。ニュートンがリンゴが木から落ちるのを見て・・という話もありますが、必ずしも課題とにらめっこしていて良い結果が得られるというものでもありません。 そういう課題に取り組んでいる場合は、頭のどこかで常にそれについて考えています。考えているからこそ発想が得られるのであって休んだり遊んだりすること自体が発想を生むというわけではありません。机に向かっていると一方向からばかり見つめがちになるのを、そこから離れることによって視点を変えて眺められるようになるということです。そういう意味で「停止」ではなく「中断」をはさむことは時に必要なことです。 以上は一般論ですが、プログラミングについては、どういうプログラムか知りませんが、分からないときはネットを漁ってコード例を探しましょう。先人が提供してくれる良い材料がいっぱい落ちています。そういうものをうまく盗むことがステップアップに必要です。

shevy
質問者

お礼

おっしゃるとおりだと思います。 思考停止ではなく、思考中断。 いい言葉ですね。 停止してしまうと、もう何も浮かんできませんもんね。 これは教訓にしようと思います。 先人のコード例を探す、これもいいですよね。 実践いたします。 ありがとうございました!

その他の回答 (4)

noname#4564
noname#4564
回答No.4

  「壁」の原因は技術上の問題とは限りません。 疲労による集中力、思考力の低下が原因である場合が、案外多いものです。 その場合は、思い切って考えるのを止めてしまい、気分転換することです。日を改めて考え直すと簡単に解決するかもしれません。  

shevy
質問者

お礼

たしかに、集中状態においては、 ひらめきや、道筋がパーっと見える感覚、あります。 それが先日、本日と、もう枯れそうになっていました。 おっしゃるとおりだと思います。 あたまの片隅に常にその処理をイメージしながら、 別のことで気を紛らわそうと思います。 ありがとうございました。

  • Pesuko
  • ベストアンサー率30% (2017/6702)
回答No.3

私の場合アルゴリズムを主に考えます。 間違ったアルゴリズムではいくらやっても壁にあたります。 考えたアルゴリズムの上で自分なりに考えられるパラメーターを頭の中で入力して、ペーパーシミュレーションを実行し、すべて通ればそのアルゴリズムは正しいわけです。 そうすると後は其のアルゴリズムにしたがってコーディングするだけになります。 コーディングする時にはあまり考えません。

shevy
質問者

お礼

アルゴリズムについて全く無知だったので、 検索して調べてみました。 思い付きではなく、誰が組んでも同じようなものが作れないと駄目なんですね。 ということは、机上でまず練りに練った上で、 PCに向かうというのが一番の得策のように思えます。 壁にぶつかって、今回初めてページネーションというものを行ってみました。そこで、結局頭が混乱してしまいましたが、たしかにあたまの中が少し整理されていくような気がしました。 効果がありそうですね。 実践してみようと思います。 ありがとうございました。

  • PAPA0427
  • ベストアンサー率22% (559/2488)
回答No.2

いきなりコーディングしてませんか? きちんと必要な条件はまとめておきましょう。設計がうまくいっても実際のコーディングで壁に当たることも多いですね。 そんな時は誰かに話をします。そうするとあら不思議、解決方法が浮かぶんですね。まあ、相談されてる方は迷惑でしょうが…。

shevy
質問者

お礼

はい、いきなりコーディングしています(苦笑) 駄目ですね、もっと考え直して効率のいいプログラムを組んでいこうと思います。 ありがとうございました。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

まずシステム設計がきちんとなされてないですね。 次にプログラム設計。 それらがちゃんとされていれば、プログラムで悩むことは少ないはずです。

shevy
質問者

お礼

おっしゃるとおりだと思います。 思いつきで組んでいるところがあります。 肉付け肉付けのれん続ではいいものができるわけありませんよね。 ありがとうございました。

関連するQ&A

  • プログラミングに関して

    プログラミングの勉強をしているのですが、一通り基礎的な本は読破しましたが、長いソースプログラムを白紙の状態から自分で書くことなど出来そうにありません。オープンソースなどの長いソースコードは全て誰かが白紙の状態からあれ程までの長いソースコードを書いているのでしょうか?それとも何かを応用したりどこかの関数を引用したりして書かれているのでしょうか?

  • シュミレーションゲームのプログラミング

    私はゲームプログラミングの勉強している学生です 今シュミレーションゲーム(ファイアーエムブレム的な)の作成中なのですが、行き詰ってます。 ビジュアルC++でZキーを押して、マップのキャラクター表示が出たとき、そのマスに出たキャラクターが消えてしまいます。消えないようにするにはどうしたらいいですか? わかりやすく噛み砕いて教えてくれるとありがたいです またC言語のオープンソースのサンプルみたいなのが見れる本やサイトがあれば、教えてください。 そのほか今おすすめの本があったら教えてください 今本当に八方ふさがりで何週間も進まないでいます

  • プログラミング

    13歳からはじめるゼロからのC言語ゲームプログラミング教室という本を見て勉強しているのですが、ソースコードを書いてデバックのデバックなしで開始をすると指定されたファイルが見つかりませんとなります。どなたが原因がわかる人がいましたら回答お願いします。

  • プログラミングを突き詰めて考えると難しい

    プログラミング(C.C++)を勉強しているのですが、プログラムが実行されるまでの流れの”中身”が分かりません。 ■C言語で書いたプログラム ↓ ■コンパイラ ↓ ■マシン語 ↓ ■CPU だと思うのですが中でどのように処理されているかがよく分かりません。 あと、「マシン語によるプログラミングでは、基本的にCPUが直接解釈できるマシンコードと一対一に対応するニーモニックを使用する。この後アセンブラによってニーモニックをマシンコードに変換し、CPUで実行できるようにする。」と書いてるあったのですが、C言語との違いは何なのでしょうか?どちらもマシンコードに変換するのでおなじプログラムだと思うのですが。 色々調べているうちにこれを理解していくにはかなり難しく、マシン語がどのようにCPUで処理されて結果としてでてくるまでの過程など勉強しなければいけない気がするのですが、わかりやすい参考になる本やサイトがれば教えて頂けないでしょうか

  • プログラミングをするAI 数年後には

    プログラミングをするAIの開発が進んでいるそうです。 数年後からは、これまでのように処理コードを1行ずつ書いて行く必要はなくなり、AIが 尋ねられたことを答える ように処理プログラムを書くことができるようになるそうです。 現在、プロジェクトとして大人数でアプリケーションを作成している場合、その主たるアプリ開発のコンセプトやアイディアを決めているのは一部の人達で、大部分は雇われた人達がコードを書いています。 例えば、マイクロソフトワードと同等のワープロソフトを開発した場合、過去と比べてどのぐらいの少数で同じソフトを作成できるようになるでしょうか? プログラミングを書けるAIの開発が進んだ場合、プログラミング人材はどのぐらい削減できることになりますか?

  • みなさまはどのようにプログラミングのスキルを上げましたか?

    自分は独習Cなどである程度プログラミングの練習をつみましたが、そういう練習用ではない、本当のアプリケーションのソースコードはぜんぜんよめません。練習用の短いコードと、実物のコードのレベルの違いに困っています。みなさまはどのようにして、そのギャップを乗り越えましたか?解答よろしくお願いいたします。

  • プログラミング言語の説明

    大学4年の者です.  プログラミング言語で作成したアプリケーションについての論文を作成しているのですが,プログラムの説明(変数や関数)についてはどのように説明を行えばよいでしょうか コメントを記載したソースコードを張り付ける方法も考えましたが,それだと文ではないだろうと考え辞めました. 関数の処理はかきつらねるべきなのか段落に番号を振ってわけるのかなど,同期にプログラミング言語を使った論文を書いている人がいないので困っています.

  • プログラミングの入門者・初心者レベルを超えられている方に質問

    プログラミングの入門者・初心者レベルを超えられている方にお聞きしたいのですが、 「入門書に書かれているコードを記述し、さらに自分なりにコードを改変し、改良を加えていく。」という手順が成り立たない(見当つかない)ものに対し、どのように対応(勉強)されてきて、現在のレベルまでたどり着いたのでしょうか? 「こんなものがつくりたい、ここをこうしたい」 というアイデアはたくさんあるのですが、それを実現するにはどのようなコード記述をしたらよいか、実際にいろいろな入門書を読んでみても見当もつかない場合が多々あります。 基本的に、長年勉強をし続けなければ難しいのでしょうが、入門書どおりのコード記述ではなく、こういうのをやるにはどうしたらよいのか?という視点での勉強方法など、良いアドバイスがありましたら、ご教授願います。 最近は「逆引き大全」みたいな書籍もいろいろ出版されていますが、そういう本を見てみても、自分がやりたいことってなかなか載ってないものですよね。。。

  • プログラミングは歳を取ってからでも習得できますか

    私は勉強ができないのですが、 どうしてもプログラミングを習得したいのです プログラミングはとても頭を使うことなので難しいでしょうか? 私が頭の中で思い描いているようなパソコンソフトを自分で作りたいのですが、 プログラミングの知識&技術がありません 私の頭の中にある理想のソフトを作るにはどれだけのプログラミング知識&技術が必要ですか? また私が「こんなソフトを作りたい」といって、プログラミング技術者に口頭、テキストで伝えて、 それを作れるプログラマーというのは居ますか? プログラミングに詳しい方教えて下さい

  • プログラミング経験者に質問です

    自分は現在プログラミングについて学んでいます。 始めてから2ヶ月ほどなので、 if文やfor文などについては分かるのですが、 いざ何かを作ろうと思うと 全然思うようにできません。 ネットでサンプルコードなどを見ても 何を書いてあるかわからない状態です。 みなさんは、思うようにプログラミングが できるようになるまで どれくらいかかりましたか? また、勉強方法などについても 知りたいです。