プログラミングの準備

【簡単3ステップ】JavaScriptによるwebアプリケーションの作り方

Java を独学で勉強しているけれど、本当に身につけることができるのだろうか?初心者には難しいのではないか?他のプログラミング言語もたくさんあるけれど、自分に Java は合っているのだろうか?

このような疑問を抱えながら独学で勉強をしていると、なかなか思うように進まないと思います。そこで、プログラミング初心者の方が少しでも前向きに Java 学習に取り組めるように、現役エンジニアである筆者が Java について解説していきます。

Java ってどんな言語?何ができるの?

Java ってどんな言語?何ができるの?

Java は魅力に溢れたプログラミング言語です。まずはその魅力についてお伝えします。

汎用性が高く、いろいろなものを作れる

Java の大きな特徴として挙げられるのが、非常に高い汎用性です。

Java を用いて開発できるものは多岐に渡ります。例えば、銀行のシステムや証券のシステムに代表されるような大規模なシステム、大小を問わない Web アプリケーション、ゲーム、Android アプリなどです。

また、あまりメジャーではありませんが、電子機器やロボットを開発することもできます。

このことから、Java を身につけることで組込み系、業務系、Web系、ゲーム、アプリなど、将来様々な分野で活躍できることが見込まれます。

身近なところで使われていて、世界的大企業も注力!

無意識のうちに、私たちは Java の恩恵を受けています。銀行のATMや証券・FXなどの取引システム、クレジットカード、POSレジなど、お金のやり取りをするところのほか、Android アプリやゲーム、Webサイトなどにも頻繁に利用されています。

また、世界的な大企業である Google, Amazon, Microsoft も Java を利用しており、3社ともに JDK ( Java Development Kit ) と呼ばれる Java を使った開発に必要な諸々の機能を詰め込んだキットの開発に貢献しています。そのうち、Amazon と Microsoft は独自の JDK を公開しています ( 参考: Amazon の JDK「Amazon Corretto」、Microsoft のJDK「Zulu OpenJDK」)。

他の言語を扱う上でも重要!?

Scala ( スカラ ), Kotlin ( コトリン ) という2つのプログラミング言語について聞いたことはありますか?これらは比較的新しいプログラミング言語ですが、すでに多くの企業で取り入れられています。

理由の一つとして、この二つの言語に Java との互換性があることが挙げられます。Java との互換性があると、今までに Java で作ったものをそのまま利用することができたり、Java を利用した外部システムとの連携が可能になります。

多くの新しいプログラミング言語は、今まで作ったものを捨てることになったり、外部の Java システムと連携ができなくなることから敬遠されます。この欠点を払拭したため多くの企業で取り入れられるに至ったのです。

しかし、これは裏を返せば Scala や Kotlin を利用する上でも Java の知識が必要になってくるということです。

このように、Java の知識は Java の現場だけでなく、Scala や Kotlin の現場でも重要視されます

Scala, Kotlin, Java、どれから勉強すればいい?

Scala や Kotlin について少し触れたので、Java よりもこちらを勉強した方が良いのかと気になる方もいらっしゃると思います。

Scala は関数型プログラミングと呼ばれるプログラミング手法に特化した言語です。この手法を用いて開発をする企業はどちらかというと少数派です。なので、「関数型プログラミングに興味がある」「Scala で関数型プログラミングをしているあの会社に入りたい」など、明確な目的がある場合におすすめです。

Kotlin は「Java よりも簡単な記法で Android アプリ開発を行いたい」という思いから生まれたプログラミング言語です。なので、Android アプリ作りを目的にしている場合におすすめです。

しかし、Java で Android アプリを開発している企業も多いため、転職活動における武器になるプログラミング言語を検討している場合は注意が必要です。Java を覚えた後ならば Kotlin の習得は容易なので、とりあえず Java を覚えるのが無難でしょう

Java はこれまでに述べた通り、汎用性の高いプログラミング言語です。オブジェクト指向プログラミングと呼ばれる、多くの企業が採用しているプログラミング手法に特化しており、Android アプリ開発だけでなく様々なものの開発が可能です。「将来に幅広い選択肢を残したい」「様々な企業に対して武器なるスキルを覚えたい」「とにかくいろいろなものを作れるようになりたい」といった場合におすすめです。

Java を独学で身につけるのは難しい?

Java を独学で身につけるのは難しい?

Java に「独学で身につけるのが難しい」「初心者は避けるべき」というイメージを持っている方も多いと思います。そもそもなぜそんなイメージがあるのでしょうか。また、本当にプログラミング初心者は Java を避けるべきなのでしょうか。順に説明していきます。

Java は初心者には難しいと言われるのはなぜ?

世間では「Java はプログラミング初心者には難しい」といった意見を時折見かけますが、これはなぜでしょうか。

Java は銀行のATMシステム、証券やFXのやり取りを行うシステムなど、大規模で高い信頼性を要求される開発にも使われる言語です。なので、他の言語と比べて入門書が分厚く、ちょっとしたプログラムを動かすのにも多くのことを理解している必要があります。

しかし、今述べた「理解している必要のある事」というのは、エンジニアを目指すならば、どんなプログラミング言語を扱う上でもいずれは必ず理解しなければならない事です。Java を学ぶ上で最初に立ちはだかる壁は、他の言語を学んでいってもいずれは必ず立ちはだかります。飛び越えるのが早いか遅いかの違いなのです。

つまり「Java はプログラミング初心者には難しい」と言われるのは、最初に立ちはだかる壁が多いことが理由です。

本気でエンジニアを目指すなら、初心者にも Java がおすすめ!

筆者は、Java は本気でエンジニアを目指す全ての方におすすめできる言語だと考えています。

上で述べた通り、Java には入門直後から多くの壁が立ちはだかります。例えば「型」「オブジェクト」「インスタンス」「クラス」などの用語や概念を比較的早期に理解する必要があります。

しかし、これらは本気でエンジニアを目指すならば必ず理解しなければなりません。筆者の周りには、Ruby や JavaScript, Python といったプログラミング言語からプログラミングに入門したものの、これらの概念を理解できず、エンジニアになる前に挫折してしまった人もいました。

初心者のうちに Java を習得しておけば、Ruby や JavaScript, Python の中級者が挫折しがちなポイントで挫折しにくくなります

さらに、一度 Java を習得できれば、他の大抵のプログラミング言語をスムーズに習得できるようになります。Java で学んだことを応用するだけで学習できるプログラミング言語がほとんどだからです。

また、オブジェクト指向やデザインパターンについての書籍は Java を用いて説明されていることが多く、これらを学習する上でも Java の知識は役に立ちます。

Java の最初の壁は決して簡単に超えられるものではありませんが、それさえ超えてしまえば、そのあとはエンジニアになるための知識がするすると身につくようになるはずです。プログラミング初心者の方でもエンジニアを目指すならば是非習得するべき言語です。

しかし、「エンジニアになるつもりはないけれど、プログラミングは学んでおきたい」「趣味として触ってみたいと思った」「一人で小さな Web サイトが運営できれば十分」などの場合には、最初の壁を超える必要がありません。この場合、Java は避けるべきプログラミング言語なので注意してください。

簡単3ステップ!Java で Webアプリケーションを作るまで

簡単3ステップ!Java で Webアプリケーションを作るまで

それでは、Java を使って Web アプリケーションを作るまでの具体的な学習の流れを説明します。

ステップ1. 学習環境を整えよう

まずは、Java の学習をするための環境を整える必要があります。いわゆる「環境構築」と呼ばれるものです。

意外に思われるかもしれませんが、プログラミング学習の第一歩である「環境構築」は手順が複雑なことが多く、ここで挫折する人も多いです。

そこで、プログラミング学習サイト「ドットインストール」と書籍「スッキリわかるJava入門 第3版」を紹介します。

3分の積み重ねで Java の記法をマスターできる!「ドットインストール」

プログラミング学習サイト「ドットインストール」では、3分という短い時間に1講義が収録されていて、その積み重ねで Java の記法をマスターできるようになっています。1講義が3分なので隙間時間で進めることができますし、気軽に進めることができます。また、動画形式なのでわかりやすいのも特徴です。

現在、最初の5動画が無料で公開されているので、環境構築については無料で視聴することができます。

現役 Java エンジニアがおすすめする入門書「スッキリわかるJava入門 第3版」

Java の入門書は数多く出版されていますが、筆者は中でも「スッキリわかるJava入門 第3版」をおすすめします。

こちらの本では初心者が躓きがちな「最初の一歩」はもちろん、中級者以上になるために必要なステップについても、とても丁寧に解説されています。また、読者を飽きさせないような工夫が随所に見られ、楽しく学習を続けることができます。

ステップ2. Java を書いてみる

学習環境を整えたら、とにかく書くことを続けましょう。この時も、先ほど紹介した「ドットインストール」と「スッキリわかるJava入門 第3版」に沿って学習することをおすすめします。なお、「ドットインストール」の全ての動画を視聴するには月額1080円のプレミアムサービスへの登録が必要です。

侮るなかれ、必ず実力につながる「写経」

この段階では、とにかくサンプルプログラムを写経することが大切です。丸写しすることに意味があるのか疑問かもしれませんが、実際に自分の手でソースコードを入力することで、自分がミスしやすい箇所を知ったり、ついつい読み飛ばしてしまっていた箇所に気づくことができます。

写経は、少しずつですが必ず実力を上げることができる学習方法です。たくさんのプログラムを写経した経験があってこそ、自分のプログラムを組むことができるようになるのです

わからないエラーが出たら?

サイトや本を参考にしながら進めていると、載っていないエラーに出くわすことはよくあることです。慌てる必要はありません。落ち着いて、エラー文を検索窓にコピペしましょう。同じように困っていた先人たちが、どのように解決したのかを記した記事がヒットするはずです。

少し Java に慣れてきたなら、わからないことがあったら公式ドキュメントをチェックする癖をつけましょう。公式ドキュメントは、インターネット上では数少ない「必ず正確な情報」です。はじめのうちは専門用語が多くて難解に感じると思いますが、少しずつでも理解できるようにしていくと、後々の学習がぐっと楽になります。

公式ドキュメントでわからない場合には、Qiita」「stack overflow」といったサイトを参考にすると良いでしょう。どちらも多くの現役エンジニアが利用しているサイトです。

挫折しないことが一番大事!

Java に限らず、プログラミングを学習する上で最も大事なことは挫折しないことです。

専門用語ばかりでわからない、なにやら複雑に述べていてわからない箇所などは、無理に執着して完全に理解する必要はありません。日常生活において、座学だけでなく実践でわかることが多いように、プログラミングも実践してわかること、とりあえず真似しているうちに理解できることが多いのです。

なので、よくわからないけれどとりあえずやってみること、わからなかったけど今は一旦飛ばすことも大事です。

ステップ3. Webフレームワーク「Spring Boot」

Webアプリケーションを作るまでの最後のステップは、Webフレームワークの学習です。

Webフレームワークとは、簡単に言うとWeb開発を少しでも楽にするために作られた、いろいろな機能を持った枠組みのことです。すでにある枠組みを使って、オリジナル部分を付け加えたり、上書きしたりすることで Webアプリケーションを開発することができます。

Webフレームーワークにも様々な種類がありますが、初めての Webアプリケーション開発なら Spring Boot というWebフレームワークをおすすめします。比較的少ない手順、簡単な記法で Webアプリケーション開発ができることが特徴だからです。

入門書には「Spring Boot 2 プログラミング入門」という本をおすすめします。Spring Boot の入門書の中では最近に出版されたため情報が新しく、平易な文章で解説されており、サンプルプログラムも豊富です。

ここまでの学習で、自分一人で開発・運用できるような小さなWebアプリケーションであれば、どのようなものでも作れるようになります。例えば Twitter や掲示板などのようなメッセージ投稿アプリ、タスク管理アプリ、カレンダーアプリ、自前のブログなどです。

実際に自分で使いたいアプリケーションを作るとモチベーションも上がります。自分だけのアプリケーションを作ってみましょう。

Webアプリケーション以外を作るには?

ここまで Webアプリケーションを作れるようになるまでの学習方法について説明してきましたが、Web アプリケーション以外のものを作るにはどうすればいいのかについて補足します。

ステップ 1 と 2 については他のものを作りたい時にも手順は変わりません。ステップ 2 を終えたら、作りたいものに合わせて入門書を選びましょう。Android アプリならば Android アプリ作りの入門書、ゲームならゲーム作りの入門書といった具合です。

Java はとても使用者が多い言語なので、どの分野でも Java を使った入門書が見つかるはずです。プログラミング学習サイトも良いですが、具体的に学習したいものが決まった後ならば、より詳しい解説のある書籍のほうがおすすめです。

転職で武器にしたい!Java 学習はどこまで続く?

転職で武器にしたい!Java 学習はどこまで続く?

プログラミングの学習には終わりがありません。現役エンジニアも、日々勉強を続けています。

しかし、転職を目的としている場合には、どこまで学習すれば武器にできるか気になるでしょう。そこで、Java の基本的な記法をマスターした後、どのようなスキルを身につければ転職活動で有利になるかを説明していきます。

オブジェクト指向について学習しよう

まずはオブジェクト指向を理解しましょう。すでに少し触れましたが、Java はオブジェクト指向と呼ばれるプログラミング手法に特化した言語です。転職活動では、オブジェクト指向がわかっていなければ Java を書けるとはみなされません

筆者がおすすめするのは「新わかりやすいJava オブジェクト指向徹底解説」という本です。この書籍では、オブジェクト指向について初心者にわかりやすいように基本から丁寧に解説されています。また、Java の記法についても少し説明されているので、おさらいにもなります。練習問題も豊富なので、着実にオブジェクト指向を自分のものにできるでしょう。

いろいろなフレームワークやライブラリを使ってみよう

オブジェクト指向を身につけたら、オブジェクト指向を意識しながらいろいろなものを作ってみましょう。その際に、今までに使ったことのないフレームワークやライブラリを積極的に導入することで、さらにスキルアップすることができます。

例えば、フレームワークなら「Spring( 先に紹介した Spring Boot は Spring の一種です ) 、ライブラリなら「Guavaに挑戦してみましょう。どちらも世界的に広く使われています。

やりたいことに合わせてフレームワークやライブラリについて検索し、情報量が豊富だったりコミュニティが活発なものを選べば間違いはありません。使い方をマスターするのはもちろんですが、ドキュメントを読みなれる練習にもなります。時には日本語のドキュメントが整っていないこともあるので、Google 翻訳などを使いながら、英語のドキュメントにも慣れていきましょう。

デザインパターンを知って利用しよう

ここまでくると、Java を使った開発にかなり慣れてきているはずです。ここで、転職活動を始める前にもう1つレベルアップするためにデザインパターンについて学習しましょう。

デザインパターンとは、開発現場においてよく起きる状況に対して「こういう風に書くと他の人にも読みやすく書ける」という先人たちの知恵を集め、パターン化たものです。このパターンをマスターすることで、プロのコードを書けるようになります

増補改訂版Java言語で学ぶデザインパターン入門」「増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編」という二冊の本にあるデザインパターンを学習すれば、いつでも現場でコードを書けるだけのスキルが身につくはずです。

しかし、デザインパターンは少し複雑だったり難解なものも多く、まるまる覚えることはなかなかできません。なので、パターンを丸暗記することではなく、いざパターンを使うべき時に「こんなパターンがあったはず」と思い出せることを目標にしましょう。

仕事はテストとは違います。いざ問題に直面した時、利用できるのは自分の頭の中だけではありません。紹介した本を見てもいいですし、パターンの名前で検索してもいいのです。重要なのは、「この問題はあのパターンで解決できる」と思えるようになることです

自信を持って転職活動を!

ここまで紹介したスキルを身につけたならば、もう立派な Java エンジニアです。オブジェクト指向の理解、様々なフレームワークやリブラリの使用経験、デザインパターンの習得。どれも履歴書や面接などで効果的なアピールポイントになります。

生半可な覚悟では、これだけのスキルを身につけることはできません。ここまでやりきったことに自信を持って、転職活動に挑みましょう。

20代向けおすすめプログラミングスクール
30代未経験エンジニア転職におすすめのプログラミングスクール