Javaとは?プログラミング初心者は学ぶべき?をわかりやすく解説します!

ウサギ
ウサギ

Javaって、どんなプログラミング言語なの?

勉強したほうがよいプログラミング言語?

イヌ
イヌ

Javaだね!

できるだけ、わかりやすく解説するね〜

ウサギ
ウサギ

お願いします〜

本記事の内容

・Javaについて
・プログラミング初心者はJavaを学ぶべきか
・初心者におすすめのプログラミング言語

本記事の信頼性

イヌ
イヌ

・小規模の開発会社、上場企業2社でエンジニアを経験

・正社員、フリーランス合わせて10年以上エンジニアとして活動

・現在、フリーランスエンジニアとして時給5桁で活動中

この記事を書いているイヌは10年前、独学でプログラミングを始めました。

プログラミング学習を始めようとすると、いろいろなプログラミング言語があって、どの言語から始めたらよいか、わからないですよね。

今回は「Java」というプログラミング言語について、初学者に向けてわかりやすく解説します!

気楽に読み進めてもらえればうれしいです!

Javaについて

Javaは、1996年に発表されたプログラミング言語です。

世界中で利用されているプログラミング言語の一つです。

日本でも多数のプロジェクトやプロダクトで利用されています。


Javaの特徴は3点あります。

オブジェクト指向、静的型付け言語、JVMです。

なにやらチンプンカンプンですよね。

1つずつ説明していきますね。

※ ちなみにこのような用語は、覚えないとプログラミングを始めらないわけではありません。少しずつ学ぶにつれて、わかってくるので、あまり気にせずに、こういうものなんだなと眺めてもらえればと思います。

オブジェクト指向言語

Javaは、オブジェクト指向プログラミングで開発する言語です。

Javaにおけるオブジェクト指向プログラミングは、クラスというプログラミングの設計図に保存するデータや実行するメソッドを定義して、インスタンス化という設計図から実際にプログラミング上でで利用できる形に生成して利用する。という一覧の作業のことです。

ちょっと言葉だけでは難しいですよね。

大切なのは、Javaはクラスを利用するオブジェクト指向言語なんだということを押さえておけばよいと思います。

静的型付け言語

Javaは、静的型付け言語です。

静的型付けというのは、事前に変数や関数でつかう型を定めておき、それ以外の型を利用しようとすると、コンパイルできない環境のことを言います。

ちょっとわからないですよね。

コンパイル※1というのは、Javaで書いたコードを実行するために、JVM※2が理解できるような形式に変換することです。

※1 コンパイルは、Javaだけではなく、静的型付け言語であれば一般的に必要とされる作業です。

※2 JVMは次の項目で説明します。

例えば、aという変数には数字だけ入れることができます。と定義します。

プログラミングを実装したときに、aに文字列を入れて、コンパイルをすると、「数字の型が設定されているので、文字列は入れられませんよ!」とエラーになります。

一方、動的型付け言語であるRubyやPythonはコンパイル作業はなく、書いたプログラミングをそのまま実行することができます。

そのため、動的型付け言語は、実際にユーザーが利用されているときにエラーが発生する可能性が高くなります。

このような特徴があるため、一般的に、静的型付け言語のほうが、動的型付け言語より、安全に開発することができます。

JVM

JVMは、Java Virtual Machineの略で、Java仮想マシンのことをいいます。

JVMは、WindowsやMacOS、Linuxといったオペレーティングシステム上で、Javaで開発されたプログラミングを実行するための環境のことです。

Javaは「Write once, run anywhere」という「一度(プログラムを)書けば、どこでも実行できる」をコンセプトとしていました。

OSにJVMさえ入っていれば、Javaは動くよ。ということです。

これだけ聞くととても便利なプログラミング言語に聞こえます。

しかし実際はうまく動かないこともあり、結局のところ、それぞれのOSで調整のコードが必要な場合もあります。

一度書いたらすべて動くというわけではないです。


ここまで、Javaの特徴をお伝えしました。

ここで1つ注意してほしいのが、日本でJavaを利用している会社のほとんどが、システムインテグレータ(SIer)と呼ばれるベンダー企業です。

日本でIT企業というと、富士通やNEC、NTTデータなど大手企業の名前を耳にすると思いますが、これらはすべてSIerです。

ちなみに、なぜSIerの印象が強いかというと、日本のIT企業の約7割強がSIerだからです。

日本は72%がベンダ企業に属する…

第1部 特集 人口減少時代のICTによる持続的成長 – 平成30年版情報通信白書 – 総務省

SIerは、これからプログラミングを学ぼうとしている人は、第一候補として目指すのはおすすめしない業界です。

日本の大企業なので、基本は新卒一括採用ですし、昔ながらの体制で仕事をしている会社が多いです。

ベンダー企業に対して、自社開発をしている企業をユーザー企業といいますが、これからプログラミングを学ぶ方は、ユーザー企業を目指すことをおすすめします。

プログラミング初心者はJavaを学ぶべきか

Javaを学ぶべきかは、この記事をごらんになっているあなた次第です。

どの業界でプログラミングを利用し、エンジニアとして働きたいか。という希望によります。

企業の種類別に説明したので、ごらんください。

自社開発企業で働きたい

Webサービスを作る

一部自社開発企業でも、Javaを利用してWebアプリケーションを開発している企業もあります。

ただ一般的には、RubyやPython、PHPやGoで、Web開発をしている自社開発企業が多いです。

学んだ基礎がそのまま実務に生かせるようにすることを考えると、エンジニアになるために第一歩として、Javaをチョイスするのはあまりおすすめしません。

Androidアプリを作る

現在、Androidアプリを開発する主要な言語はKotlinです。

Javaと同じJVM上で動作する新しい静的型付け言語です。

Kotlinが登場するまでは、JavaでAndroidアプリをつくっていました。

Androidアプリを開発・保守するにあたっては、Javaの知識が必要になる可能性があります。

Androidアプリであれば、第一候補はKotlinになると思いますが、Javaから始めても悪くはないかもしれません。

Web制作会社で働きたい

Web制作とあわせて、システム開発案件を請け負っている会社も多くあります。

ただ、Web制作と合わせてのシステム案件はWordPress開発が多いです。

WordPressはPHPで開発されているので、Javaを学習することは直接の利点にはなりません。

Web制作に関わるのであれば、PHPの学習をおすすめします。

SIerで働きたい

SIerにもレベル感があり、1次請けの最大手SIerは転職が難しいですが、場合によっては、2次請け、3次請け、4次請けであれば、入社できる可能性はあります。

ただ、上流から開発を請け負うような立ち位置のSIerだと、スケジュールや金額の調整が難しいため、ブラック企業化する傾向が高いです。

問題ない企業も当然ありますが、そもそも入社してみないとわからないことも多いので、この業界自体をあまりおすすめできないです。

ただ、入社難易度として高くないので、IT企業を体験するという観点でいえば、選択肢に上がるかもしれません(パワハラガンガンのブラック企業だったら、迷わず逃げてください)。

SIerの多くはJavaが利用されているので、Javaを学ぶことは役立つかもしれません。

ただSIerに入って、ずっとExcelばかりで、ほとんど開発をすることがない。という話もよく聞きますので、企業選びは慎重にしたいところです。


ちなみに「Web制作」と「Web開発」の違いについては、以下の記事で説明しています。

初心者におすすめのプログラミング言語

初めてのプログラミング言語は、JavaScriptがおすすめです。

※ ちなみに JavaScript と Java は、全く別のプログラミング言語なので注意してくださいね

パソコンとブラウザがあれば、プログラミングを体験できるので、手軽さでは圧倒的にナンバーワンです。

もしMacをお持ちであれば、最初からRubyやPythonがインストールされているので、RubyやPythonから始めるのもよいですね。


JavaScriptもRubyもPythonも、プログラミング言語の基本は変わりません。

変数があり、関数があり、繰り返しがあり、条件分岐があります。

エンジニアは、はじめに深く学んだプログラミング言語が、考え方のベースになる傾向があると、イヌは思っています。

これは自然言語である日本語でも同じです。あとから英語を学んだとしても、重要な決断や考えることは日本語で考えることが多いでしょう。

できるだけ学びやすいプログラミング言語を選び、学んでいきましょう!


いろいろなプログラミング言語を以下の記事で紹介しています。

あわせてご覧いただけるとうれしいです。

イヌ
イヌ

Javaの解説でした〜

SIer or Androidエンジニア希望者以外は、最初に学ばなくてもよいと思います〜

ウサギ
ウサギ

なるほど〜、目指すところで変わるんだね!

よくわかった〜。

またね〜

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です