実務未経験者だった私がJavaエンジニアを1年やってみて思うこと

新卒で入社したIT企業では丸2年ほどテスターをさせられていました。
ずっとプログラムを書きたいと上司に言い続けても叶いませんでした。

社会人3年目にしてWebエンジニアを目指すため、
2017年に今の会社に転職し、最初のシステム開発業務が「Java」でした。

私の経験はまだ短いかもしれませんが、Javaのおかげで飛躍して成長できたので
これまでの経験と、必要な事前知識、Javaの今後について語ります。

仕事内容とコツについて

企業秘密なので業界は言えませんが、２つの案件でJavaによるWebシステム開発を経験しました。
１つは企業向けの業務管理システム、もう１つが一般ユーザ向けのWeb会員システムです。

Javaに限らずどの言語でも言えますが、業務では「フレームワーク」を使うのが一般的です。

JavaではSpring Freamwork、Strutsが有名です。
私が実務で経験したフレームワークは「Strut2」でした。

フレームワークを使用するにあたり、基礎として大事になるのは
「MVCモデル」の理解です。
これを頭に入れておくだけでもイメージの付き方に差がつけられます。

MVCモデルとはModel(モデル)、View(ビュー)、Controller(コントローラ)の頭文字を取ったもので、
この３つの関係でアプリケーションの構成を決める概念のようなものです。
「MVCモデル」で検索すると、分かりやすいサイトが沢山出るので
Javaエンジニアを目指す方は上位にヒットするものに目を通しておくことをオススメします！

仕事の環境（ソース管理とDBについて）

開発環境

Javaの製造ではオープンソースの統合開発環境「Eclipse」を使用して開発を進めるのがどの企業でも一般的だと思われます。もしかしたら企業独自の開発環境が存在する会社もあるのかもしれませんが、
私はまだEclipse以外でJava開発しているところを聞いたことがありません。

私が経験した業務ではすでに手順書が存在していたので、それを元に環境構築しました。

ソース管理

そして言語を問わずシステム開発の実務で必ずと言えるほど
存在するのが「ソース管理」です。

昔はCVSと呼ばれるものが主流だったようですが、
最近ではGit、少し古いとSVNを使用しているところがほとんどです。

SVNは単純に「プル(=最新ソースを取得する)」、
「プッシュ(=修正ソースをアップする)」といった具合なので直感的に使えると個人的に思っております。

Gitには「リポジトリ」というものがあるので少々クセがあります。
実際に業務につく前には「サルでもわかるGit入門」を読んでおくと理解しやすいです。

URL：サルでもわかるGit入門
https://backlog.com/ja/git-tutorial/

DB

システム開発で必ず絡んでくるのがデータベース(以下DB)です。
DBではOracle、MySQL、PostgreSQLが有名どころでしょうか。

どのDBを使用するのかは案件次第でしょう。
私が業務で使用したのはOracleのみです。
Oracleはお金が掛かって高額なのですが、性能も高いので規模の大きいシステムに採用されやすいです。

そして実務では「Javaエンジニアです！だからDBは知りません！」だとお話にならないことがほとんどです。
Javaの製造でも必要になるのが「SQL」です。
どのDBを使用しているかかに関係なく「SQL」の基本構文は同じです。

Javaのソースの中に、DBに格納されているデータを画面に表示するSQL「SELECT文」や、
データ更新系の「INSERT文」、「UPDATE文」、「DELETE文」を組み込むことは基本的にあるので
基礎として抑えておくべきでしょう。
ただ、完璧に覚える必要はなくSQLの書き方はGoogle先生で調べれば出るものなので
やんわりと把握しておくとバッチリです！

正直なところ、「Javaしかできないエンジニア」では需要はなくなってしまいますので
DB周りの基礎固めもできるだけ経験を積んでおく必要があります。

仕事の感想と今後について

実際に1年ほどJavaでにシステム開発を通して、設計書を書いてテストケースを作って
デバッグできるまでに短期間でレベルアップできました。

Javaだけでなく、VB.netも経験したのですが
Javaは他の言語に比べて型に厳しく何がダメなのか分かりやすい言語です。
VB.netを触ったときは、型を決めないあいまいな表現ができることがあって
戸惑ったものです。

「言語はJavaがいいよ！」とは断言できませんが、
記述ルールや構成も理解しやすいので、これから初めて実務をこなしていく
新人エンジニアさんにはJavaはかなりオススメだと思っています。

言語資格としてJava Silverに挑戦されるのも勉強方法して推奨します。

Javaの今後については、最近の案件でもJava案件はとても多いので
今後数年は安定しているはずです。

しかし、言語だとPythonが流行ってきていて
最近のトレンド技術はAIやディープラーニングだったりもします。

Javaで安定の技術を獲得して別の言語や技術に活かせるのが
真のエンジニアになる１歩になるのではないでしょうか。