こんにちは。
こんなことをこのような場所で書き込んで大丈夫かわかりませんが、あまりにも不安なので、ここで書かせていただきます。
私は現在情報系の大学に通う大学1年生です。プログラミングは大学生になってから始めました。高校時代は理系ではありませんでした。
タイトルの通り、私は、バグやロジックを自分で考えることが苦手です。先日、大学のサークル活動で、ゲームを作りました。
無事完成させることはできたのですが、先輩に手伝ってもらったり、助けてもらってばかりで、すごく悔しかったです。
ネットで調べても、わからないところがたくさんあるし、教えてもらってもすぐに理解できないことがあります。私の同年代(彼らも私と同じで、大学からプログラムを始めた初心者です。)は、個人で考えたりできるのに、私だけ、周りに頼ってばかりで、正直劣等感を感じることがあります。入門書に書いてある例題でもなかなかうまくいかず、答えを見てしまいます。この時が本当に悔しくてたまりません。定期テストは暗記で行ける内容だし、簡単であったため、高得点を取ることができましたが、自分では納得していません。
皆さんはどのようにして自分でプログラムを考えることができるようになりましたか?
もしかして、私はプログラミングに向いていないのでしょうか?
こんなことをここで聞くような内容ではないかもしれませんが、真剣な悩みです。
どうかアドバイスのほうをよろしくお願いします。
自分でバグやロジックを考えられない
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: 自分でバグやロジックを考えられない
私の経験では、はじめからすんなり理解する人と時間がかかる人がいる様です。
あと、どうしても超えられないレベルも有る気がします。それは、たぶんどうにも出来ないものです。
時間がかかる人は、試行錯誤して悩んでいてある日突然、目の前が開けたと言っていました。
その時からプログラミングのイメージが急に掴めるようになったと言ってましたので努力は無駄ではないんだと思います。
人のやった方法でうまくいくとは限らないので、諦めずに色々とやってみてください。
※ 文系プログラマも沢山いるので、理系文系は関係ない気がします。ただ、ゲームだと数学の苦手意識が邪魔するかもですね。
【追記】
プログラムはコンピュータに支持する一種の手順書です。
微に入り細に入り、細かい手順をイメージして箇条書きに書けるなら出来るんだと思います。
例えば人に対して、曖昧さを排除した作業マニュアルを書くとどうなるかとかイメージトレーニングになるかと思います。
※ 例としてインスタント・ラーメンを作るを作業手順として書き出してみてください。「お湯をわかす」のも細かく支持する必要のあるレベルで考えます。じゃぐちをひねるも右にひねるとかのレベルから。すごく長ったらしい物ができるはずです。出来たマニュアルが長くないとしたらイメージが足らないんです。
あと、どうしても超えられないレベルも有る気がします。それは、たぶんどうにも出来ないものです。
時間がかかる人は、試行錯誤して悩んでいてある日突然、目の前が開けたと言っていました。
その時からプログラミングのイメージが急に掴めるようになったと言ってましたので努力は無駄ではないんだと思います。
人のやった方法でうまくいくとは限らないので、諦めずに色々とやってみてください。
※ 文系プログラマも沢山いるので、理系文系は関係ない気がします。ただ、ゲームだと数学の苦手意識が邪魔するかもですね。
【追記】
プログラムはコンピュータに支持する一種の手順書です。
微に入り細に入り、細かい手順をイメージして箇条書きに書けるなら出来るんだと思います。
例えば人に対して、曖昧さを排除した作業マニュアルを書くとどうなるかとかイメージトレーニングになるかと思います。
※ 例としてインスタント・ラーメンを作るを作業手順として書き出してみてください。「お湯をわかす」のも細かく支持する必要のあるレベルで考えます。じゃぐちをひねるも右にひねるとかのレベルから。すごく長ったらしい物ができるはずです。出来たマニュアルが長くないとしたらイメージが足らないんです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 自分でバグやロジックを考えられない
こういう問題は「プログラミングだから」とかあまり関係ない気がします。
私はプログラマとして仕事をしている傍ら、
プログラミングではないのですがあるものを教えるインストラクターを副業にしています。
そこでの経験からの話しなのですが、
初めて数ヶ月~1年くらいで「自分は出来ない、周りより劣ってる」と嘆く人が多いです。
そういう人にいつも言うのは、
「とりあえず1年頑張る、1年頑張れたら、3年頑張る、そしたら5年、そして10年頑張る。それでも出来ないと思うなら初めて嘆いたらいい」です。
つまり私からしてみたら1、2年程度は「ほんの少しかじった程度」くらいだと思うし、
初めはみんな出来なくて当たり前だと思っています。
もしみんな初めからできるのであれば、人から教わるということや勉強・学習と言うのはこの世に存在しないはずです。
たぶんhetareshounenさんの周りも「他の人は自分より出来てる」と思ってる人が多いと思います。
そういうものです。
ちなみに私の場合、プログラミングを始めたのは小学生の頃で、
作ったものを初めて人に触らせたのが大学生の頃なので、
ある意味そうとう下積みがあったな、と思います。
あと成長速度に一番影響があるのは「好きになれるか」ということです。
好きと好きではないだと桁違いに違いますよ。
私はプログラマとして仕事をしている傍ら、
プログラミングではないのですがあるものを教えるインストラクターを副業にしています。
そこでの経験からの話しなのですが、
初めて数ヶ月~1年くらいで「自分は出来ない、周りより劣ってる」と嘆く人が多いです。
そういう人にいつも言うのは、
「とりあえず1年頑張る、1年頑張れたら、3年頑張る、そしたら5年、そして10年頑張る。それでも出来ないと思うなら初めて嘆いたらいい」です。
つまり私からしてみたら1、2年程度は「ほんの少しかじった程度」くらいだと思うし、
初めはみんな出来なくて当たり前だと思っています。
もしみんな初めからできるのであれば、人から教わるということや勉強・学習と言うのはこの世に存在しないはずです。
たぶんhetareshounenさんの周りも「他の人は自分より出来てる」と思ってる人が多いと思います。
そういうものです。
ちなみに私の場合、プログラミングを始めたのは小学生の頃で、
作ったものを初めて人に触らせたのが大学生の頃なので、
ある意味そうとう下積みがあったな、と思います。
あと成長速度に一番影響があるのは「好きになれるか」ということです。
好きと好きではないだと桁違いに違いますよ。
Boogaloo is funk feelin'.
Re: 自分でバグやロジックを考えられない
わたしは、自分のやりたいことを分解して知っていることに置き換えているだけです。hetareshounen さんが書きました:皆さんはどのようにして自分でプログラムを考えることができるようになりましたか?
そういう点からすれば、いまでも自分で考えているとは、まったく思えません。
自分では何も考え出せないので、常に勉強です。
掲示板を巡って自分では機会を得ない問題や解法に触れるのも勉強だと思っています。
わたしもプログラミングを始めたのは小学生の頃で、やりたいことがそこそこできるようになるのに数年掛かりました。
そこそこできたといってもいまみたらそうとうにショボイものです。
できるようになったというより、やりたいことと知っていることのバランスが取れたというか妥協を覚えたといったほうが正確ですね。
それまではひたすら真似をしているだけでした。
会社で年下の同僚数人に、昼休みを使ってゼビウスふうのスクロールシューティングゲームを作るのを教えたことがあって、皆同じように作れるようになったのですが、それでも「自分はプログラミングに向いてない」と言っていた者がいました。
教えなくてもアレンジしたりとても積極的に見えたんですけどね。
考えはいろいろなんだなと思いましたね。
Re: 自分でバグやロジックを考えられない
ロジックはともかく、「バグを考える」とはどういうことを指しているのか、hetareshounen さんが書きました: バグやロジックを自分で考えることが苦手です。
よくわかりません。
「出てしまったバグを取り除く」という意味の「デバッグ」のことでしょうか。
で、「バグを自分で考える」とは、「デバッグする過程において、どこに不具合があるかを自分で考える」という
意味でしょうか。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: 自分でバグやロジックを考えられない
どんなバグを出しそうかを考え、それに対する撃墜ケースを書く、というようなことでしょうか?box さんが書きました:ロジックはともかく、「バグを考える」とはどういうことを指しているのか、hetareshounen さんが書きました: バグやロジックを自分で考えることが苦手です。
よくわかりません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)