稼ぐIT戦士マニアック!

IT業界で稼ぎたい、更にステップアップしたい。必要な情報を解説します!

未分類

【初心者・未経験者向け】Javaの概要や勉強法の解説!

投稿日:

Javaの概要と特徴

Javaの概要と特徴

 Java(ジャバ)は1996年のリリースから、すでに20年以上の歴史を持つ言語です。
Javaの特徴をピックアップしてみましょう。

・静的型付けのコンパイル言語
・オブジェクト指向プログラミングをサポート
・仮想マシン(Java仮想マシン)で動作

これらの特徴は初めてプログラミング言語を学習しようとしている人達にとって強力な味方になります。

《静的型付けのコンパイル言語》
 プログラミング言語には、大きく分けて静的型付け言語と動的型付け言語があります。
静的型付けとは、変数の宣言時にその種類(例えば整数とか文字列とかオブジェクトのクラスとか)を決めておくことで、コンパイル時に処理の最適化を図ったり実行時のチェックを最小にすることで高速化を図ることが可能です。
逆に動的型付けの場合は変数にどのような型でも設定できますが、コンパイル時の最適化が難しく実行時にしか判らないエラーが発生するリスクがあります。簡単なプログラムを短期間で作成して使い捨てるプログラムには良いのですが、業務系システムでは静的型付けのコンパイル言語が必須に近い要件になります。

《オブジェクト指向プログラミング》
 最近の言語でオブジェクト指向じゃないという言語を探す方が大変かもしれません。この場で説明するのは大変なので割愛しますが、興味のある方は検索エンジン等で調べてみてください。

参考URL:
 https://thinkit.co.jp/article/13058
 オブジェクト指向プログラミングとは

《仮想マシン(Java仮想マシン)で動作》
 Javaのソースコードは機械語ではなく中間言語(Javaバイトコード)にコンパイルされ仮想マシン(Java仮想マシン)の上で動作します。このプラットフォームに依存しない「Write once, Run anywhere(1度書けばどこでも動く)」というコンセプトが、多くの技術者の心を掴んで爆発的に普及しました。
 また平均年収で上位にくるScala(スカラ)やKotlin(コトリン)は、Java仮想マシン上で動作するため既存のJavaプログラムと容易に連携させることができます。将来的にステップアップを目指す場合にも、Javaを学習しておくことは非常に優位に働きます。

Javaで構築できるシステムは?

 Javaで構築できるシステムは、多岐に渡ります。

参考URL:
 https://blog.codecamp.jp/programming-java-possible
 【人気のプログラミング言語Java】出来ることと他言語との比較

 https://eng-entrance.com/java_product_summary
 【初心者向け】これもJava? Javaで作れるものまとめてみた

・単独で動作するサーバー系、クライアント系アプリケーション
・Webアプリケーションプログラム
・組み込み機器等のアプリケーション
・Androidに代表される小型機器のアプリケーション

《サーバー系、クライアント系アプリケーション》
 Javaそのものは通常のコンパイル言語なので、WindowsやLinux上で動作するアプリケーションを開発することが可能です。例えばマイクロソフト・オフィスの互換ソフトとして有名なOpenOfficeなどのディスクトップアプリケーションなどがあります。
 また、みずほ銀行などの大型のシステム案件では、開発費用が 4000億円台半ばで 5000人の技術者を確保したいという事から大量のJava技術者が求められ、その結果IT技術者の派遣に顧客が支払う単価が1割ほど上昇しているといわれていました。

参考URL:
 https://tech.nikkeibp.co.jp/atcl/nxt/column/18/00138/031100028/
 平成とともに終わる、みずほ銀システム統合の特需

《Webアプリケーションプログラム》
 Javaが最も普及している分野の一つが、このWebアプリケーションシステムでしょう。Twitter、g-mail などのWebアプリケーションは有名です。それ以外に企業内の業務系、人事系、経理系、生産管理等のシステムもWebアプリケーションとして数多く構築されています。
 これらのWebアプリケーションシステムは、まだまだ増え続けており改善や保守のできるJava技術者の需要は今後もなくならないと思われます。

《組み込み機器等のアプリケーション》
 Javaは当初から仮想マシン上で動作することで組み込み系への適用が期待されていました。銀行のATMにクレジットカード、ブルーレイなどの組み込み系は表には出てこないかもしれませんが色々なところで使われています。最近ではハードウエアの性能向上のおかげでIoT機器やAI対応機器など、ますます組み込み系システムでのの需要が増すと思われます。

《Androidに代表される小型機器のアプリケーション》
 組み込み系は専用機器に専用アプリケーションを実行しますが、スマートフォン等のアプリケーションは汎用的な小型機器に汎用的なアプリケーションを実行させることになります。世界的にみるとまだまだスマートフォンの需要は伸びるでしょうし、国内においても企業での活用などますます活気が出てきています。
 Javaの基礎を勉強することで、これらのシステムの各種開発案件に参加するチャンスができるでしょう。

Javaを身につけるメリット

 Javaで構築できるシステムは一般的な企業内システムから大規模システム、組み込み系システム、最先端のIoT、AIなど多岐に渡り、活躍の場は数限りなくあるといえます。

 でも、それだけの技術を未経験者が今から身につけるメリットはあるのでしょうか?

技術としてのメリット

 Javaは仮想マシンのおかげでプラットフォームの影響が少なくて済みます。完全に「Write once, Run anywhere(1度書けばどこでも動く)」というわけにはいきませんが、Java言語の基礎を身につけることでエンジニアとしてのチャンスが広がります。この窓口の広さは他の言語ではなかなかありません。

 また現在のシステム開発では一からコーディングするより既存のAPI(Application Programming Interface)やサードパーティーのモジュール等を組み合わせて使用することが多く、Javaもこれらの巨大なAPIが存在しています。
 APIの学習は大変なのですが、JavaにはJavaDoc という標準的なドキュメントがあるため、標準のAPIだけでなくサードパーティー製のAPIや自社開発のAPIなども同じ感覚で見ることが可能です。

需要としてのメリット

 転職やフリーランスとして働く場合のJavaのメリットは、その求人数の多さでしょう。

言語別求人件数:
 1位:Java 2,463件
 2位:PHP  1,422件
 3位:C++  1,270件

参考URL:
 https://toiroha.jp/article/detail/32380
 2018年の人気プログラム言語10選を徹底比較!気になる年収や求人、学習難易度まで

 言語別の平均年収や単価などの情報も色々ありますが、新しい言語は開発者が少ない分単価も上がる傾向にあります。その点Javaは技術者数が多いので単価が大幅に高いわけではありません。その代わり案件も多数あるので、慢性的な技術者不足のため大幅に下落することもありませんし、これからも求人数も単価も大きな変動はなく安定していると思われます。この安定した単価と技術者数の多さは、仕事を依頼する発注側にとっても大きな安心感につながっています。

参考URL:
 https://jp.stanby.com/media/programming_ranking2017/
 プログラマー年収ランキング2017!言語別、第1位はScalaの626万円

Javaを最短で身につける学習、勉強方法

 一般論として新しく言語を学習する場合、書籍/セミナー/スクールなど、色々な方法があると思います。Javaにつてはインターネットで検索すれば色々なサンプルが見つかりますし、書籍/セミナー/スクールなど学習する環境は非常に良く整っているといえます。

Webの無料情報

 趣味プログラマーならWebの無料情報とopenJDKやEclipse (統合開発環境)などで完全無料で始めることができます。データベースも無償版はたくさんあります。WebアプリケーションならTomcatが有名ですし十分実用的なシステムの構築が可能です。
 ただし「最短で身につける学習方法」ではありません。

参考URL:
 https://blog.codecamp.jp/java_programming_study
 【入門者向け】Javaを独学で学ぶための最強サイト9選

本、参考書籍

 Javaの書籍は、それそこ山ほど出ています。その場合薄い入門書より分厚い書籍の方が実はページ数が多い分丁寧に書かれています。本格的にJavaを学習するつもりなら、入門書ではなく専門的な書籍が良いと思います。
 おすすめは O'Reilly's(オライリー)発行の翻訳書です。できればJava9 以降に対応した書籍が良いと思います。それと、ある程度Javaが理解できた頃にぜひ読んでおいていただきたいのがEffective Javaです。

参考URL:
 https://www.oreilly.co.jp/catalog/
 オライリー・ジャパン発行書籍一覧

 https://www.amazon.co.jp/Effective-Java-%E7%AC%AC3%E7%89%88-Joshua-Bloch/dp/4621303252/ref=dp_ob_title_bk
 Effective Java 第3版 2018/10/30 Joshua Bloch (著), 柴田 芳樹 (翻訳)

セミナー

 セミナーの場合、有料と無料がありますが、無料セミナーは企業宣伝が目的の場合が多いので初学者の学習目的には合いません。有料セミナーの場合はハンズオンセミナーが良いのですが、やはり回数が限られることがあるので、手当たり次第に参加するわけにもいきません。
 ただしセミナーといっても2週間程度ぶっ通しの有料セミナーなどは非常に効果的です。

スクール

 本当にJavaを短期間で学習するならスクールが一番です。セミナーに近い短期のスクールや6か月や9か月などの中・長期スクールもあります。値段もそれなりに掛かりますが、もしフリーランスや派遣業に登録しようと考えているなら給料1か月分程度の出費で済むなら「最短で身につける学習法」になります。

独学はあり?

 有料セミナーやスクールは、金銭的にも時間的にも敷居が高いので。まずは書籍と無料セミナーを利用した独学という手も考えられます。
 ただし「最短で身につける」というのが目的の場合は、独学のみで実現するのは難しいといえます。独学するの場合でも、スクールや有料セミナーとうまく併用することで、ある程度支出を抑えながら短期間に学習効果を高めることが可能です。

Javaのまとめ

 Javaは企業内のWebプリケーションでの業務システムとして広く認知されており、組み込み系、スマートフォン等の小型機器、銀行系の大規模システムなど、多岐に渡るアプリケーションがJavaで書かれています。

 業務としての求人数は他のどの言語よりも多くあります。技術者数も多いので単価が高騰することはありませんが、仕事もなくなることは当面ありません。逆に企業側(発注側)から見ると豊富な人材がおり案件単価も安定しているJavaは安心して発注することができるということです。

 そんなJavaを最短で身につける最も良い方法は、書籍や無料セミナーによる自習と並行して有料セミナーやスクールを利用するとよいでしょう。

 IT技術者を目指す場合でも派遣やフリーランスで案件をこなすにも、Javaの技術を身に付けておくことは非常に大きな魅力になるのではないでしょうか?

-未分類

Copyright© 稼ぐIT戦士マニアック! , 2018 All Rights Reserved Powered by AFFINGER5.