フューチャー技術ブログ

「プロになるJava」読書感想文〜新人の頃の気持ちで最近のJava入門書を読む話

はじめに

この記事は「春の入門連載2022」5日目です。昨日は、岸本卓也さんによる「技術情報の調べ方」でした。

HealthCare Innovation Group(HIG)の永井優斗です。

久しぶりにJavaを利用するプロジェクトにアサインされたことや、初めてOJTトレーナーをやることになったことがきっかけで、「最近のJava入門書ってどんな感じなんだろう?」とふと興味が湧きました。

というわけで、「プロになるJava―仕事で必要なプログラミングの知識がゼロから身につく最高の指南書」(以下「プロになるJava」)というJava入門書を早速購入し、読んでみた中での感想文となります。とてもわかりやすく書かれており、よかったら皆さんも手に取ってみてください。

「プロになるJava」は発売して1か月ほどにも関わらず、TwitterのTL(#projava)などでもとても評価が高いです。

なんと明日(2022/4/23)付で第2刷が出るそうです(著者の1人である、きしださんのtweetより)。すごいですね。

記事タイトルのとおり、できる限り自分が新人だった頃の気持ち(2017年4月にフューチャーに新卒入社しました)を思い出しながら、読み進めています。

この5年間で、Java SEのバージョンも進んでいます。「プロになるJava」では、Java 17に対応していますが、私が新人のときに読んでいた入門書には「最新Java 8に対応!」と記載されていました。

「プロになるJava」目次

部と章立ては以下の通りです。

第1部 Javaを始める準備

第1章 Java ってなんだろう
第2章 開発環境の準備と最初の一歩

第2部 Javaの基本

第3章 値と計算
第4章 変数と型
第5章 標準API
第6章 SwingによるGUI

第3部 Javaの文法

第7章 条件分岐
第8章 データ構造
第9章 繰り返し
第10章 データ構造の処理
第11章 メソッド

第4部 高度なプログラミング

第12章 入出力と例外
第13章 処理の難しさの段階
第14章 クラスとインタフェース
第15章 継承

第5部 ツールと開発技法

第16章 ビルドツールとMaven
第17章 Javadocとドキュメンテーション
第18章 JUnitとテストの自動化
第19章 IntelliJ IDEAを使いこなす
第20章 バージョン管理とGit

第6部 Webアプリケーション開発

第21章 Spring BootでWebアプリケーションを作ってみる
第22章 Webアプリケーションにデータベースを組み込む
おわりに
目次の詳細(節以降については、技術評論社のページをご確認ください)。

特徴と感想

取り上げるテーマの広さ

目次を見ると、単なる文法やAPIの紹介にとどまらず、テストや、Gitによるバージョン管理、Spring BootでWebアプリを作成したり、データベースについても網羅していることがわかります。それぞれ奥が深く、章で取り上げているものだけで1冊本を書くことができますが、現場に入るまでに知っておきたい知識をバランスよく記載していると感じました。

JShellとIntelliJ IDEAによる書面ハンズオン

かといって、プログラミング初心者にとっつきにくい本ではなく、特にJShellを使って1行1行処理を動かしながら学べるのはとてもわかりやすいと感じました。また、プログラムが原則1行1行上から実行されるという感覚を身につけることができます(完全に初心者だった時の私はこのことすら理解できていなかったのです)。ちなみにJShellはJava 9にて導入されているので、新人の頃読んだ、Java 8対応な入門書には残念ながら載るはずがありませんでした。

また、条件分岐以降、ソースファイルとして記述したほうがわかりやすくなることから、書面ハンズオンはIntelliJ IDEAを利用しています。

第3部9章では、ループのなかでデバッガーを利用して、ループ処理の中を覗く節があるのですが、デバッガーによって、処理がどのように行われるのかを把握する方法を丁寧に指南しています。
副題にあるように「ゼロから身につく」を体現している入門書だと感じました。

オブジェクト指向を重視しない

目次を見ると、オブジェクト指向を題した、部も章もありません。

私が新人の頃学んだ記憶を思い返すと、イヌ・ネコ、哺乳類のクラスだったり、たい焼きとたい焼きの型だったり、さまざまな例を使って、オブジェクト指向を説明しようとしていました。が、当時の私はわかった感じがしただけで、実装にどう生かしていいのかよくわかりませんでした。

「プロになるJava」では、継承の使い方を差分プログラミングとデータの分類に整理して解説しています。オブジェクト指向については、その限界を語っています。本文から、Javaでのオブジェクト指向に対する筆者の考え方がわかる段落を引用します。

入門時にいろいろなところで「オブジェクト指向は大切」という話を聞くかもしれませんが、オブジェクト指向はラムダ式などに対応しておらず、またオブジェクト指向ならではの特徴はあまり使われなくなっているため、現実的にはそこまでこだわる必要はなくなっています。Javaで継承を使う際も、差分プログラミングが行いたいのかデータの分類が行いたいのか意識しながら、それぞれの指針に従って実装するのがいいでしょう。

このあたりは著者の1人であるきしださんのblog記事に詳しく(熱く)思いが語られています。

その他

  • 「わからないところは飛ばしましょう」
    「プロになるJava」では、冒頭に「わからないところは飛ばしましょう」と書かれています。

ちょっと読んでわからないなというとき、悩みすぎるくらいであれば先に進む方がいいです。

本書の随所にこの心構えを伝えてくれる要素があります。これは今後さまざまな情報を調べながら仕事を進めていくときにも必要な心構えではないかなと思います。

  • デザイン性
    水色ベースで初心者にも手に取りやすいデザインな本になっています。また、紙質のせいか、本が開きやすいので、参照しながら実際に手を動かすときに取り組みやすいと感じました。

まとめ

Javaやプログラミング初心者だけでなく、Javaの経験者が読んでも学びのある1冊でした。みなさんもぜひ手に取ってみてください。

春の入門連載2022、次回(4/25(月))は澁川喜規さんの「リファクタリング2版読書感想文」となります。