• ベストアンサー

Javaの授業についていけたい。どうすればいいか?

プログラム未経験者の30代男性です。 今学校に通っていますが、すでに授業についていけない状態です。 なんとか土日などで勉強して追いつきたいのですが、その場合。 練習問題などをひたすら解きまくるとよいでしょうか?その他の方法があったら教えてください。 年末年始で6日ほど休みがありますのでその間で追いつきたいと思います。また、夜などでも追いつきたいのですが、現時点で授業がさっぱりわからないので、全く聞かないで、わからないところを勉強し直すべきですか? それともわからなくてもいいから授業を聞くべきですか? つまづいたのは 2週間前のクラスとかメソッド、戻り値、オーバーロードあたりです。それ以降はあまり理解できずに、最近はまったくわかりません。

  • Java
  • 回答数7
  • ありがとう数3

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

  • ベストアンサー
回答No.7

>練習問題などをひたすら解きまくるとよいでしょうか? 数多くの練習問題を、解きまくらなくてもいいと思います。何か試験対策の為ならまだしも、基本的に、実際の開発現場においては、専門書を見たりとか、ネットで調べたりしながらのコーディング作業になりますので。(全ての事柄を暗記しておかなくてもいいということ。) ただ、質問者さんの場合、プログラム未経験者ということもあるので、オブジェクト指向というよりも、構造化プログラミングの方に、まだ慣れていない所があるのかも知れません。学校では、毎回宿題みたいなのは出されていないのでしょうか?もし、あるのであれば、それだけでも十分ですし、ないのであれば、他の専門書にて、時間の許す範囲で、理解できるまで解いていってもらえたら、と思います。(どうしても時間的に厳しければ、最初の1問のみ、そうでなければ奇数番号の小問のみ、といった感じで。) >その他の方法があったら教えてください。 一般論として、どのプログラミング言語の習得にもいえると思うのですが、たった1冊の本だけで、ある特定の言語をマスターすることは、とても困難な事であるように思われます。(自然言語の習得の際にも、辞書に、単語・熟語集、文法書、長文問題集、…と、いろいろと利用していましたよね。)それから、様々な専門書に載っているソースプログラムを読んでいくことで、自然と、他の人が書いたプログラムを読み取る力も身に付き、後に実務に入った際、デバッグ作業などで、大いに役立つことと思います。 質問者さんの通っている学校では、どのようなテキストを使用され、どのようなカリキュラムになっているのか、分かり兼ねますが、もしかしたら、授業の進め方とかよりは、別の所に原因があるのかも知れません。 よって、僕からのオススメとしては、年末までに都会の大型書店に行き、自分に合ったJavaの本を購入されては、と思います。もう既に、現時点で分からない所がいくつかあるようなので、その事柄に絞って、最近出た専門書の方から、順番に立読みしていけばいいと思います。もし質問者さんが「独習Java」を手に取り、「何て、事細かに書かれている専門書なんだろう。」と思えば、それを買えばいいわけですし、もしくは、「やさしいJava」を見てみて、「なんて、わかりやすく書かれている本なんだろう。」と思えば、それを購入すればいいと思います。(もちろん、その他のJava本でも、同じです。) >現時点で授業がさっぱりわからないので、全く聞かないで、わからないところを勉強し直すべきですか? >それともわからなくてもいいから授業を聞くべきですか? 質問者さんが、プロフェッショナルとしてのPGやSEを目指すのではなく、単にアマチュアレベルとして、いろいろなアプリケーションの開発等が出来れば、とお考えでしたら、授業を全く無視して、自分のペースで学習していってもいいように思います。ただ、将来的に就、転職等をお考えでしたら、やはり、周りの人との交流を遮断するというのは、いかがなものかと…。今はその授業での内容が全く分からなくても、その時に聞いていた事、その時にメモっていた事が、だいぶ後になって役に立つかも知れません。その時に授業を一生懸命聞いて、理解しようとしていたからこそ、後々に「ああ、そういうことだったのか!」と思えたりするわけですし、分らない事について調べる時、人にものを教える時、…と無駄になる事は一つもないと思います。その授業を通じて、独学では決して学べないような様々な事柄を吸収していってください。 >年末年始で6日ほど休みがありますのでその間で追いつきたいと思います。 お勧めとしては、やはりSwingでしょうか。(もちろん、ServletやJSPでもよさそうに思いますが、J2EEの場合、環境構築だけで終わってしまいそうな…。)まず始めに、簡単なSwingアプリケーションを作成し、徐々にいろんなコンポーネント(コンボボックス、スライダー、スピナー、…)を追加していってください。継承やインターフェイスにコンストラクタなど、それだけの短いJavaプログラムでは、ピンとこないかも知れませんが、実際に自分で作成したJavaプログラムをどんどん拡張していくと、それぞれの仕組みがよく分ってくると思いますので。 あと、どうしても分らないJavaの文法などについては、このサイトの過去ログ検索もお忘れなく。

lkafdsaffa
質問者

お礼

ありがとうございます。参考になりました。

その他の回答 (6)

  • fazan
  • ベストアンサー率33% (5/15)
回答No.6

学校に通ってるのであれば、分からないところはとことん聞くべきです。 分からないまま先に進んでも話についていけず、モチベーションが下がるだけです。 せっかく聞ける相手がいるのだから、それを利用しない手はありません。 あとは、テキストを読むだけでなく実際に動かしてみて体で覚えることです。

lkafdsaffa
質問者

お礼

ありがとうございます。参考になりました。

  • Interest
  • ベストアンサー率31% (207/659)
回答No.5

#2,#3,#4 の方と同意見。 プログラミング言語は、英語や日本語と同じ「言葉」です。 ただし、ちょっと特殊な言葉なので特徴的な概念を授業で教えてくれるわけです。英語だって、授業だけでしゃべれるようになったなんて話、聞いたことありませんよね。 > 練習問題などをひたすら解きまくるとよいでしょうか? まずは意味がわからなくてもよいので、教科書の例題を「そのまま」プログラムとして打ち込んで、動作を確認してください。打ち込んでいるうちに意味がわかってくるようになります。それから、教科書のその章末にある練習問題のプログラムを作ってみましょう。 > 2週間前のクラスとかメソッド、戻り値、オーバーロードあたりです。 ここらは概念的に理解しようとするとちょっと難しいかもしれません。 使ってみて、「ああ、そういうものなのか」と直感的に理解されることを期待します。

  • egeg007
  • ベストアンサー率33% (3/9)
回答No.4

#2, #3にまったく同意見です。 どんな言語でもそうですが、使って何ぼの世界ですので、、 わからなくて結構、 1、教科書にあるコードそのまま自分で打ち込んで、動かしてみる。 2、動いた!! という感動?を得る。 3、次、こうしてみよう!!  という繰り返しで、上達していきます。 Let's try & be Happy !!

  • ngsvx
  • ベストアンサー率49% (157/315)
回答No.3

#2の方に賛成です。 プログラミング自体が初心者だということなら、とにかく書いてみること。 細かい話がわからなくてもいいんです。そのうちわかった気になります。 「習うより慣れよ」です。 慣れてきたら、用語だとか、記述方法の意味だとかを学んでいった方がいいと思います。

noname#49664
noname#49664
回答No.2

どういうふうに学習されていたのでしょう。教科書を読み、説明を聞き、それを眺めて「うーんわからん」と悩んでいるということでしょうか。  でしたら、教科書として使っているものに掲載されているソースコードを実際に打ち込んでコンパイルし、実行する。それを少し自分でアレンジして動かす。「ここをこうしたらどうなる?」と実験しては動かす。それをひたすら行ってみましょう。  プログラミングを理解する唯一の道は、「ただひたすらソースコードを書くこと」です。よく、頭で理解しようと四苦八苦している人がいますが、頭だけで理解するのは不可能だと私は思っています。書いてなんぼですよ、この世界は。とにかく、片っ端から書いて動かしてみてください。

回答No.1

仕事をしながらの勉強でしょうか?ご苦労様です。 java以外のプログラミング経験はありますか?何から手をつけていいのやら?といった感じでしょうか? 業務系のシステム開発をするならDBアクセス関連は必須でしょう。また、WEB系ならサーブレット関連も必要等、 将来的に今の勉強をどんな方向に活かすのかによってやるべき事が変わってくると思います。 ともあれ、まずは基礎をといのなら以下のサイトはオススメです。ご参考ください。

参考URL:
http://www.techscore.com/tech/Java/
lkafdsaffa
質問者

お礼

ありがとうございます。参考になりました。

関連するQ&A

  • Javaのオーバーライドについて教えてください!

    //Sample.java class A extends Fina{ public int part(String str1,String str2){ int iN1 = Integer.parseInt(s1); int iN2 = Integer.parseInt(s2); intNum1 *= intNum2; return intNum1; } } このプログラムに対応するように同じクラス内でオーバーロードした際のプログラムを教えてください。 オーバーロードの内容は、partメソッドをオーバロードして引数にString型のデータを二つ受け取り、2つのString型のデータをそれぞれint型に変換し、それぞれかけた値を別のクラスでメインから呼び出すにはどうすれば良いですか?

    • ベストアンサー
    • Java
  • メソッド宣言の戻り値の型にクラス名を使うには?

    メソッドの戻り値の型にクラス名を使ってるプログラムを見かけたのですが、例えばクラス名を public class Player{ とします。そして Playerクラスのメソッド宣言に  private   Player(戻り値の型) startRun(メソッド名) { とあります。 これは戻り値の型にクラス型の変数を使ってユーザー定義してると思うのですが使い方が分かりません。 javaのサイトはできるだけ調べたのですが戻り値の型にクラス名を使うにはどうすればいいか分かりませんでした。 この使い方を教えてくれるサイトを教えてください。 基本型と参照型のStringクラスについて教えてくれるサイトはたくさん見かけたのですが…。 お願いします。

    • ベストアンサー
    • Java
  • 部活に入るか、授業についていけるか、友達とは仲良くできるかで悩んでいま

    部活に入るか、授業についていけるか、友達とは仲良くできるかで悩んでいます。 高校1年生男子です。 今は、授業にもあまりついていけない し、友達とも全然上手く喋れず毎日苦労ばっかりのままGWに入ってしまいました。。 部活は剣道がいいとずっと前から思っていました。でも、運動が苦手で土日まで練習があって大変な上に授業までついていけていないのでどうしようか迷っています。 学校の先生は、入ってみたら勉強もうまくいくかもしれないというのですが、自分にはどう考えても出来ない気がします。 かといって他の部活には全く興味がありません。 剣道部は初心者の人もいるみたいで、初心者かどうかは分かりませんが 一年生は、隣のクラスの女の子が1人、他のクラスの女の子が1人だけだそうです。 いろんなことで悩み続けてもう疲れました。 春休みに心配していたことが、現実になりつつあるのでこれからも心配で、ここ3ヶ月は夜寝れない日が続いています。 親は勉強しろというだけで、「しんどい」と言ってもからかうばかりで聞いてくれません。 ここに相談しても失礼ながら 理解してくださる方はあまりいないように思います。 GWの課題、教科の宿題「国語・理科・英語」がほとんどてをつけてない状態で残ってて、、 もうどうしていいか分かりません。。

  • 問題の解説お願いします。(オーバーロード&オーバーライド)

    class A{ protected int method1(int a , int b){ return 0; } } クラスAを継承したクラスで同時に定義できるメソッド が、 public int method1(int a,int b){return 0;} が良くて private int method1(int a,int b){return 0;} static protected int method1(int a,int b){return 0;} がだめな理由がいまいちわかりません。 法則みたいなものにこう書いてありました。 (オーバーロードについて) 同一クラス内に同一名称のメソッドを定義することができます。 ただし、それらは引数が異なるものでなければならず、 アクセス制御修飾子や戻り値の型だけが異なるメソッドは 定義することができません。 (オーバーライドについて) サブクラスでは、スーパークラスに存在するメソッドと同一引数・ 同一戻り値型を持つメソッドを定義することが許されています。 これら以外にも何か決まりがあるのでしょうか よろしくお願いします。

    • ベストアンサー
    • Java
  • 基本情報処理技術者 平成24年度秋 JAVA

    javaのプログラミングは長らくやっていない状態で、問題を解き始めましたが、 プログラムが追えず困っています。 初歩的な質問になってしまいますが、下記についてどなたか教えてください。 1.プログラム3のmainメソッドにて new TimerTest().test(); とありますが、mainメソッドが所属しているクラスはTimerTestですよね? 自クラスってnewしないといけないんでしょうか。 また、newしているのに、インスタンスをTimerTest型の変数に格納しなくていいのでしょうか。 2.プログラム3のtimeメソッドにて、 longTimer = Timer.createTime("long timer",..................) とありますが、これはプログラム2のTimerクラスのメソッドを呼び出していますよね? 他クラスなのに、newしなくても使えるんでしょうか。 Timerクラスがpublicだからnewしなくていいという解釈であっていますか? それともcreateTimerメソッドがstaticだからでしょうか? Timer.createTimeのTimerは、クラス名なのか、 createTimeメソッドの形名?なんでしょうか。 初歩的なところですみません・・・ この質問を見て「このあたりが理解できていない」というような感じ方がありましたら、 そこを勉強したいのでご教示お願いします。

  • Javaの授業において先生のおっしゃっていることがわからない

    毎日、曜日に関係なく10時間、昼は専門学校、夜はPCスクールに 通ってJavaを勉強して4ヶ月たちます。 しかしながら、先生方の説明そのものが理解出来ません。 例えば、継承する、実装するというのは、あるクラスを利用するという 意味でしょうか。また、呼び出すというのは、日常会話では、 校長先生が生徒の親を呼び出したとか、呼び出しというボタンを押すことで使いますが、 メソッドやコンストラクタを呼び出すという意味がわかりません。 日本語なのに、教科書に書かれていることも、先生方の 説明も意味が通じません。 そして、ある時は変数といったり、インスタンス名といったり、 オブジェクトといったり、フィールドと言ったり、言い方がいつも 変わってしまいます。 AはBを見てるだけという説明も絵ではわかりますが、 実際にコードでどうあらわすかわかりません。 なんとかしたいのですが、何かアドバイズを頂きたく御願いします。 簡単なコードでよいので読めように、そして書けるように なりたいのです。このまま学校もやめてしまいたくありません。 どうか宜しく御指導下さい。御願い申し上げます。

    • ベストアンサー
    • Java
  • クラスやメソッドが理解できません

    今javaを勉強中なのですが、クラスやメソッドで生きず待ってしまいました。 メソッドの定義は 戻り値の型 メソッド名(引数リスト) {  文;  ・・・ return 式;  } ですが、メソッドから返されえる値を戻り値といますよね?呼び出し元に値を返すってどういうことなのでしょうか? int getNum() { System.out.println("調べました") return num; } たとえば、上記のようなものですが。もしも、このメソッドを呼び出すと、”戻り値”が戻ってくるわけですが、これはgetNumという変数のなかに計算式が入っている?という考え方でいいのでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • Java
  • java のメソッドの使い方について

    現在のjavaの勉強しております。 そこでフィールドについてどうしてもわからないことがあったので質問させていただきます。 他クラスのメソッドを利用したい時、通常インスタンス化を行いますが、下記のようにフィールドに宣言しても、他クラスのメソッドを利用できることに疑問を感じました。 public class Test{ public String show(){     ~~   return null; } } //Testクラスのshowメソッドを呼び出します public class Test2{ private Test test_; public String triaezu(){    String str = test_.show(); ~~   … このようにフィールドにもつ呼び出しとインスタンス化をして呼び出す方式とは一体何が違うのでしょうか? プログラムの先輩方、基礎的なことすぎて申し訳ないのですが、どうかご教授ください。

    • ベストアンサー
    • Java
  • 戻り値の返し方

    java eclipseを使ってプログラミングを勉強しています。 通信のプログラムを作っているのですが、 データをwrite()メソッドやread()メソッドを使って 送受信するのですが、それらのメソッドが正常に動いたかの 確認をする必要があると考えました。 そのためには、戻り値を確認すればよいことが分かりました。 初歩的な質問で申し訳ないですが、どうやって戻り値を 確認すればよいでしょうか? アドバイスをお願いします。

    • ベストアンサー
    • Java
  • javaの不思議

    C言語をたしなむ程度にやっているものです。 Javaを勉強していたのですが、不思議だなと思ったので質問させてください。 Integer value = new Integer(30); value.doubleValue() // <- double型に変換している このプログラムだとvalueはintなのにあらかじめdoubleに変換できることを想定しています。 C言語の癖なのかしらないですが、型変換をするならクラスメソッドではなくキャストするか、 メソッドに投げる(Integer.toString←stringにする例ですが)。 この2つの方法が自然な型変換だと思うのですが、変でしょうか?

    • ベストアンサー
    • Java

専門家に質問してみよう