進め方
前回この書籍に関して勉強法を記載しましたが、これといって勉強法にこだわりがなければ書籍に従ってコードを書きながら著者の解説を読み込み、実行結果を確認し、ページを進めていくという王道で問題ありません。
その際もきっちり記憶に残るように前日の思い出しや重要箇所の書き出しなどは必ず行うようにしておくのがいいと思いますが、この時点では細かい部分まで完璧を目指すのではなく、とにかく書籍をひと通りやり遂げる事を第一の目的にしてください。
その際もきっちり記憶に残るように前日の思い出しや重要箇所の書き出しなどは必ず行うようにしておくのがいいと思いますが、この時点では細かい部分まで完璧を目指すのではなく、とにかく書籍をひと通りやり遂げる事を第一の目的にしてください。
では実際の書籍、「Java言語プログラミングレッスン 上」の進め方を記載していきます。
コードを書く
例えばP.17だとList 1-1にサンプルコードがあるのでそのまま自分でも入力し、「コンパイルして実行してみよう」との言葉通りコンパイル、実行します。
P.17 List 1-1public class Hello { public static void main(String[] args) { System.out.println("Hello!"); } }
続いてコンパイル、実行しますC:\WORK> javac Hello.java C:\WORK> java Hello Hello!
以降P.26まで上記のコードの説明と、少し改変してみた結果の解説などが記載されていますのでその部分も上記と同じようにコードを書き、コンパイルし、実行します。
理解を深める
そしてその上でさらに自分なりの改変を加えたり、疑問点を検証したりします。この辺りは今までで学んだ知識上から発生する改変や検証でかまいません。
例えば上記のHelloクラスだとすると…
- public がないとどうなるの?
- class がないとどうなるの?
- ファイル名をそのまま(Hello.java)にクラス名をHelloから他の名前に変えたらどうなるの?
- System.out.println() メソッドをリファレンスで調べてみる
などなど、(以降も書籍を読み進めれば解消するでしょうが)たくさんの疑問が発生します。そういう時はcontentsページや最後の索引ページで書籍内 (上巻内)に情報が記載されているかどうか確認し、あれば読んでみる、そしてコードを書いて検証してみる、という事を繰り返してください。
部分的に先のページを読むことになりますが、その事自体は問題ありませんしむしろ目に馴染んでいいです。ただあまりに今の知識からだと負荷が高い先まで進むとなると、読むのも少し辛くなってくると思います。そういう時はその時点で途中になっている章内を全て終えてしまってから参照してみてください。気付かなかっただけで章内で追記されている事もありますし、他から理解が進んでついでに疑問が解消する事もあります。
そうでなかった場合は疑問点をメモしておき、知識を積み上げつつ適切なタイミングで調査、検証、理解、となると思います。
重要な事は疑問をもつ事です。疑問を持つと強く記憶に残り、調査・検証などで理解が定着しやすくなります。ただあまりに時間がかかる場合はスルーして次にとりかかった方がよいです。軽めの疑問で5分、重目で15分、という感じで調査・検証にかける時間を区切ってしまい、解決できない場合現状の知識量不足、と切り捨てて次に進みます。
ただその場合も上に記載した通り、疑問点はメモで残しておくなどしておくと理解漏れが発生しにくいです。
ただその場合も上に記載した通り、疑問点はメモで残しておくなどしておくと理解漏れが発生しにくいです。
リファレンスを参照する
書籍の解説だけでなく、JavaのAPIリファレンスを参照しAPIに関する理解を深めると同時にチラっとで構わないのでなんとなく類似のクラスやメソッドに目を通したりもします。
今はまだボンヤリ程度で構わないので、とにかく書籍にJavaのクラスやメソッドが出てくる度に参照するようにしてください。
Java APIリファレンス
Java™ Platform, Standard Edition 7リファレンス
Java™ Platform, Standard Edition 7リファレンス
プログラムを作ってみる
自分で何かを作成したくなったタイミングで作りたいプログラムを作ってみてください。
例えば6章を終えた段階だと変数やループ文が使えるようになっていると思いますので、その段階でコマンドライン(or ターミナル)で動く簡単なゲームなどを作成してみるのです。
すると書籍を見ながらだと記述できていたmain()メソッドのシグニチャが意外とそらで書けなかったり、変数の初期化で詰まったり、プログラムの設計で悩んだりと、理解したつもりでもふんわりとしか分かっていなかった部分や、まだ作成したことのない規模のプログラム設計に関して試行錯誤する事になると思いま す。
そしてそうする事でより知識を明確にし、広げることができます。
そしてそうする事でより知識を明確にし、広げることができます。
何かプログラムを作ってみたい!と思ったらその気持を我慢せずに情熱をコードにぶつけてみてください。
最後に - 捨てる事の重要性
捨てると書きましたが「今は」捨ててください。全然OKです。
しばらく記載したような勉強法で進めていくと、「この疑問はちょっと深すぎるのかも…」とか「細かすぎて自分が嫌になる…」という感じで疑問の深度が感覚的につかめるようになると思います。
そう感じたら速やかに投げ捨てて次に進みましょう。
それはこのパターンが以下の2つどちらかだからです。
それはこのパターンが以下の2つどちらかだからです。
- 細かすぎる部分まで詰めようとしている(Javaの範囲を超え始めている)
- 書籍やネットには記載されていない深度に届き始めた
前者は投げ捨てて忘れて問題ない範囲です。続きをやりたいならJavaをある程度極めてからでOK。
後者はありがちです。書籍でそこまで記載するととんでもないページ数になってしまい読むのが嫌になるからです。書籍では基本を、しっかりした枠さえ作る事ができれば問題ありません。読み込んでコードを書いて検証しても残るような疑問は、この上下巻が終わった後の資格の本で解消される事になるので安心してください。
ネットで個人が発信している情報は「そのサイトを作成している個人の環境で」「そのサイトを作成している個人の興味の範囲で」「そのサイトを作成している個人の嗜好や趣味が反映されたスタイルで」記載されています。情報を拾えなければそうそうに諦めて次に進みましょう。
予告
次回は下巻の勉強法について記載したいと思います。
0 件のコメント:
コメントを投稿