こちらの記事では、具体的にJavaはどんな言語なのか、何ができるのか、どのように学習すれば良いのか、どのような仕事につながるのか、など順を追ってご説明していきます。
<目次>
●Javaってどんな言語?
●Javaの特徴は?
・Javaのメリット
・Javaでできること
・Javaで開発されたサービスの事例
・Javaでできないこと、デメリット
●他言語との違いは?
・JavaScriptとの違い
・C#との違い
・Kotlinとの違い
・Javaと同時に学ぶときに相性の良い他言語
●Javaを使ってどんな仕事ができる?
・職種の例
・仕事内容の例
●Javaを学びたい! まずは何をすれば良い?
・Java学習におすすめの参考書、サイト
●Javaで就職できる企業を探すには?
●この記事のまとめ
●先輩エンジニアの選考体験談が見られる! ONE CAREER for Engineerのご紹介
・ONE CAREER for Engineerではどんなことができる?
Javaってどんな言語?
Javaはプログラミング言語の1つで、1995年に正式リリースされました(※1)。
インターネットの普及とともにアプリケーションに多く使われるようになり、2020年代に入ってからも多くのシステムで標準的に使われています。よく似た名前ですが、JavaScriptとはまったく異なるプログラミング言語ですので注意してください。
(※1)参考:Oracle「『Javaはオラクルのもの?』、『いいえ、これからもJavaコミュニティのものです!』――Javaエバンジェリスト 寺田佳央氏が、Javaの現在、未来を語る」
Javaの特徴は?
まずは、Javaの特徴から解説します。
Javaのメリット
Javaは従来の言語とは異なる特徴があり、それゆえに多くのシステムで使われるようになりました。Javaのできることやメリットについて説明します。
どこでも使うことができる
Java最大の特徴として挙げられるのは「Write once, run anywhere」です。
従来のプログラミング言語は、コンパイル(※2)した後に実行ファイルを作ります。これはそのコンピューターを動かすOSに依存するため、例えばWindowsで作った実行ファイルはMacでは使えませんでした。しかし、Javaは自分で独自の実行環境(Java仮想マシンまたはJVMと呼ばれる)を持っており、一度作った実行ファイルをどんな環境でも動かすことができるのです。
現在、Javaにはパソコン、スマホ用エディション(Java SE)があります。また、必要な場合にウェブアプリケーション用エディション(Java EE)、家電などの組込用エディション(Java ME)、ICカード用エディション(Java Card)があり、用途により使い分けられています。
(※2)……プログラミング言語で書かれたコンピュータープログラム(ソースコード)を解析し、コンピューターが直接実行可能な形式のプログラム(オブジェクトコード)に変換すること。Javaでできること
前述の通り、Javaにはどこでも使うことができるというメリットもあり、さまざまな分野で使われています。 システム開発についてはほぼ何でもできると言えますが、特に向いているのは以下の2点です。
1. 大規模開発
Javaは「オブジェクト指向型言語(※3)」に分類されます。
プログラムを集合体としてとらえ、機能を分割することが得意なので、複数人での開発の分担がしやすくなっています。そのため、大人数で開発する大規模開発に向いています。
(※3)……共通点や関連性があるデータやメソッドを1つにまとめて管理する開発手法をいいます。何かの機能を作る場合にイチから取り組む必要がなく、データを渡すだけで簡単に機能を用意できます。2. セキュリティが求められる開発
Javaは外部から受け取ったプログラムを保護された領域で動作させることによって、システムが不正に操作されるのを防ぐセキュリティ機構を備えています。 特にデータの漏えいを避けたい銀行や証券などの金融システムにJavaが多用されています。
3. 多くの技術者が情報を共有している
プログラミング言語の多くは海外で開発されたものであるため、技術情報は海外(主に英語圏)に多く存在し、しばしば日本語での情報を取得しづらいといったことが起こります。一方で、Javaもアメリカで開発された言語ではあるものの、日本でも多くの技術者が使っているため、日本語での技術情報がとても多く共有されています。初心者がつまずいたとき、日本語で情報を探しやすいこともJavaのメリットの1つといえるでしょう。
Javaで開発されたサービスの事例
Javaで開発されているサービスには、私たちがよく使っている有名なものが多くあります。その一部を紹介しましょう。
Minecraft
「世界で最も売れたゲーム」と言われた「Minecraft」も、パソコン版はJavaで開発されています。ゲームの見た目変更や、キャラクターの追加などができるMOD(ユーザーが作った非公式拡張プログラム)もJavaで開発されています。
Evernote
メモアプリとして有名な「Evernote」は、サーバー側の処理でJavaを使っています。 また、Evernoteを利用した独自のアプリもJavaで開発できます。
スマートフォン(Android)のアプリ
Androidアプリの多くはJavaやJVMで動作するKotlinで開発されています。 Javaで開発されたアプリケーションが、Android独自の実行環境(Android Runtime)で動くようになっています。JVMよりもメモリーの消費が少なく、モバイル向けに最適化されています。
Javaでできないこと、デメリット
Javaは比較的「何でもできる」言語ですが、もちろん不得意な分野も存在します。 不得意な分野も理解した上で活用できるようにしておきましょう。
処理が重い
Javaはどこでも使うことができますが、仮想マシン(JVM)を介しているため、実行速度が高いことで有名なGo言語やRustといった言語と比較すると処理が若干重くなります。
とはいえ、1990年代と比べると動かすコンピューターの性能が段違いに上がっているため、常に高速の処理を求められるシステム以外では、そこまで気にすることは無いでしょう。
小規模の開発には不向き
複数人で開発する大規模開発には向いているJavaですが、一人で行うような小規模の開発では既に作ってある機能を再利用したり、拡張したりすることは少ないでしょう。 これらの特徴が裏目に出て、コードが複雑化してしまうことがあります。 シンプルに完結できる小規模の開発であれば、別の言語の方が簡潔に開発できるかもしれません。
習得に時間がかる
初学者にとっては、最初に触れるプログラミング言語がJavaだと、プログラミング言語のルールと合わせて、「オブジェクト指向」も理解しなければなりません。
オブジェクト指向を理解しないままJavaで開発を行うと、Javaの長所をまったく生かしきれず「同じ処理が別々のところに書いてある」「不具合の特定が難しい」などの問題が生じてしまいますので、他の言語に比べてJavaの習得にはどうしても時間がかかります。
他言語との違いは?
次に、他のプログラミング言語との比較を紹介します。
JavaScriptとの違い
JavaとJavaScriptは、名前こそ似ていますが、中身はまったく違います。
Javaは主にサーバー処理などのバックエンドで動作する言語なのに対し、JavaScriptは主にブラウザー上で動作するフロントエンド向けプログラミング言語になっています。 1つのシステム上で同時に使われることも多いですが、それぞれ違う用途で使われています。
c#との違い
JavaとC#は、コードの見た目が非常によく似ています。
それぞれ古くから使われているプログラミング言語「C言語」から派生しており、オブジェクト指向言語であるという共通点を持っています。
ただしこの2つの言語については、開発した会社が異なります。
JavaはOracle(開発当時はサン・マイクロシステムズ)が開発したクロスプラットフォーム向け言語で、C#はMicrosoftが開発した言語です。C#は開発当時WindowsのOSでしか動作しないという制限がありましたが、現在はWindows以外で動作可能となっています。
ゲームアプリを開発する際に使うUnity(ゲームエンジン)にはC#が採用されています。
Kotlinとの違い
KotlinはJavaをもっと簡潔、安全になるように改良したプログラミング言語で、2011年に発表されました。
Javaと同じJVM上で動作するため、Javaと高い互換性を持っています。できることについてJavaと大きな違いはありませんが、Javaの短所をカバーできている部分も多く、2019年にAndroidアプリの推奨言語となりました。
Javaと同時に学ぶときに相性の良い他言語
Javaと一緒に学ぶ言語としては、最初に紹介した「JavaScript」がおすすめです。
バックエンドを得意とするJavaと、フロントエンドを得意とするJavaScriptをそれぞれ学習することで、よりシステム全体を理解しやすくなるためです。
Javaを使ってどんな仕事ができる?
「結局、Javaを扱うことができると、どんな仕事ができるのか」ということはとても重要ですね。
Javaのスキルを持った人がどのような職種で、どのような仕事をできるのか、一例を紹介します。
職種の例
Javaを活用しているエンジニアには、どのような職種があるのでしょうか。
SIエンジニア
SI(システムインテグレーター)企業で勤めるエンジニアを「SIエンジニア」といいます。
SI企業は、主に企業を顧客とする開発企業のことを指します。顧客企業、特に金融系の企業の場合は「とにかく安定して動作するシステム」を求めていますので、安定稼働するJavaを用いた開発が多く存在します。
そのためSIエンジニアの多くはJavaを学習しており、新入社員研修でJavaを扱う企業もあります。
Androidエンジニア
Androidのアプリ開発言語は、Kotlinが主流となりつつあります。
しかし、Kotlin自体はJavaをベースに作られている言語であり、現在でもJavaで記載されたAndroidアプリが多く存在しています。
そのため、Javaの知識を学ぶことで、Androidエンジニアとして活躍する上で役立つといえます。
仕事内容の例
Javaを使った仕事内容の例を紹介します。
業務アプリのバックエンド
Javaは主にSI企業社内の事務処理に使うような業務アプリのバックエンド(画面から入力された内容をもとに処理を行う部分)を担当することがあります。 入力された内容をまとめて他のシステムに送るファイルを作成することもあります。
ウェブアプリ
ウェブアプリはブラウザーを利用して使うため、こちらも主にバックエンドの処理を多く行います。
バックエンド処理はJavaを用いて実装し、ウェブ画面のカスタマイズにJavaScriptを使用することが一般的です。
Android開発
Androidアプリを開発する場合、バックエンドもフロントエンドもJavaを使い開発をすることが主流です。ただし、バックエンドとフロントエンドでは必要な知識が異なるため、基本的にはどちらかをメインで開発します。
Javaを学びたい! まずは何をすれば良い?
Javaを学習してエンジニアを目指したい、という場合、まずは何から取り掛かれば良いでしょうか。
インターネットにはJavaを学習できるサイトも多くありますが、まずは効率的に学べるように計画を立てた方がスムーズに学習できるでしょう。
Javaを学ぶ上での大まかな流れを紹介します。
1. 基本文法を学ぶ
まず、Javaの中でも基本となる文法を重点的に学び、プログラミング言語自体の動きを理解しましょう。特にプログラミング言語自体の学習経験が無い場合は、ここに多くの時間をかけることになります。
2. 実行環境を学ぶ
Javaは実行するための環境にもさまざまな設定が必要になります。
どのようにプログラムが実行されるのか、うまく動かない原因はどこにあるのか、などトライ&エラーを繰り返します。
3. オブジェクト指向を学ぶ
「どう動くか」を理解したら「どのように作れば最も使いやすいプログラムになるか」を学習します。Javaの場合は、オブジェクト指向の概念や設計に必要な要素を学びます。
Java学習におすすめの参考書、サイト
独学をJavaを学習する際は、参考書やサイトをそれぞれのシーンに合わせて利用するのがおすすめです。
例えば体系的な知識を得たい場合は参考書を利用し、特定の情報を知りたい場合にはサイトを利用するなど、それぞれの長所を生かして学習すると良いでしょう。ここからは、Javaを学習する上でおすすめの参考書、サイトを紹介していきます。
スッキリわかるJava入門 第3版 (スッキリわかる入門シリーズ)
プログラミング初心者でもわかりやすく、丁寧な解説に定評のある書籍です。
・スッキリわかるJava入門 第3版 (スッキリわかる入門シリーズ)
マンガで分かる Java入門講座
初学者の「なんとなく難しいかも」というハードルを下げる、漫画形式の入門講座です。全部で832ページというかなりのボリュームですが、すべて無料で見ることができます。
プロになるJava―仕事で必要なプログラミングの知識がゼロから身につく最高の指南書
現役エンジニアがお勧めする「脱初心者」の書籍です。エンジニアとして働きたい方にJavaでプログラミングができるように解説しています。
・プロになるJava―仕事で必要なプログラミングの知識がゼロから身につく最高の指南書
paizaラーニング
動画と練習問題で効率的に学ぶことができるサイトです。ある程度の前提知識が必要になるため、中級者向けとしていますが、初心者でもある程度文法が理解できるようになったらチャレンジしてみるのも良いかもしれません。
たくさん問題を解くことにより、プログラミングスキルが認められると、企業からのスカウトが来ることもあります。
Javaで就職できる企業を探すには?
昨今はさまざまな就職、転職サイトがあるため、1から全部のサイトを探すのは大変です。まずはインターネットで「Java 新卒」で検索をかけて、出てくる企業の傾向を見てみましょう。何社も見ていけば、自分に合いそうな企業の傾向をつかむことができるでしょう。
もし最初から気になる企業があるのであれば、その企業の募集要項から「求めるスキル」をチェックしてみましょう。Javaの記述があったら、どのような仕事ができるのかをイメージできます。未経験でも入社できるSI企業は多く存在しますので、Javaを習得することで文系卒未経験でも就職できるでしょう。
この記事のまとめ
最後に、ここまで紹介してきたJava言語の特徴を紹介します。
・どこでも動くプログラミング言語 ・高いセキュリティ機能をもつ ・日本語の情報も多く勉強しやすい ・Javaを覚えることでSIエンジニアに就職しやすい
Javaは学習できる情報も多く、初心者がはじめて触れるプログラミング言語におすすめです。プログラミング未経験であれば、まずはJavaに触れてみると良いでしょう。
先輩エンジニアの選考体験談が見られる! ONE CAREER for Engineerのご紹介
エンジニア就活をこれから始める、今まさに選考を受けている皆様へ、このような悩みはないでしょうか?
「総合職やビジネス職ばかりで、エンジニア職の体験談が見つからない」「内定を獲得した先輩が、どんな開発経験を積んでいたのか/どんな対策をしていたのか知りたい」
こういった悩みをお持ちの方に向けて、エンジニア職特化の就活サイト、「ONE CAREER for Engineer」をリリースいたしました!
▼ONE CAREER for Engineerエンジニアや技術職の就活・選考体験談を探す ※選考体験談の閲覧には、別途会員登録が必要です。
ONE CAREER for Engineerではどんなことができる?
1. エンジニア特化の選考体験談が見られる!
エンジニア人気企業を中心に、先輩のESや選考体験談を公開中です。
エンジニア就活ならではといえる、「コーディングテスト」の体験談も多数公開しています!
2. 登録いただいたプロフィール情報をもとにポートフォリオを自動生成!
「ご自身の技術経験を企業へどう伝えよう……」とお悩みの方は、こちらの機能をご活用ください!
3. エンジニア職の選考体験談投稿で謝礼(Amazon ギフト券)をもらえる!
ご自身の選考の体験談をご登録いただくことで、謝礼(Amazonギフト券)をプレゼントしております!
エンジニア就活をこれから始める方、選考対策にお困りの方は、ぜひこの機会にご登録をお待ちしております!
(Photo:BAIVECTOR/Shutterstock.com)