• 締切済み

プログラミングを勉強しても理解できません。

2006年春から専門学校に通ってプログラムなどSEになるための勉強をしてるのですが、まったくと言っていいほど理解できていません。 落第しない程度にはテストの点も取って、課題もこなしたのですがゼロから新しいプログラムを作れと言われると何も作れません。 就職も決まっていて卒業制作にも取り掛かっているのですが理解していないので進むはずがありません。 勉強量が足りないと言われてしまったらそれまでなのですがどうしたらゼロからコードを書けるようになると思いますか?なるためにはどういった勉強をしたらいいと思いますか?今SE、PGとして働いている方達はどんな勉強の仕方をしたのでしょうか? そのあたりをできるだけ詳しく教えてほしいです。 学校で勉強していたのはHTML、CSS、JavaScript、PHP、JAVA…XMLもやりましたがさっぱりです。FLASH、ActionScriptも多少触りました。インタプリタ系がメインでした。コンパイラ型の言語はJAVAだけです。 取った資格はSJC-Aとドットコムマスターのシングルスターです。 SJC-Aは一昨年取ったもので去年はほとんどJAVAに触ってないので忘れてしまっていることが多いです。 どうぞよろしくお願いします。

みんなの回答

回答No.7

実は理解することは重要ではない、と言ったらわかってもらえるでしょうか。 私も何度も薦められた良書と言われた本を片手にプログラミングの課題をこなしましたが、 こなせても、わかったんだかわかってないんだか、充実感がありませんでした。 結局、勉強のための勉強が問題だったとアトでわかりました。 何か作ってみて、足りないものがあれば調べて使う。 その「具体的な経験」を、あとから振り返ってみてみんな「理解した」と言っているんですね。 「理解」というよりは「充実した」から大手を振ってるだけかもしれません。 本と課題だけでは、「理解」しても「充実」しないのが問題点ではないでしょうか? どちらも形に残りませんからね。 ぜひ小さなものでいいので何か作ってみてください。 パズル系などがオススメです。 学校の講義ほど深い内容ではありませんが、 http://top-10-algorithms.sl-jp.com/php/ こういったステップを踏んでサービスなど作ってみてはいかがでしょう?

noname#49406
noname#49406
回答No.6

理解をしているけど、利用方法が分からないって感じではないのでしょうかねー。 私も、Perl,PHPから始めて、delphiに手を出していますが、自分の興味のある分野しか分かりません。 オブジェクト指向にも興味はあったのですが、作ったとしても小さなフリーソフト、Perl、PHPは自分のHPだけなので、すっかりあきらめました。 オブジェクト指向が分からなかった訳ではありません。 勇気ある撤退です。(苦笑 その分、ライブラリーや関数の渡し方には、再利用できるように作っているつもりです。 ゼロからコードは、自分が作りたいものを作ったらいいんじゃないでしょうか? SEは、知り合いにいますが、基本お客の要望に応えるだけで、「こういった仕様でデータを渡すので、こういった結果を返してくれ」ってプログラムを作っているだけのようですよ。 まぁ、下請けの下請けのようですが。 学生の頃は、特に勉強とかではなく、自分の好きなものや課題のプログラムを作っていたようです。 私も、時々しますが、一度作った課題を、再度別の方法や新しい方法で作り直すのも、おもしろいですよ。 メモリーの管理方法や早さにこだわったり。 HPの方が得意そうなので、HPを作ってみてはいかがですか? 私は、時々、自分のHPで、時間があるからおもしろそうなソフトを作ってもいいよー。と発表する事があります。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.5

まず一本の言語に絞り込みましょう。 次に簡単な問題で良いのでネットや教科書などの答えを見ずに一から書けるか確認してみてください。例えば、バイナリーサーチとかバブルソートを0から書けますか?そこでつまずく様ならプログラムを書くための最低限の能力が身に付いていません。 書けない場合プログラム言語で書けなくても箇条書きでプログラムの説明が書き出せるか試してみてください(人に作業してもらう為の手順書だと思って書きます)。 これがクリアできるなら、まず既存の簡単なプログラムを自分なりに改造して高機能にしてみるというのが勉強になると思います。 最後に、いつも私が出す問題です。 「Fizz-Buzz問題」 1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。 これを参考書やWEBサイトを見ずに問題を見た瞬間から何分でプログラムできますか? (1)2分以内。あなたはプログラマとして問題ありません。 (2)10分以内。少しプログラミング練習不足です。 (3)30分以内。プログラミングの練習不足です。身に付くまで多くのプログラムを行いましょう。 (4)できない。プログラムと言うものが理解できていません。簡単な問題を一から始めたほうが良いと思います。

  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.4

 以前講師をしておりましたので状況が良くわかります。  授業を単調にこなすだけでは(授業内容しだいですが)確かに創造力やセンスまではなかなか身につかないと思います(趣味でやってないなら実務経験が無いに等しいから)。資格そのものの是非はともかく合格取得できるだけの実力は確実についているはずです。  就職先が決まっているのでしたら、就職先から事前に学習しておかなければならないようなことを伺って、事前研修のような形で課題とかを出してもらってはどうでしょうか(仕事に関連した課題が出されるはずです)。在学中には講師など人に聞ける環境が整ってますからチャンスは今のうちかと思います。

mrpopo2008
質問者

お礼

回答ありがとうございます。 会社から課題も出されたのですが、そこそこ大きい企業なのでワードエクセルパワーポイントなどばかりでプログラムの課題はでませんでした。プログラムは入社後、研修でやるそうです。 今卒業制作の真っ最中なんですが、自分は課題やテストではそこそこできていただけに今更質問しづらくて…  恥を忍んで聞いてみます。

回答No.3

まず、こういったものを作る!と決めたとき、 なにがあってなにをどうしたいか、どうなるか、イメージして要件や概要・詳細を書き出す事が出来ますか? それが出来ないのならばプログラム云々の問題ではありません。 イメージを膨らませて順を追ってまとめる力がない事になります。 その後、書き出した内容をプログラムに置き換える事が出来ますか? それが自分の知識では出来ないという判断になるならば、 可能とするプログラムの模索・代替案の見出しを行えますか? 出来ないならば、それはプログラミングの経験と、つまづいた時に解決する為の手段を見出す経験が少ないだけです。 この面に関しては#1さんの回答通りだと私も思います。 何でもいいからまずは何か自分で考えたものを作るのがいいと思います。 ペイントでもメモ帳でもショッピングカートでも。(知識がなくても) その上でつまづいて、悩んで調べまくって完成させる。 出来たプログラムは苦労と努力の賜物です。結果的に凄い汚いプログラムだとしても。 それがないと、こういう時はこういうプログラムを書けばいいな、という 直感的レパートリー?が増えていきません。 それでいて、ここのこれはもっと簡潔に書けないか?と疑問を持って調べたら、 他人が素晴らしいコードを公開していたり、と勉強になります。 但し、初めてやる・新卒だからと言って、仕事を行う上で多少は考慮して もらえるでしょうが、凄い長々と時間を取ってくれるはずもないので それをやるなら今のうちが一番いいですよ。時間有り余ってるので。

mrpopo2008
質問者

お礼

回答ありがとうございます。 書き出すことはできます。出来ていると思います。 でもプログラムに置き換えられるかと聞かれると…出来ません。。。 何にも思いつきません。 つまり調べて作るなり書きまくるなりして自分のプログラムの引き出しを増やせってことですよね。今卒業制作の真っ最中なのでチャレンジしてみます。ありがとうございます。

  • oji32
  • ベストアンサー率21% (38/180)
回答No.2

勉強してから初めて作りたい物を考えるのではなく、 作りたい物を考えてから勉強するほうがうまくいきました。 なになにしたい と言うのはありませんでしょうか? それが、勉強したいという意欲につながるはずです! 就職も決まっているということですので、その点の心配は何もないのですから、言語は関係なく何か作りたいものを見つけてみてはいかがでしょうか? どんなにちっぽけなプログラムでも構いません。一度作り終えると、次への意欲がわくはずです。がんばってください!

mrpopo2008
質問者

お礼

回答ありがとうございます。 作りたいものはたくさんあるんですが… 作りたいものに近いものを検索して見つけて、ソースコードを見てみると難しすぎて(見たことない文が書かれていたり)何から手をつけていいのかわからなくなってしまうんです。やはり理解してないから何も書けないのかなーと思ってここで聞いてみたんです。

noname#49664
noname#49664
回答No.1

何でもいいから、ただひたすらソースコードを書くことでしょう。あんまり時間もないようですから、あちこちに首を突っ込まず、例えばPHPなど1つに専念したほうがよいと思いますよ。 今まで、どういう形で勉強していたのでしょうか。教科書となる本を読み、それを覚える、という感じでしょうか。どれだけ、実際にソースコードを書いてきましたか? 授業を、「暗記科目」だと思ってませんでしたか? まず、今まで授業で登場したソースコードをすべて自分で書いて動かしてみてください。ソースコードは「見る」だけでは理解できるようにはなりません。自分で「書く」ことが何より重要です。プログラミング力は、「どれだけソースコードを書いたか」で決まってくると私は思っています。 あとは、ちょっとでもわからないことがあれば、すぐさまヘルプやドキュメントを調べる習慣をつけましょう。見たことない単語が出てきたらすぐに調べる。そうした、面倒で地道な作業をひたすら続けていくことが、上達の一番の近道でしょう。

mrpopo2008
質問者

補足

回答ありがとうございます。 そういわれるとあまりコードを書いた覚えがない気がします。 課題なんかは教科書や自分で買ってきた本で調べたり、ネットでググりながらなんとかやってきました。 家では自分で購入した書籍に載ってるコードを打ち込んだり、ノートに書き写したりしてました。 『理解』しようとするんじゃなくてまずは『書く』んですね。今からとにかくやろうと思います。

関連するQ&A

  • JAVAプログラムの勉強なら、SJC-PやSJC-Aの勉強が良いですか

    JAVAプログラムの勉強なら、SJC-PやSJC-Aの勉強が良いですか? 業務でJAVAのプログラムを覚える必要がでてきました。 プログラムはやってこなかったです。 CCNAやLPIC系統ばかりでした。 ただ漠然と、市販のテキストを見て覚えるより、 資格取得などの目標があったほうが、気持ちが違うかと思いまして。 SJC-PやSJC-Aの資格合格する程度の勉強をがんってもJAVAプログラムは身につきますか? (※絶対的に業務経験が必要なのはわかりますが、それはおくとして) 勉強期間は約2ヶ月くらいです。 最適な勉強方法ってなんでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • java認定資格

    sjc-eaとsjc-ma,sjc-d,sjc-pを持っています 今19歳ですがjavaは得意というか、中学のときからやっているのでなんとなくとってきたのですが、この資格は就職にどのくらい影響力があるのでしょうか?「こんなのpg、seなら当たり前」というところなんでしょうか?給料適にももっていたら+にるんでしょうか?あとは応用技術者とセキュリティのスペシャリストを持っています。どなたがご丁寧にご回答よろしくお願いします

  • Javaプログラミングが実行できない

    javaの勉強を始めようと考え勉強しているのですが、いきなりつまずいて困っています。 コンパイラし、dirを打ったあとプログラムを実行すると Exception in thread "main" java.lang.NoClassDefFoundError: Sample01 と表示され実行できません。 アドバイスお願いします。

    • ベストアンサー
    • Java
  • プログラミングの勉強について教えてください。

    現在自分は学校でC言語を学んでいます。 もちろん学校で学ぶことなのでテストもあり先日行いました。 授業では毎回資料が送られ、それについての課題(レポート)を作成しなければいけません。 そこで行う課題では自分はいつも早めに終わらせることができるのですが、 テストとなると全くできません。 テストはいつも筆記でプログラムを手書きで書く、プログラムから読み取る、プログラムの意味を書くなどがあります。 パソコンではかけても手書きで書くことができないのです。 先生にはいつも、「それは理解してないだけでしょ」と言われます。 しかし、正直プログラミングの勉強法と言うものがわかりません。 頭の中ではある程度理解していても実際書けなかったり、 先生の言うとおり意味がよくわからないので型を間違っていたりすることが多いです。 実際プログラミングはどのように勉強すればいいのでしょうか?

  • インタプリタはロードモジュールを作成する?

    情報システムを勉強し始めた初心者です。 私の持っているテキストには以下のように書いてあります。 ・「ソースプログラム」を「ロードモジュール」に変換するプログラムが「言語プロセッサ」。 ・「言語プロセッサ」には「コンパイラ」や「インタプリタ」が使われる。 つまり、コンパイラもインタプリタもロードモジュールを作成するものだと思っていました。 しかし、以下のような問題がありました。 問題: インタプリとは、高水準言語で書かれた原子プログラムを、機械語のプログラムに翻訳してロードモジュールを作成するプログラムである。 答え: 間違い。インタプリタではなく、コンパイラの説明になっている。 つまり、インタプリタはロードモジュールを作成しないということなのでしょうか? どなたかご教授お願いいたします。

  • ActionScriptを勉強したいのですが…

    私は今専門学校でFlashのActionScriptを勉強しています。 しかし学校の授業だけでは置いていかれそうですし、 自分なりに理解を深めたいので、自分でも本を買って 勉強しようと思っています。 今学校で使っているソフトはMXです。私の自宅にもMXが入っています。 しかし今世間ではActionScript2.0や、3.0まで出てきていますよね。 Flash5と6でも記述がだいぶ違うと聞きましたし…。 何を勉強していいのか分からず困っています。 http://www.amazon.co.jp/macromedia-FLASH-ActionScript%E3%83%90%E3%82%A4%E3%83%96%E3%83%ABfor-Windows-Macintosh/dp/4274064026 こちらの本がすごく有名な本だと聞いたのですが 今から勉強するには適していないでしょうか? 私のActionScriptの知識はほぼ初心者です。 おすすめの本や、何を勉強すればいいか(バージョン)、 アドバイスをお願いします。

    • ベストアンサー
    • Flash
  • SJC-A

    SJC-Aの取得に向けて、勉強しようと思っています。 色々な学校にはSJC-P合格保証講座と言って 20万コースなどがあるのですが・・ SJC-Aなら独学で取得が出来ますでしょうか? ある程度の知識はあるのですが(*_*; 本屋さんに行っても、SJC-A講座と言う本がないので どうして勉強して参考にすればいいのか分りません?? 過去問とかがあれば良いのですが・・ Javaのホームページで受験申し込みのページを見ましたが、 試験日とか時間は記載されていませんでした? Java資格について詳しくお分かりになる方がいらっしゃったら、教えて頂きたいのですが 宜しくお願い致します!!

    • ベストアンサー
    • Java
  • JAVAとXMLの関係は

    プログラム初心者でJAVAの勉強を始めたばかりです。 JAVAの参考書を読んでいますがXMLファイルも出てきて関係性がいまいち理解できません。 JAVAプログラム(クラスファイル等)とXMLファイルの関係性を教えていただけないでしょうか。

    • ベストアンサー
    • Java
  • コンパイラとインタプリタとアセンブラの違いって何?

    言語プロセッサの説明で「コンパイラ、インタプリタ、アセンブラ」などがあると書かれていたのですが、 コンパイラもインタプリタもアセンブラもどれも説明が「機械語に翻訳する」と書かれていました。 何が違うのでしょうか? 違いをわかりやすく教えてください。 いろいろなプログラミング言語があるというところまでは理解できましたが、プログラミングはわかりません。(涙) これから勉強します。

  • プログラミングってどうやって勉強したらいいですか?

    元高卒ニートで大学受験をするも見事に玉砕しメンタル病んで 長く鬱屈とした日々を過ごした、勉強に不向きな人間です。 そんな体たらくの人間なので勉強には期待できないと自負しているのですが、 そんな私でもプログラミングを習得するにはどうしたらいいでしょうか? とりあえず、C言語、VBA、VBSCript,Ruby、Javaの書籍は家にあります。 これらの本を読んでいるようで読んでいないので、 時間を決めしっかり読んで頭にいれることとともに実際のサンプルを動かして覚えていくのが効率的でしょうか? いつもなんとなく問題の答えだけみてプログラミングをやった気になって全然身につかないことが多いのですが、どうすればいいんですかね? いろいろと疑問におもったことを調べながらしっかりした本を読んで勉強していくのがいいでしょうか? 昔、Cを勉強したとき(20年前専門学校時代)は出来る事がCUIのプログラムを作り何かするというのでそれに飽きて、Windowsのプログラミングを中途半端な状態で、すべて理解しようと取り組みつぶれて嫌になって 恐怖症、絶対拒絶の精神的大ダメージを受け、プログラミングという言葉を 3年ぐらい聞くのすらいやなぐらいメンタルの闇として抱えるにいたりました。 そういうこともあったのですが、少しプログラミングに興味があり、やはり やりたいと考えています。 出来ることを理解し、そのことを実現するためにはどうすればいいかということを シンプルに考え、最短の方法を構築していくのが勉強ですかね? どうすればいいでしょうか? アドバイスよろしくお願いします。(・´з`・)