今後の学習計画をここに記録する。
これはGeminiに提案されたものだ。
1. プログラミングの基礎と実践経験
SIerとして開発に携わるなら、プログラミングは必須スキルです。
何らかのプログラミング言語の基礎:
Java: 業務系システム開発で圧倒的なシェアを誇ります。NIDもJava案件が多いと推測されます。オブジェクト指向の理解は必須です。
Python: Web開発、データ分析、AIなど幅広い分野で活用されており、今後SIerでの需要もさらに高まるでしょう。
.NET (C#): Windows環境でのシステム開発に強いです。
SQL: データベース操作は必須スキルです。SELECT, INSERT, UPDATE, DELETEなどの基本操作に加え、JOIN句の理解も重要です。
Webアプリケーション開発の基礎:
HTML/CSS/JavaScript: フロントエンドの基本的な知識として押さえておきましょう。
フレームワークの入門: Spring Boot (Java), Django/Flask (Python), Ruby on Rails (Ruby) など、どれか一つでも触れておくと、Webアプリ開発の流れが理解できます。
自分で簡単なアプリケーションを作ってみる: チュートリアル通りに進めるだけでなく、自分でアイデアを出して簡単なCRUD(作成・読み取り・更新・削除)アプリなどを一通り作成する経験は非常に重要です。エラーにぶつかり、自分で解決する力が身につきます。
2. データベースの基礎知識
システムのデータ管理に必須です。
リレーショナルデータベース(RDB)の概念: テーブル、行、列、主キー、外部キーなどの基本用語と、正規化の概念。
SQLの基本的な操作: 上記プログラミング言語の項目でも触れましたが、改めて基礎を固めましょう。
DBの種類: Oracle, SQL Server, MySQL, PostgreSQL など、主要なDBの名前と特徴をざっくりと理解しておく。
3. オペレーティングシステム (OS) の基礎知識
サーバー構築やシステム運用に不可欠です。
Windows Server の基礎: Active Directoryの概念など。
Linux の基礎:
コマンドライン操作: cd, ls, cp, mv, rm, mkdir, rmdir, cat, less, grep, find, tar, df, du, top, ps など、基本的なコマンドは使えるようにしましょう。
ファイルシステム: パーミッション(chmod, chown)の理解。
ネットワーク設定の基礎: IPアドレス、サブネットマスク、ゲートウェイ、DNSの概念。
仮想化技術の概念: VMware, Hyper-V, VirtualBoxなどの仮想化ソフトウェアの基本的な仕組みを理解しておく。(実際にPCにVirtualBoxなどを入れてLinux環境を構築してみると良い練習になります)
4. ネットワークの基礎知識
システム連携やインフラ構築に必須です。
TCP/IPの基本: IPアドレス、サブネットマスク、ゲートウェイ、DNSの役割。
HTTP/HTTPS: Web通信の仕組み。
主要なネットワーク機器: ルーター、スイッチ、ファイアウォールの役割。
OSI参照モデルの概念: 階層の役割をざっくりと理解しておく。
5. クラウドサービスの基礎知識(できれば)
NIDもDX推進に力を入れているため、クラウドの知識は今後必須になっていきます。
IaaS, PaaS, SaaSの概念: それぞれの違いを説明できるようにする。
AWS, Azure, GCPのいずれかの入門: 無料枠などを利用して、簡単な仮想サーバーを立ててみる、S3(オブジェクトストレージ)を使ってみるなど、実際に触れてみる経験があると良いでしょう。
6. その他(SIerとして重要なスキル)
論理的思考力・問題解決能力: プログラミングやシステム開発は、まさに問題解決の連続です。日頃から「なぜそうなっているのか」「どうすれば解決できるのか」を考える癖をつけましょう。
コミュニケーション能力: SIerは顧客との折衝やチーム内での連携が非常に多い仕事です。自分の考えを明確に伝え、相手の意図を正確に理解する力が求められます。これは入社後にOJTで身につけていく部分も大きいですが、意識するだけでも違います。
情報収集能力・自己学習能力: IT技術の進化は非常に早いです。常に新しい情報をキャッチアップし、自分で学習していく姿勢が最も重要です。
バージョン管理システム (Git) の基礎:
Gitの基本的なコマンド: clone, add, commit, push, pull, branch, merge など。
GitHubやGitLabなどのWebサービスで、簡単なリポジトリを作成し、バージョン管理を試してみる。共同開発の現場では必須ツールです。