ITエンジニアとして仕事としていく為に20代で学んでおく事を、私の経験と私の現在のIT技術者を生み出す立場から考えてみました。
20代の内にこれだけしっかり身につければどこでも生きて行かれます。
視点は大きく二つ
20代はITエンジニアとして働き始め、本格的なプログラム開発を始める時期であり、そこから発展して初級から中級のシステムエンジニアとなっていく時期です。
その過程の中ですので、その中で学ぶべき事は以下の2つの視点で設定されるのが良いと思います。
1.プログラマとして完成する
2.ミドルレベルのシステムエンジニアとしての立ち位置につける
この2点を目標に20代は経験と実績を積んでいく事で30代での仕事の幅と信頼性が確立出来ます。
プログラマとして完成
20代ではまずプログラマとして独り立ち出来るように完成される事がまず大事です。
プログラミング言語は自分の興味、仕事、会社にもよりますが、開発手法を覚える事が大事です。
プログラマとして品質が高いプログラムを制限内に開発出来るようになる。これは最低ライン。これに加え自分で単体テスト設計を行いテストを実施する。この方法をしっかり覚える事が大切です。
これは仕様書に書かれている事だけをテストすればいいと言うわけでは無く、そのプログラムの中で発生しうる異常系も考慮してテストを行う事も含まれます。
あるべきレコードが無かった時の対処は取れているか、項目に異常値が入っていたときに障害にならないか等 開発したプログラムは発生しうるすべての可能性をテストする必要があります。
そしてプログラマとして重要で必要な点。それはプログラムの課題・障害解決が自力で出来る事。プログラムを作っていると言語仕様通りに作っているはずなのにどうしてもビルドが出来ない、エクセプションが発生して落ちる、想定通り動かない、といった事が多々発生します。
このような事象に対して自力で解決する力が大事です。
マニュアルを読む、ネットで調べる、ヘルプデスクに問い合わせ等の対処方法を駆使して自分が担当したプログラムの障害を解決します。
経験の中でソースを微調整しながら解決する方法を学んで行くことで、障害の調査、対応方法を身につける事が必要です。
ミドルレベルのシステムエンジニアの位置に立てる
もう一つの身につける事の視点として、システムエンジニアとして身につける事があります。
プログラマよりさらに広く開発プロジェクトやシステムに関係して来ますので覚える事も多くなります。
その中でもまずはプログラムを組み合わせてシステム構築するための内部設計やデータベース設計を学ぶ事が必要になります。
業務の解析から設計された機能を実装するためにデータベースの設計を行い機能設計を行う。そして業務横断的な機能については共通化を行う。そのような設計作業をまずは覚える事が必要です。
今はアジャイル開発と言った手法の下、このような実装に時間が取られない傾向もあるようですが、内部設計をしっかり行われなければ効率が悪く、保守性が悪いシステムが出来てしまう可能性が高いです。アジャイル開発であっても内部設計の考え方をしっかり覚える事は、その他の開発にも必ず役立ちます。データベースの正規化、機能のモジュール化等、内部設計の方法や手法はしっかり覚えてください。
その後の外部設計やパフォーマンス改善に必ず役立ち、システム全体の効率化にも役立ちます。
これだけではありません
ここに書いたのはあくまで私の経験と、現在、技術者を育てる立場になった私の私見です。
コンサルタント的な要素やセキュリティー、ネットワーク側からの見方で学ぶこと沢山あると思います。
しかし20代ではしっかり技術を身につけ、どこでも必要とされ活躍できるエンジニアの礎を作って行くことが必要です。