- 締切済み
やはり自分にはプログラミングの適正がない?
夜分おそくに大変申し訳ありません。 私、プログラミングを始めて若干1年のこの春大学2年生になるものです。 この前も違う質問掲示板で同じような質問をしたのですが、やはりまだ不安なので もう一度皆さんのアドバイスをいただきたい次第であります。別の掲示板で真剣に アドバイスをくださった方、大変申し訳ありません。ですが、もうこれっきりです。 本題に入らせていただきます。 私はこの一年プログラミングを経験したことで、悩んでいることがあります。 それは、自分のアイデアでプログラムが組めないということです。 私は、昔から論理的に考えることが苦手で、「ここはこうすれば行けるな」という考えができません。サークル活動でゲームを作ったのですが、周りに頼ってばかりでした。 教えてもらっても理解できないこともありました。何でこんな発想ができるんだとビックリしてしまいます。 私はサイトで調べてもワケわからないことだらけなのにって何度も思ってしまいます。一年経験したことで、当たり判定や攻撃の仕方など、やったことがあることなら 自分でできるようになりました。しかし、やったことがないこと、自分の中にデータがないことができません。これはプログラムに限ったことではありません。この間も先輩等に付き合わせてしまったのにも関わらず、思うように動きませんでした。 私はやはりプログラミングの世界には不適応なのでしょうか? 動くと確かに嬉しくて仕方がないのですが、動かないと毎回不安になります。 もう少しで新入生も入ってくるので、聞きにくくなりそうです。 大学生なんだから自分で何とかしなければならないのはわかっているのですが、 どうしても皆さんの意見をお聞きしたいのです。よろしくお願いいたします。
- みんなの回答 (16)
- 専門家の回答
みんなの回答
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
#8です。 色々な回答を得られて、色々考えさせられているところかもしれません。 > プログラムだけでなく、私はこうできればいいのになと想像するだけで、 > 行動に移さないことがかなりあります。 これをプログラムの世界で考えたら、『自分の脳内で思い描いたものが、勝手にプログラムとして 出来上がって動作すればいいのに』です。 大した考えもないにも関わらず、です。 夜中に小人が勝手にやってくれると幸せなんですけどね・・・。 出来ない人というのは、内容を掘り下げず、抽象的なまま、大枠でこういうことがしたいと考えていることがほとんどです。 コンピュータは人間ではない、全ての定義とルートを明示しなければならないということを理解した上で 考えるならば、自分に甘えるとかそういうことではなく、きっちり考え始めるはずです。 『いい感じに』、『ちゃらっと』、『察する』 なんてことはコンピュータには通用しませんから。 つまり、論理的思考が持てないというよりは、掘り下げる能力に乏しい、もしくは考えることを放棄していると言えます。 (そういう人に限って、あたかも考慮してたかの態度を取った上で後出しじゃんけんが多かったり口達者で逃げが上手かったりします) そういう人は段階も踏まずに最終的に求めることを調べようとするから、調べ方も下手です。 何か1つの方法が浮かぶ度に、なんでそうするのか、どうやってそれを実現可能にするのか、を 常に考えて1本の道を作り上げることが出来れば、構想は出来上がるはずです。 意外と頭では勝手にできると思い込んでいて、実際やってみようとするとそこの実装部分の考慮が漏れているということがあると思いますよ。 自らを向上させる為の手段としてそれを意識することができない、もしくは意識しても行動が伴わないならば、あまり適正とは言えないと思います。 対人間であったとしても、相手の心情や事情を考慮した上で接したりするのですから、相手がコンピュータなだけですね。 人間味のない、無知なバカに、そいつ(コンピュータ)が理解できる言葉で懇切丁寧に1から説明してあげる能力を持つことです。 対人間と手段は違えど、分かってもらうという目的は同じなわけです。 自分を向上させようとすることが出来ない人は、どのような業種・職種でも適正とは思えません。
- Tasuke22
- ベストアンサー率33% (1799/5383)
他の方の回答とか読んでいて楽しい気分になり、またまた投稿です。 少し具体的な話を書きたくなりました。 論理的思考ということですが、正に論理演算そのものです。 全てのものはand,or,notに分解できると言っても過言では無いでしょう。 これは集合の概念でもあります。 ココらへんを深く勉強していると、世の中の全てをand,or,notしている 自分に気がつくようになるかもしれません。 何人かのプログラムを見ていると、条件が抜けていることが多いです。 考慮抜けというものですね。 例えば、偉い人とバカが居て、働き者と怠け者が居る、 この場合、偉くて働き者の人、バカで怠け者の人の2通りしか考慮しない 人があまりに多いです。 常識的な頭の固さが誰しにも出ますね。 偉くて怠け者、バカで働き者も考える必要がある訳です。 このように条件が2つあると、 横に偉い、バカ、縦に働き者、怠け者の表を書き、 4つの組合せそれぞれを考慮すると、プログラムの精度が飛躍的にアップします。 条件が多い場合に、大きな表を作るのはアホです。 グループ化して抽象化することが基本です。 これにより、4つの組合せという基本だけで、大きな問題も単純化して行けます。 システム-サブシステム-サブサブシステムといった階層化と同じ意味です。 抽象化技術こそ大きな問題を解決する技術です。 プログラミングではクラスの設計にあたりますね。 この辺りを勉強すると、論理的な人と言われるようになるでしょう。 因みに、4つのタイプの人間でバカで働き者だけが不要です。 人に迷惑になることを沢山引き起こすからです。
お礼
3回も回答してくださり、本当にありがとうございました。 なるほど、最初に仰ってることは集合論と呼ばれるものでしょうか? わたしが通っている大学で集合論を取り扱っている数学の講座があるので 受けてみようと思います。 あと、抽象化すると言うはなし、とても面白いです。 こう言ったことを考えるのことで論理的な思考を身に付けることができるのなら、やってみようと思います。 本当にありがとうございました。
- pringlez
- ベストアンサー率36% (598/1630)
プログラミングの適性で最も大切なことは、その作業が楽しいと感じるかどうかだと思います。SEとして十分な能力があるのに「ぜんぜん面白くない、苦痛だ」といって転職する人もいます。 No.5さんのお礼で >例えまぐれでも自分の力で動かしたりすることができると嬉しくてたまりません。 との事なので、あなたは最も重要な適性は持っているのだと思います。 例えば、サッカーか何かを習っている子供で、「サッカーなんて嫌い。でも親がやれというから仕方なくやっている」というのであればやめさせた方がいいと思います。 逆に「うまくないけど好き」というのだったら続けさせたほうがいいと思います。Jリーグの選手になるとか日本代表になったりするのは難しいと思いますし、それ以前に今のチームでレギュラーになれなくて悩む事もあると思います。また年下の子に抜かされショックを受ける事もあるかもしれません。しかしそれでも、好きならやらせてあげたほうがいいと思います。 上手い下手は二の次、好きならやればいい。 ほんとにそういうレベルの話でしかないと思いますよ。悩むような話じゃない。
お礼
ご回答ありがとうございました。 本当に涙が出そうです。 またあしたから頑張れそうです。 確かに好きです。もっと色々なことができるようになるように頑張って行こうとおもいます。
- Raio77
- ベストアンサー率66% (2/3)
No.10です。 2回めの書き込み失礼します。 >楽しいと感じれば続けられると考えていいのでしょうか? いいんです。 「好きこそ物の上手なれ」ということわざもあります。 それに、 >一年経験したことで、当たり判定や攻撃の仕方など、 >やったことがあることなら 自分でできるようになりました。 これですよ、これ! プログラミングに限ったことではないですが、こうやって経験を積んでやりたいことが出来るようになっていくんです。 (これもプログラミングに限ったことではないですが)楽しいと思えるなら是非色々チャレンジしてみてください。 頑張ってください。
お礼
ありがとうございます。 はい、できると本当に嬉しいです。 ですが、出来ないことの方が多くて絶望することが何度もあります。 しかし、たまにできて嬉しいという微かな希望を目指して精進していくつもりです。 本当にありがとうございました。
- foomufoomu
- ベストアンサー率36% (1018/2761)
適正・・・あるとおもいますよ。 町のパソコンスクールでプログラミングを教えても、ほんとにプログラムを作れるようになるのは1~2割だそうです。 「昔から論理的に考えることが苦手で」と書かれているので、やはり残り8~9割ぐみかな。 ここに回答を書いている人は、プログラミングが出来た人ばかりなんでしょう。そういう人にはできない人の気持ちがわかりません。 と言っても、私も「出来た人」なんで、ほんとのところは分かりません。すみませんが、なにかこれといったアドバイスすることもできません。
お礼
ご回答ありがとうございます。 あなたもできる人なのですか。羨ましいです 私もできる人を追い越すことができなくとも 近づけるように頑張って行こうとおもいます。 ありがとうございました。
- satoron666
- ベストアンサー率28% (171/600)
私も大学時代にプログラムを組んでました。 機械語(アセンブリ?)や、C言語、JAVA・・・ 私も、論理的に考えることが苦手です。 でも、プログラムは組めてますよ(笑 プログラムを組むときに、 自分がやりたいことの反対を考えたり(こういう風にはしたくない、とか) 同じ事を繰り返すんだから、ループでいけるな・・・とか。(そんな簡単な話じゃないかもしれませんが) また、プログラムを実行するときに意地悪なユーザーになってテストします。 もしかしたらここでキャンセルするかも。 半角入力でって書いてあるのに全角で入れるユーザーが居るかも。 と、色んな事を考えてテストしていく必要があると思います。 動かない場合も、1行1行テストし、どこが悪いか判断していくのがベストですかね…? >やったことがないこと、自分の中にデータがないことができません。これはプログラムに限ったことではありません。 これは当たり前だと思いますよ? 自分の中に知識が全くないのですから。 できたら天才ですね(苦笑 たぶん、先輩たちも 「この間作ったプログラムの、この部分応用したら使えるな~」とか 過去の経験を活かして作っているのだと思います! 以上、参考まで
お礼
ご回答ありがとうございました。 なんだか私と近い人の答えを聞けて嬉しいです。 でも私は応用することも苦手です。 どうすればいいのでしょうか? やはり経験でしょうか?
- Raio77
- ベストアンサー率66% (2/3)
言いたいことはほとんど皆さんが仰っていますので、私は一言だけ。 「石の上にも三年」 ということわざがあります。 恐らくあなたはプログラミングをやりたくて始めたのだと思います。 (違ってたらごめんなさい) ならば取り敢えず3年(あと2年)続けてみませんか? 3年続けてみてやはり「プログラミングは続けられない」と思えば別の道を探すのも良し。 3年続けて「楽しい」と思えてきたならしめたもの。 まだ1年です。1年では適正は分かりませんよ。 せっかく始めたプログラミング、もう少し楽しんでみては?
お礼
ご回答ありがとうございました。 私はプログラムを勉強したくて今の大学に入りました。 そして、楽しいと感じることもあります。 楽しいと感じれば続けられると考えていいのでしょうか? どちらにしろ、とても元気をくれる回答です。 本当にありがとうございました。
- tsunji
- ベストアンサー率20% (196/958)
プログラムなんてバグがあるのは当然です。 書いたプログラムがデバッグなしに動くなんてどんな天才ですか。 職業プログラマでもありえませんね。不安にならなくていいですよ。 どこがおかしいのかをすぐに発見出来るのが本当のプロです。 名言で「プログラムは思い通りに動かない、書いたとおりに動く」というのがあります。 あとアルゴリズムについては中学高校レベルの数学とか物理をやってれば自ずから見えてきますよ。
お礼
ご回答ありがとうございました。 私はひとつ大きな勘違いをしていたのかもしれませんね。 私は天才なひとは、バグを出さないと思っていました。 もっと勉強します。 しかし、私は自分でバグを見つけることができません。 何かコツでもあるのでしょうか?
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
やりたいことだけ妄想して、本気で取り組んでいない、どうすれば実現できるかを考えようとしてないからでしょう。 本気なら悩んで苦労してでもそれに取り組みますからね。 プログラミングどうのこうのではなく、物事に対する姿勢の問題ですよ。
お礼
ご回答ありがとうございます。 >やりたいことだけを妄想して、本気で取り組んでいない この部分は考えてみればその通りだと感じました。 プログラムだけでなく、私はこうできればいいのになと想像するだけで、 行動に移さないことがかなりあります。 理由はかなり甘えたことですが、もしできなかったらどうしようとかんがえてしまからです。 もっと真剣に、そしてぜんりょくでむきあってみます。 本当にありがとうございました。
- kmee
- ベストアンサー率55% (1857/3366)
「論理的に考えることが苦手」とありますが、それだと、プログラミング以前に「大学生」として向いてない、ということにもなりかねません。 1年だと高校の延長みたいな教養科目がほとんどですが、2年以降は専門科目が増えます。 考察してレポート、という機会も増えます(特に理系) 「論理的に考えることが苦手」だと、最悪「卒論が出せない→卒業できない」ということになります。 論理的思考は、訓練である程度身に付けることができます。 図書室や書店で参考書を探してはどうでしょうか。 どこまでできるかは、あなた次第ですが。 だれだって、自分の引き出しに無いものを出すのはとても難しいことです。 それを、自分の引き出しにあるものをうまく組合せて対応しているのです。 プログラミングに関してだと まずは「自分が手でやるとしたら、どんな風にやるだろうか」を考えてみましょう。 そして、まずは、その方法をそのままプログラミング言語で表現してみましょう。 変に「かっこいい方法」とか考えないことです。
お礼
ご回答ありがとうございました。 >論理的思考はある程度身に付けることができる この言葉に少し救われたような気がします。 学校の図書館で探してみます。 おすすめの本を教えていただけると嬉しいです。 >自分の引き出しにあるものを組み合わせている。 これなのですが、そうなんです。これが苦手です。 人のプログラムを読んで、自分で自分なりのプログラムに書き換える。 先輩や学校の教授もよく言っているのですが、これがなかなかできません。これは単に知識が足りないだけでしょうか?それとも単純に私の頭が悪いのでしょうか?
- 1
- 2
お礼
2回も回答してくださり、本当にありがとうございます。 >考えることを放棄している これです。自分でもとても痛感しています。後出しじゃんけんしているかどうかはわかりませんが、これはやはりよくないことだと私も反省しています。これだとやはり考える力はついてきませんよね。 確かに調べかたも下手です。 結局は気持ちの問題ということでしょうか? もっと向上心を持って行こうとおもいます。 本当にありがとうございました。