SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

プログラミング入門書ガイド

Java入門ブックガイド(入門編)
よりよき入門書と出会うために

慣れ親しむことが上達の秘訣

川久保 智晴[著]


実務に耐えうる準備をするための項目比較

 下記の表1は、前述の書籍を障害(仕様と結果が一致しないこと)の出にくいプログラムを作る上で必要と考えた要素で比較した表です。「品質のよい」ではなく「障害の出にくい」と書いている点に注意してください。

 品質がよいとは、変更しやすい、読みやすい、簡単にプログラムを入れ替えられる、という風に言い換えることもできます。入門段階では欲張らず、まずは障害の出にくいプログラムを作ることに専念してください。ここにある項目すべてを理解できるのが理想ですが、仕事や研究を進める中で分からない部分が出てきた場合に、この表に戻って読んでいただいても結構です。

 入門編とオブジェクト指向編に分けているため、表1は入門編のみの評価項目となっています。少し見づらいこともあり、添付ファイルとして前編・後編を合わせたExcelの表を用意しています。詳しくはこちらをダウンロードして確認するとよいでしょう。

 なお、すべての本の目次を列挙しているわけではなく、入門時の勘所となる項目を列挙しています。従って、入門書に必ず記載されている演算子やif文・for文・while文は比較するための項目として含めていない点について注意してください(表の見方は表下部を参照)。

表1.Java入門書比較表 入門編
評価項目 明解Java Java言語プログラミングレッスン やさしいJava わかりやすいJava
プログラムのコンパイルの仕方、実行の仕方 ○ 6 上 ○ 6 ○ 8 入 ○ 448
mainメソッドの意味 ×(*1) - 上 ○ 18 ○ 22 入 ○ 366
識別子 ○ 294   × - △ 45 入 △(*2) 389
演算子と優先順位 ○ 88 上 ○ 334 ○ 91 入 ○ 576
変数 ○ 26 上 ○ 51 ○ 44 入 ○ 64
文字と文字列の違い ○ 106 上 ○ 61 ○ 31 入 ○ 60
基本型と参照型の違い ○ 142 上 ○ 62 ○ 198 入 ○ 58
java.util.Scanner ○ 36 上 △(*3) - △(*3) -   × -
式 ○ 62   ×(*4) - ○ 77   ×(*4) -
if文の詳細な構文 ○ 65 上 △(*5) 85 △(*5) 85 入 △(*5) 254
短絡評価(short circuit evaluation) ○ 69   × - × - 入 ○ 216
後置増分(減分)演算子と前置増分(減分)演算子 ○ 112 上 ○ 172 × - 入 ○ 306
break文とcontinue文(ラベル付きを含む) ○ 101   ×(*4) - ○ 82 入 ○ 96
printfメソッド ○ 134 上 ○ 45 × - オ ○ 383
基本型の縮小変換、拡大変換 ○ 164 上 △(*6) 217 ○ 96 入 ○ 84
エスケープ・シーケンス(拡張表記) ○ 170 上 ○ 26 ○ 32 入 ○ 81
配列の初期化と代入 ○ 188 上 ○ 218 ○ 188 入 ○ 312
拡張for文 ○ 196   × - × - 入 ○ 190
配列のコピー(配列変数の代入との違い) ○ 200   × - × - 入 ○ 352
ガーベジコレクション ○ 207 下 ○ 126 ○ 322 オ △(*7) 134
finalizeメソッド × - 下 ○ 138 ○ 323   × -
仮引数と実引数の区別 ○ 224 下 ○ 14 ○ 244 入 ○ 393
enum × - 下 ○ 363 × - オ ○ 484
マジックナンバーの定数化 × - 下 ○ 33 × -   × -
数の表記法 × - 上 ○ 337 × - 入 △(*8) 59
予約語 × - 上 ○ 341 × - 入 ○ 67
  • *1 mainメソッドやコマンドライン引数についての言及はあるが、『Java言語プログラミングレッスン』p18-19の「mainというメソッドが実行開始位置であり、スタートポイントなのです」のように「実行開始位置」である旨の説明が必要。
  • *2 識別子は変数だけではなく、クラス名やメンバにも当てはまるが、その説明がp66とp389をくっつけないと理解できないところが分かりづらい。
  • *3 BufferdReaderを使用した標準入力からの読み取りの説明はある。しかしJava SE 5から導入されたScannerを使った方が便利であり、コードもすっきりする。
  • *4 式の詳細な説明がない。
  • *5 中カッコ(ブロック)を明記しているから問題ではないが、中カッコを明記しなかった場合の落とし穴についての記述がない。『明解Java』のColumn 3-2(p65)にあるような説明が必要。
  • *6 明確な説明がない。
  • *7 詳細な説明が必要。
  • *8 『Java言語プログラミングレッスン(上) Java言語を始めよう』のような詳細な説明があった方がよい。

表の見方

  1. 『改訂第2版 Java言語プログラミングレッスン』は上下巻に分かれており、どちらに記載されているかを「上」・「下」で、『わかりやすいJava』は入門編とオブジェクト指向編に分かれており、どちらに記載されているかを「入」・「オ」という表記で区別しています。
  2. 数字は○や△の場合、記載のあるページ数を示しています。
  3. ○、△、×とあるのは適切な説明があるかどうかを示しています。
    • 適切:○
    • 不十分:△
    • 説明自体がない:×

 なお、△や×に(*+番号)が付いているものは、表の後に注釈があるものです。

次のページ
あなたにふさわしい本

修正履歴

この記事は参考になりましたか?

プログラミング入門書ガイド連載記事一覧
この記事の著者

川久保 智晴(カワクボ トモハル)

haruプログラミング教室(https://haru-idea.jp/)主宰。COBOL、FORTRANで13年、Javaを中心としたWeb開発で11年。3つしか言語知らないのかというとそうでもなく、sed/awk、Perl、Python, PHP,  C#, JavaScriptなども一時期は業...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー