ブログBlog

Javaプログラマーの必須スキルについて調べてみました(Web系)

投稿日:2020年09月28日 テクノロジー ビジネス

こんにちわ、一年目の江宮です。

この週末にオラクルのJavaGoldを受験しにいってきましたが、見事なまでに惨敗でした。

65点が合格基準点ですが、僕の得点は論外の48点。

Java実務ほとんどなしの状態から黒本3周半、紫本1周という単純勉強法では、そう簡単には問屋が卸してくれませんでした。

少し虚無感に捕われつつも、今月末で契約満了だったり弊社の後期個人重点目標の提出時期と重なったりで、今後何を優先的に学習していくべきか、ふと気になったので整理してみました。


今回は特にWeb系のJavaでのアプリやシステム開発に絞って、ネット上にあふれている常駐案件を数十件ほどリサーチしてみました。

多くの案件がJavaでの開発経験◯◯年以上というのが絶対条件ですが、その中の必要な実務経験スキルを書き留めることにより、今後のスキル習得にブレを生じさせないことを目的としています。


工程
  • 要件定義
  • 基本設計
  • 詳細設計
  • 実装
  • 単体テスト
  • 結合テスト
  • システムテスト

最低必要スキルは「実装」「単体テスト」ですが、上流工程である要件定義や設計を書けるスキルは重宝される印象です。

経験の浅いプログラマーが業務の幅を広げるには、まずは一つ上の詳細設計の学習をしておく必要があるかと思います。


業界専門知識
  • ECサイト
  • 金融システム
  • 生保システム
  • 在庫管理システム 等

〇〇に関する専門知識必須、もしくはあれば尚可というものも多いです。

案件を経験する前では上辺だけしか知識がないので、時間を見つけて分野毎に本を買って勉強するのが得策でしょうか。

直結する知識獲得として効率的なのはプログラミング的思考で書かれた本でしょうが、そういったものが存在するのかは疑問です・・・。


Java以外の言語
  • HTML5、CSS3
  • JavaScript(およびフレームワーク等)

フロントサイドのスキルです。

jQueryやAjaxはもちろん、React、Angular、Vueというフレームワークもよく目にします。

僕はバックエンドを優先的に磨きたいので、今のところは大きく時間を割くつもりはありませんが、自宅でのアプリ作成時に新知識を少し習得できればいいかなと思っています。


フレームワーク(Java)
  • Spring
  • Struts
  • Seasar
  • Play 等

アプリ開発では必ずといっていいくらい、どの案件もフレームワークの経験が問われます。

Java資格の受験勉強を通してある程度の言語知識は蓄積できたので、案件獲得のために今一番力を入れるべきはここでしょうか。

まずは頻出のSpring(特にSpringBoot)の基礎学習とアプリ作成を通して、案件獲得準備をすることが急務です。

ただ、それ以前にフレームワークなしでのJavaのアプリ作成を過去にたった2週間しか行っていないので、そちらの経験値の蓄積も超急務です(汗)


データベース
  • Oracle
  • MySQL
  • PostgreSQL
  • SQLserver

SQL文を使えるかどうかと、各データベースの操作に難がないかが問われるポイントでしょう。

データベースで僕が経験あるのは、独学時にかじった程度のMySQL、実務でSQLserverとAccessです。

確かに初めて扱うときには少し事前学習が必要です。

SQL文はある程度触れるので、自宅でのアプリ作成時に未経験のデータベースを潰しておいたほうが無難そうです。


クラウド
  • AWS(アマゾン)
  • Azure(マイクロソフト)
  • GCP(グーグル)

インフラ系エンジニアの主戦場のせいか、必須案件としては少ないですがスキルがあると一目おかれるといった印象です。

需要は高いですが、クラウド系を実務レベルまで学習するとなると、幅広い分野なのでかなりの時間的コストがかかりそうです。

今の自分にとってはAWS等のアプリ開発に関連する分野の資格をいくつか取得して、スキルシートの評価アップおよび知識習得を目指すのが得策といったところでしょうか。


Linux

インフラ系では必須スキルで、サーバー管理等の案件でよく見かけます。

独学時に概要とコマンド操作方法を軽く勉強したことがありますが、現在はほぼ忘れています(汗)

主戦場ではないので深く学習する必要はなさそうですが、LPICやLinuC資格を保有していると案件獲得の幅が少し広がりそうです。


ツール系
  • eclipse(IDE)
  • ApacheTomcat(Webコンテナ)
  • Junit(単体テスト)
  • Jenkins(CI/CD)
  • Git(バージョン管理)
  • Hibernate(O/Rマッパー) 等

上記以外にも山ほどあります。

スキルシートにたくさん記載されていると印象もよくなり評価の上昇に繋がるでしょう。

さらにそれらのツールが希望案件で実際に使用されるのであれば、その案件獲得の可能性も飛躍的高まりそうです。

実務経験が乏しいうちは自宅でのアプリ作成時に追加で未経験のツールを使用して、スキルシートに一文添えるのが得策かと思います。


まとめ

Javaの開発案件では開発経験2〜3年や5年以上必須という案件が多いので、案件参画にはしばらくはかなり 苦労するかもしれません。

当分は資格受験とアプリ作成を通して、スキルシートのレベルアップとスキル向上を積み上げていくのが良作か思います。
PAGE TOP