1-6. 書籍&サイトの紹介

プログラミング上達への道は、とにかく知識習得と実践の積み重ねあるのみです。
ここでは、主に入門者向けの書籍やサイトを紹介します。

Javaプログラミング関連

昨今はさまざまな情報がWeb上で無料で手に入ります。Javaプログラミングに関する情報も例外ではありません。

しかし多くの場合、Web上で無料で得られる情報は、特定の分野に偏っていたり、体系的に整理されていなかったり、情報の鮮度があてにならなかったり、サイト運営者の考え方が色濃く反映されすぎてしまったりしているように感じます。この点では、出版社の企画・編集や校正・校閲を経る出版書籍の方にいまだ一日の長があるように思います。

もしあなたがプログラミングを始めたばかりの入門者ならば、まずは一冊、入門者向けのJavaプログラミング解説書籍を購入し、基本的な知識をしっかりと身に着けることをお勧めします。

入門者~初級者向け書籍

次のような観点で書籍を選ぶことをお勧めします。

  • Javaは色々な分野で利用されていますが、まず必要なのはコアになる文法の習得です。
    初めの一冊は、「Spring Framework」だとか「デザインパターン」だとかの応用的な内容を含まない、入門者向けのものが良いでしょう。
  • 出版時期は、必ずしも直近である必要はありません。3~4年以内の出版であれば問題なく利用できます。
  • Amazonなどのレビューはそれなりにあてになります。多くのレビューが付き評価の高い書籍の方がアタリの可能性は高まります。
  • とはいえ、最後は自分の好みにマッチするかが一番重要ですね。

お奨めの書籍を挙げます。


スッキリわかるJava入門 第3版 (スッキリわかる入門シリーズ) | 中山清喬, 国本大悟, 株式会社フレアリンク |本 | 通販 | Amazon
Amazonで中山清喬, 国本大悟, 株式会社フレアリンクのスッキリわかるJava入門 第3版 (スッキリわかる入門シリーズ)。アマゾンならポイント還元本が多数。中山清喬, 国本大悟, 株式会社フレアリンク作品ほか、お急ぎ便対象商品は当日お届けも可能。またスッキリわかるJava入門 第3版 (スッキリわかる入門シリーズ...

はじめてプログラミングに取り組む入門者向けの本。
入門書として必要な内容が一通り盛り込まれており、Javaプログラミングの考え方が分かり易く解説されています。

大きな特徴として、開発環境を自分で構築しなくともプログラミングを始められるよう、クラウド開発環境「dokojava」が提供されています。そのほかにも、入門者の方でも読み進めやすいような工夫が随所になされています。

Amazonのサイトで中身のサンプルが公開されています。入門者の方にお奨めの一冊です。


新・明解Java入門 第2版 (新・明解シリーズ) | 柴田望洋 |本 | 通販 | Amazon
Amazonで柴田望洋の新・明解Java入門 第2版 (新・明解シリーズ)。アマゾンならポイント還元本が多数。柴田望洋作品ほか、お急ぎ便対象商品は当日お届けも可能。また新・明解Java入門 第2版 (新・明解シリーズ)もアマゾン配送商品なら通常配送無料。

同じく、はじめてプログラミングに取り組む入門者向けの本。
ただし、上の本が余分な内容を削ぎ落とすことにより分かり易さを高めているのだとすれば、こちらの本はより詳しく説明することにより分かり易さを高めています。比較的文字が多く、より “参考書” 的な色合いを感じるかもしれません。

著者の柴田望洋さんはプログラミングに関する多数の書籍を著しており、培われたノウハウは本書にも遺憾なく発揮されています。

こちらもAmazonのサイトで中身のサンプルが公開されていますので、自分の好みに合う方を選択すると良いでしょう。

初級者~中級者向け書籍

オラクル認定資格教科書 Javaプログラマ Silver SE11(試験番号1Z0-815) | 山本 道子 |本 | 通販 | Amazon
Amazonで山本 道子のオラクル認定資格教科書 Javaプログラマ Silver SE11(試験番号1Z0-815)。アマゾンならポイント還元本が多数。山本 道子作品ほか、お急ぎ便対象商品は当日お届けも可能。またオラクル認定資格教科書 Javaプログラマ Silver SE11(試験番号1Z0-815)もアマゾン配送...

Javaの文法を一通り覚えてそろそろ入門者卒業かなと思う方には、Java認定資格への調整をおすすめします。

資格認定試験では基礎的な知識を網羅的・体系的に理解しているかが試されるため、自分の知識を棚卸しし弱点を補強することができます。私も自分の思わぬ勘違いや理解不足に気付いたものでした。

オラクル認定資格は Bronze – Silver – Gold のレベルに分けられていますが、初心者でもSilverには調整したいところです。

なお、本稿執筆時点では Java11 を対象とした試験が最新バージョンとなっています。2021年9月に Java17 がリリースされましたので、ほどなく試験バージョンも追随するものと思われます。今後の動向に注意してください。


Effective Java 第3版 | Joshua Bloch, 柴田 芳樹 |本 | 通販 | Amazon
AmazonでJoshua Bloch, 柴田 芳樹のEffective Java 第3版。アマゾンならポイント還元本が多数。Joshua Bloch, 柴田 芳樹作品ほか、お急ぎ便対象商品は当日お届けも可能。またEffective Java 第3版もアマゾン配送商品なら通常配送無料。

Javaプログラミングにも慣れ、そろそろ初級者も卒業かなと思う方には、是非この本をおすすめします。

プログラミングの世界において文法を習得するというのは、広い世界のほんの入り口に立ったに過ぎません。より高度なプログラムを生み出すために、どのようなことを考え、文法をどのように駆使すればよいのか。この本が教えてくれます。

本書により初級者から中級者へのステップアップを図ることができるでしょう。Javaプログラマを自認するならば必携の書です。

Java API仕様

Javaプログラミングでは、すべての機能を自分でゼロから作ることはありません。
文字列の操作をしたければ String クラスを使いますし、ランダムな変数が必要な場合は Random クラスなどを利用します。
本サイトの題材である reversi でAIプレーヤーを作成する際も、予め用意された Board クラス、Point クラス、Rule クラスなどを利用します。

このように予め提供されているクラスなどを利用する場合は、その利用方法(API仕様と言います)を確認してから使用する習慣をつけましょう。これをするのとしないのとでは、上達のスピードがガラリと変わります。

Java標準ライブラリAPI仕様

reversi API仕様

Eclipse関連

Javaプログラミングの基礎はきちんと書籍に基づいて勉強すべきだと思いますが、Eclipseなどのツールの使い方は “習うより慣れよ” です。とにかくいじり倒すのが習得の早道です。
せっかく本を買っても、WebからダウンロードしてみたらEclipseのバージョンが進んでおり変わっていた、余計に混乱した、なんてこともありますし。

この部分にお金と時間をかけることは、あまりおすすめしません。
本サイトやその他のサイトをググった方がよいでしょう。

なにか不明点などありましたら、本サイトが力になれるかもしれません。こちらに質問をお寄せいただければと思います。

アルゴリズム関連

VisuAlgo

「アルゴリズムってなに??」 そんな方にはこちらのサイトをお勧めします!

たとえば、いくつかの数字を小さな順に並べる(ソートする)方法についても、色々なやり方(アルゴリズム)が発明されています。このサイトは、それらを動くビジュアルで見せてくれます。文字で読むと何やら難しく感じるものでも、直感的に理解できるかもしれません。

アルゴリズムを楽しく学べ、調べることができるサイトです。

VisuAlgo - アニメーションを介してデータ構造とアルゴリズムを可視化する (Japanese)<br>
VisuAlgo は, 学生が自分のペースで自習することでデータ構造とアルゴリズムをより理解できるためのツールとして 2011 年に Steven Halim により構想されました. VisuAlgo は 24 時間いつでも教えてくれる Halim 博士のクローンのようなものです. Halim 博士は何人かの Nati...

Project Euler

プログラミング技法とアルゴリズムの知識・センスは似て非なるものです。
何か難しい問題を解こうとするとき、解決方法を自動化するためのプログラミング技法に加えて、適切な解決方法、すなわちアルゴリズムを見つけ出すことが必要になります。

Project Eulerでは難易度の異なる数多くの問題が用意されており、プログラミングで問題を解くことを通じて、楽しみながら数学的・アルゴリズム的なセンスを培うことができます。

一段レベルの高いプログラマを目指したい方にお勧めのサイトです。


スキル向上にとって継続は力なり!
そのためには、何はともあれ楽しみながら取り組むことが一番です。
みなさんご自身に合った楽しみ方を見つけることをお祈りいたします!

本サイトに対するご意見などありましたらこちらにお寄せいただけますと幸いです。

タイトルとURLをコピーしました