- 締切済み
プログラミングを勉強しても理解できません。
2006年春から専門学校に通ってプログラムなどSEになるための勉強をしてるのですが、まったくと言っていいほど理解できていません。 落第しない程度にはテストの点も取って、課題もこなしたのですがゼロから新しいプログラムを作れと言われると何も作れません。 就職も決まっていて卒業制作にも取り掛かっているのですが理解していないので進むはずがありません。 勉強量が足りないと言われてしまったらそれまでなのですがどうしたらゼロからコードを書けるようになると思いますか?なるためにはどういった勉強をしたらいいと思いますか?今SE、PGとして働いている方達はどんな勉強の仕方をしたのでしょうか? そのあたりをできるだけ詳しく教えてほしいです。 学校で勉強していたのはHTML、CSS、JavaScript、PHP、JAVA…XMLもやりましたがさっぱりです。FLASH、ActionScriptも多少触りました。インタプリタ系がメインでした。コンパイラ型の言語はJAVAだけです。 取った資格はSJC-Aとドットコムマスターのシングルスターです。 SJC-Aは一昨年取ったもので去年はほとんどJAVAに触ってないので忘れてしまっていることが多いです。 どうぞよろしくお願いします。
- みんなの回答 (7)
- 専門家の回答
みんなの回答
- nitro-boom
- ベストアンサー率0% (0/4)
実は理解することは重要ではない、と言ったらわかってもらえるでしょうか。 私も何度も薦められた良書と言われた本を片手にプログラミングの課題をこなしましたが、 こなせても、わかったんだかわかってないんだか、充実感がありませんでした。 結局、勉強のための勉強が問題だったとアトでわかりました。 何か作ってみて、足りないものがあれば調べて使う。 その「具体的な経験」を、あとから振り返ってみてみんな「理解した」と言っているんですね。 「理解」というよりは「充実した」から大手を振ってるだけかもしれません。 本と課題だけでは、「理解」しても「充実」しないのが問題点ではないでしょうか? どちらも形に残りませんからね。 ぜひ小さなものでいいので何か作ってみてください。 パズル系などがオススメです。 学校の講義ほど深い内容ではありませんが、 http://top-10-algorithms.sl-jp.com/php/ こういったステップを踏んでサービスなど作ってみてはいかがでしょう?
理解をしているけど、利用方法が分からないって感じではないのでしょうかねー。 私も、Perl,PHPから始めて、delphiに手を出していますが、自分の興味のある分野しか分かりません。 オブジェクト指向にも興味はあったのですが、作ったとしても小さなフリーソフト、Perl、PHPは自分のHPだけなので、すっかりあきらめました。 オブジェクト指向が分からなかった訳ではありません。 勇気ある撤退です。(苦笑 その分、ライブラリーや関数の渡し方には、再利用できるように作っているつもりです。 ゼロからコードは、自分が作りたいものを作ったらいいんじゃないでしょうか? SEは、知り合いにいますが、基本お客の要望に応えるだけで、「こういった仕様でデータを渡すので、こういった結果を返してくれ」ってプログラムを作っているだけのようですよ。 まぁ、下請けの下請けのようですが。 学生の頃は、特に勉強とかではなく、自分の好きなものや課題のプログラムを作っていたようです。 私も、時々しますが、一度作った課題を、再度別の方法や新しい方法で作り直すのも、おもしろいですよ。 メモリーの管理方法や早さにこだわったり。 HPの方が得意そうなので、HPを作ってみてはいかがですか? 私は、時々、自分のHPで、時間があるからおもしろそうなソフトを作ってもいいよー。と発表する事があります。
- zwi
- ベストアンサー率56% (730/1282)
まず一本の言語に絞り込みましょう。 次に簡単な問題で良いのでネットや教科書などの答えを見ずに一から書けるか確認してみてください。例えば、バイナリーサーチとかバブルソートを0から書けますか?そこでつまずく様ならプログラムを書くための最低限の能力が身に付いていません。 書けない場合プログラム言語で書けなくても箇条書きでプログラムの説明が書き出せるか試してみてください(人に作業してもらう為の手順書だと思って書きます)。 これがクリアできるなら、まず既存の簡単なプログラムを自分なりに改造して高機能にしてみるというのが勉強になると思います。 最後に、いつも私が出す問題です。 「Fizz-Buzz問題」 1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。 これを参考書やWEBサイトを見ずに問題を見た瞬間から何分でプログラムできますか? (1)2分以内。あなたはプログラマとして問題ありません。 (2)10分以内。少しプログラミング練習不足です。 (3)30分以内。プログラミングの練習不足です。身に付くまで多くのプログラムを行いましょう。 (4)できない。プログラムと言うものが理解できていません。簡単な問題を一から始めたほうが良いと思います。
- ralf124c
- ベストアンサー率52% (232/446)
以前講師をしておりましたので状況が良くわかります。 授業を単調にこなすだけでは(授業内容しだいですが)確かに創造力やセンスまではなかなか身につかないと思います(趣味でやってないなら実務経験が無いに等しいから)。資格そのものの是非はともかく合格取得できるだけの実力は確実についているはずです。 就職先が決まっているのでしたら、就職先から事前に学習しておかなければならないようなことを伺って、事前研修のような形で課題とかを出してもらってはどうでしょうか(仕事に関連した課題が出されるはずです)。在学中には講師など人に聞ける環境が整ってますからチャンスは今のうちかと思います。
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
まず、こういったものを作る!と決めたとき、 なにがあってなにをどうしたいか、どうなるか、イメージして要件や概要・詳細を書き出す事が出来ますか? それが出来ないのならばプログラム云々の問題ではありません。 イメージを膨らませて順を追ってまとめる力がない事になります。 その後、書き出した内容をプログラムに置き換える事が出来ますか? それが自分の知識では出来ないという判断になるならば、 可能とするプログラムの模索・代替案の見出しを行えますか? 出来ないならば、それはプログラミングの経験と、つまづいた時に解決する為の手段を見出す経験が少ないだけです。 この面に関しては#1さんの回答通りだと私も思います。 何でもいいからまずは何か自分で考えたものを作るのがいいと思います。 ペイントでもメモ帳でもショッピングカートでも。(知識がなくても) その上でつまづいて、悩んで調べまくって完成させる。 出来たプログラムは苦労と努力の賜物です。結果的に凄い汚いプログラムだとしても。 それがないと、こういう時はこういうプログラムを書けばいいな、という 直感的レパートリー?が増えていきません。 それでいて、ここのこれはもっと簡潔に書けないか?と疑問を持って調べたら、 他人が素晴らしいコードを公開していたり、と勉強になります。 但し、初めてやる・新卒だからと言って、仕事を行う上で多少は考慮して もらえるでしょうが、凄い長々と時間を取ってくれるはずもないので それをやるなら今のうちが一番いいですよ。時間有り余ってるので。
お礼
回答ありがとうございます。 書き出すことはできます。出来ていると思います。 でもプログラムに置き換えられるかと聞かれると…出来ません。。。 何にも思いつきません。 つまり調べて作るなり書きまくるなりして自分のプログラムの引き出しを増やせってことですよね。今卒業制作の真っ最中なのでチャレンジしてみます。ありがとうございます。
- oji32
- ベストアンサー率21% (38/180)
勉強してから初めて作りたい物を考えるのではなく、 作りたい物を考えてから勉強するほうがうまくいきました。 なになにしたい と言うのはありませんでしょうか? それが、勉強したいという意欲につながるはずです! 就職も決まっているということですので、その点の心配は何もないのですから、言語は関係なく何か作りたいものを見つけてみてはいかがでしょうか? どんなにちっぽけなプログラムでも構いません。一度作り終えると、次への意欲がわくはずです。がんばってください!
お礼
回答ありがとうございます。 作りたいものはたくさんあるんですが… 作りたいものに近いものを検索して見つけて、ソースコードを見てみると難しすぎて(見たことない文が書かれていたり)何から手をつけていいのかわからなくなってしまうんです。やはり理解してないから何も書けないのかなーと思ってここで聞いてみたんです。
何でもいいから、ただひたすらソースコードを書くことでしょう。あんまり時間もないようですから、あちこちに首を突っ込まず、例えばPHPなど1つに専念したほうがよいと思いますよ。 今まで、どういう形で勉強していたのでしょうか。教科書となる本を読み、それを覚える、という感じでしょうか。どれだけ、実際にソースコードを書いてきましたか? 授業を、「暗記科目」だと思ってませんでしたか? まず、今まで授業で登場したソースコードをすべて自分で書いて動かしてみてください。ソースコードは「見る」だけでは理解できるようにはなりません。自分で「書く」ことが何より重要です。プログラミング力は、「どれだけソースコードを書いたか」で決まってくると私は思っています。 あとは、ちょっとでもわからないことがあれば、すぐさまヘルプやドキュメントを調べる習慣をつけましょう。見たことない単語が出てきたらすぐに調べる。そうした、面倒で地道な作業をひたすら続けていくことが、上達の一番の近道でしょう。
補足
回答ありがとうございます。 そういわれるとあまりコードを書いた覚えがない気がします。 課題なんかは教科書や自分で買ってきた本で調べたり、ネットでググりながらなんとかやってきました。 家では自分で購入した書籍に載ってるコードを打ち込んだり、ノートに書き写したりしてました。 『理解』しようとするんじゃなくてまずは『書く』んですね。今からとにかくやろうと思います。
お礼
回答ありがとうございます。 会社から課題も出されたのですが、そこそこ大きい企業なのでワードエクセルパワーポイントなどばかりでプログラムの課題はでませんでした。プログラムは入社後、研修でやるそうです。 今卒業制作の真っ最中なんですが、自分は課題やテストではそこそこできていただけに今更質問しづらくて… 恥を忍んで聞いてみます。