1.Javaをマスターする。
(1)Java基本文法。変数・配列・制御文・クラス・コンストラクタ・メソッド・オーバーロードなど。
(2) Javaオブジェクト指向など高度な機能を理解。継承・インターフェース・ポリモーフィズム・コレクション・ジェネリック・ラムダ式・Stream API・モジュールシステム。
(3)Oracle Java Gold・Silver・Bronze資格取得向け書籍・問題集を熟読・理解・記憶、そして模試などで準備して、受験突破。型変換・日付処理・コレクション・オブジェクト指向・ラムダ式・モジュールシステムなどは頻出。
(4)Udemy・TRAINOCAMP・Kindleなどの通信教育・社外研修も有効。
(5)Eclipse・STS・VS Code・GitHub・Gradle・Mavenを使用して開発ツール・ライブラリ管理・開発手法に慣れる。
2.Web技術をマスターする。
(1)JSP & Servletをマスターする。HTML/CSS・JavaScript・JSTLなども使用して理解する。
(2)Springフレームワークを理解する。(DI・JDBC・トランザクション管理・Spring Boot・Spring MVC・ThymeLeaf・REST API・キャッシュ・Spring Securityなど)
(3)テータベース処理を理解する。JDBC・JPA・Hibernate・MyBatis・Postgres・MySQL・Oracle・SQLServer・DBII・NoSQL(LDAP)。
(4)フロント技術を理解する。JavaScript・HTML・CSS・JSP・ThymeLeaf・JQuery・Node.js・Next.js・Vue.js・Bootstrap・React・Angular・Ajax。
(5)DB設計。データモデリング(概念設計・論理設計・物理設計)・JDBC・ORマッピング・SQL・コネクションプーリング・API。
(6)セキュリティ。認証・認可、ランサムウェア攻撃・サポート詐欺、クロスサイトスクリプティング攻撃・SQLインジェクション攻撃、Spring Security。
3.実地で作業をして技術力を高め・拡げる。
(1)業務理解・設計。
要件分析・基本設計書・詳細設計書・データベース図・プログラム仕様書・テスト設計書・API仕様書・Java関連の設計書などの仕様書作成の技術力を高める。
(2)プログラム製造。
Web技術(JSP & Servlet・Springフレームワーク・フロント技術)・テータベース処理などの技術を利用してプログラム製造を行う。
例.GET・POST・PUT・DELETE・Request・Response・forward・Redirect・HTTP・Set・Get・Spring・SQL・json・リクエストライン・ヘッダー・ボディ
(3)ソースコードの信頼性向上。
・Checkstyle・FindBugs・SonarQubeなどを使用してソースコードの品質をUP。
・GitHubを使ってライブラリ管理・共同開発。プル・コミット・プッシュ・コンフリクト対応・ブランチ・マージなど。
(4)単体テスト工程。
・テストコードを作成(@Test)。テストデータ設定・Mockによる置き換え・テスト対象ソースの呼び出し・戻り値の確認など。
・デバッグ走行・JUnit走行。
・JUnit・Mock・デバッグツールを使用して網羅率100%を目指してテスト。
(5)結合テスト工程。
・組み合わせテスト・状態遷移テスト・境界値テストを実施。
・SQLツール(pgAdminなど)・ログ・RestClient・SCP・TeraTermなどを利用。
・テスト仕様書 : テスト観点・テストパターン・テスト実施/確認表・テストデータ作成
・テスト実施 : テストデータ登録・マスタ登録・外部ファイル登録・要求電文作成・エラー検証・修正/再実施
(6)プロジェクト管理。
作業分析・作業スケジュール作成・進捗管理・工数見積を行いプロジェクト管理力を高める。
(7)作業報告・進捗報告・問題点の相談。
PM・PL・サブリーダー・顧客と報連相をSlackなどのチャットツールを使用して常に行い、現場での業務遂行をオープン化・協業し、作業を効率的に実施する。
(8)Webセキュリティ。
認証・認可・各種ツールのログイン認証・クロスサイトスクリプティング対策・SQLインジェクション対策などを考慮したセキュリティシステムを組み込む。
(9)Linuxのサーバー技術。
コマンド・シェル・クーロン、TeraTerm・WinSCP、RedhatなどのLinux OS、RDB・フレームワークなどの各種ミドルウェアを利用。
(10)幅を広げる。
フロント技術・Java以外の言語(PHP・.NET(C#・VB.NET)・Python)などを勉強・開発実施して、Web系言語の幅を拡げる。
以上