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

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

Javaプログラミング関連

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

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

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

reference1

入門者~初級者向け書籍

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

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

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

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

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

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

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

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

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

初級者~中級者向け書籍

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

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

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

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

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

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

初級者が手を出す必要はないと思いますが、中級者はぜひ押さえておきたいデザインパターン。

Javaの世界では様々なライブラリやフレームワークが提供されていますが、それらは大抵、何らかのデザインパターンに則っています。それらを利用する際や、他人のコードを読んだりチームで仕事をしたりする際に、デザインパターンへの理解があるのと無いのとでは大きな差が出ます。

言わずと知れた、結城浩さんの著。

Java API仕様

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

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

■Java標準ライブラリAPI仕様

http://docs.oracle.com/javase/jp/8/docs/api/index.html

■reversi API仕様

http://reversi.hotchpotch.xyz/docs/api/index.html

Eclipse関連

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

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

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

アルゴリズム関連

■VisuAlgo

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

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

英語のサイトであり操作方法を自分で見つける必要はあるのですが、、、
アルゴリズムを楽しく学べ、調べることができるサイトです。

http://visualgo.net/

■Project Euler

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

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

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

日本語翻訳サイト:http://odz.sakura.ne.jp/projecteuler/index.php?Project%20Euler
本家サイト(英語):
https://projecteuler.net/

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

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

スポンサーリンク
reversi_main 336*280
reversi_main 336*280

シェアする

フォローする