スキルの分類方法はいろいろありますが、ITエンジニアの場合は、以下のように分類するとわかりやすいでしょう。
この分類はハーバード大学教授のロバート・カッツ氏が提唱しました。
項目 | 説明 |
コンセプチュアルスキル | 物事、および状況を構造的・概念的に捉え、問題の本質を見極めるスキル 概念化能力 |
ヒューマンスキル | 良好な人間関係をつくり、業務を円滑に進めるスキル |
テクニカルスキル | 業務に必要な専門スキル 職種、業務に応じて異なる |
入社当初は、テクニカルスキル、ヒューマンスキルが重要ですが、一般的に職位が上がるほど、コンセプチュアルスキルが重要になってきます。混沌とした状況を整理して方針を定めることが多くなると思います。また、職位が上がるほど下の立場の報告や説明をうけて判断することも多くなるでしょう。自分でやっていると状況がよくわかっても、人の報告や説明を正しく判断するのは想像以上に難しいものです。断片的な情報だけでも本質をつかむことができるコンセプチュアルスキルは部下が多くなれば必然的に重要なものとなります。
一般的にはテクニカルスキルは職位とともに割合が少なくなります。ヒューマンスキルは職位にかかわらず必要な割合はあまり変わらないのが特徴です。
コンセプチュアルスキル
「コンセプチュアルスキル」といわれても聞きなじみのない言葉なのでいまいちよくわからないですよね。もう少し具体的に要素を書き出してみます。構成要素としては以下の10点があります。
- ロジカルシンキング
- ラテラルシンキング
- クリティカルシンキング
- 多面的視野
- 柔軟性
- 受容性
- 知的好奇心
- 探求心
- チャレンジ精神
- 俯瞰力
どれもITエンジニアとしては重要です。ただコンセプチュアルスキルは言葉ではわかっていても体現するのは非常に難しいです。研修を受けてもビジネス本を買って読んでも、その場では理解するのですが、自然と実践できるようになるには時間がかかります。自分もラテラルシンキング、クリティカルシンキングなどは最近身についてきたかなと思う程度です。いずれにしてもこのあたりのスキルは身につくのに時間がかかりますので仕事を始めたばかりのITエンジニアでも意識することは大事です。
ヒューマンスキル
これは言葉から何となく想像つくと思いますが、良好な人間関係をつくって業務を円滑に進めるためのスキルです。よく「根回し」という言葉を聞くと思いますが、あれもITエンジニアにとって重要なヒューマンスキルの1つです。
具体的にヒューマンスキルにはどんなスキルがあるのか見ていきましょう。
- コミュニケーション能力
- リーダーシップ
- 交渉スキル
- プレゼンテーションスキル
- コーチングスキル
- ヒアリングスキル
- 向上心
これらを見ると職位にかかわらず、社会人としてはいつでも必要なスキルというのはわかりますね。チームとして成果を出すためにはどれも必要なスキルです。
研究職など比較的一人で黙々とやる業務であれば、ヒューマンスキルの割合は少なくなるでしょう。ただ、ヒューマンスキルがまったく必要ない業種は少ないのではないかと思います。
テクニカルスキル
テクニカルスキルは業種に大きく依存する部分です。テクニカルスキルは業種によってさまざまですがITエンジニアとして一般的なテクニカルスキルを紹介します。
- プログラミング
- サーバ、ストレージ、ネットワーク(インフラ)
- Web関連
- クラウド
- AI
- IoT、組み込み
- データベース、データ活用
- セキュリティ
プログラミング
まずITエンジニアとして一般的なのはプログラミングです。プログラマであればPythonとかJAVAとかメジャーなプログラミング言語から学習することになるでしょう。
プログラマだけがプログラミングが必要かというと、プログラミングがわかってなければSEとして設計もできなければ、指導もできません。プログラミングがわかってなくてもSEができるという話もたまに聞きますが、おそらく開発とは少し距離を置いたSEのことでしょう。SEといっても定義が幅広いので、一概に「SEはプログラミングが不要」とは言えません。
サーバ、ネットワークといったインフラ系エンジニアもプログラミングの知識は必要です。インフラの自動化のために処理をコード化することが多々あり、プログラミング抜きには自動化ができません。言語はLinuxであればシェルスクリプト、WindowsであればPowerShell等を学ぶのが良いと思います。Windowsは昔ながらのバッチファイルでの実行もよく利用されています。
サーバ、ストレージ、ネットワーク
サーバ、ストレージなど物理的なハードウェアにOSをインストールしたり、ネットワーク環境を構築したりします。一般的にインフラエンジニアと呼ばれています。
サーバを担当するエンジニアであれば、OSの知識は必須です。OSといっても昔はいろいろありましたが今はほぼLinuxかWindowsの2択です。以前はLinuxとWindowsで競い合っていましたが、クラウドの影響もあり、おそらく現在はLinuxのほうが主流になっていると予想しています。
業務的に監視・ログ収集などはインフラエンジニアが担当することが多いですね。Zabbixやsyslogを使ったログ収集等もインフラとして必要なスキルです。あとはバックアップもインフラがエンジニアが担当することが多く、インフラの業務は多岐に渡ります。開発系エンジニアと違ってシステム全体を俯瞰することがインフラエンジニアとして重要となります。
インフラと似たような言葉で「プラットフォーム」という言葉があります。「インフラ」、「プラットフォーム」ともに定義が曖昧に使われている場合も多いですが、クラウドサービスを利用する場合は明確に違いが明記されています。
- 「IaaS」=「Infrastructure as a Serviceの略」:
- サーバ、ネットワーク、ストレージといったハードウェアを提供するサービス
- 「PaaS」=「Platform as a Serviceの略」
- サーバ、ネットワーク、ストレージに加えて、OS、ミドルウェアを提供するサービス
上記のように「プラットフォーム」のほうが対応するレイヤーが広くなります。中規模程度のプロジェクトでは、インフラ担当が「プラットフォーム」レイヤーまで対応することが多いですね。
Web関連
一昔前は花形だったWeb関連です。今でもITエンジニアの中では花形かもしれません。一言で「Web関連」といっても「インフラ担当」以上に幅広いのが特徴です。
世界中のインターネットからアクセスできるWebアプリケーションを開発する場合と、社内の業務システムのWebアプリケーションを開発する場合では、大きく求められるものが異なります。インターネット公開されるWebアプリケーションではもちろんセキュリティのスキルが重要になってきます。また個人情報を取り扱うようなシステムではさらに注意が必要でしょう。銀行のネット銀行などもセキュリティが重要なのは想像がつくと思います。
またWebシステムのアーキテクチャを考えるアーキテクトなのか、Webアプリケーションのコードを書くプログラマでは求められるものが違ってきます。アーキテクトの場合はシステム全体のセキュリティを考える必要があります。
社内に閉じた環境でもよくWebアプリケーションは使われますが、「Web」という特徴からコンシューマ向けにインターネット公開するWebシステムも数多くあります。
フロントの開発にはjavascript、node.js、vue.jsなどjavascript系の言語がよく使われます。Pythonもよく使われますね。もちろんHTML、CSSなどのスキルも必要です。以前はruby、php等もよく使われていましたが最近ではどうでしょうか。現在はあまり見かけなくなったかもしれません。
CookieやWebStorageなど、Web特有の知識も必要になってきます。
Web関連は身に着けたスキルの転用がしやすいのも特徴の一つです。自分でWebサイトを立ち上げる場合にもWeb関連のスキルは役に立ちます。ネット社会は終わらないと思いますので、今後もWebエンジニアは必要とされることでしょう。
まとめ
ITエンジニアに必要なスキルのイメージはわかりましたでしょうか?
ITエンジニアとしてテクニカルスキルも重要ですが、業務やビジネスを推進するために必要なスキルもたくさんあります。
1人ですべてのスキルを身に着けるのは無理ですので、自分のやりたいことのスキルを重点的に習得していきましょう。
参考
【Udemy】世界最大級の学習プラットフォーム
ITエンジニアになるためにおすすめの教材としてUdemyをおすすめします。いくつか受講したことはありますが、どれも講義として体系的に学べるものが多いです。金額も割引のときは1千円、2千円台の講義もあり、比較的リーズナブルな印象です。
個人用とは別にビジネス版としてUdemy for bussinessというサービスもあり、日本企業で導入している会社も多いので信頼性は高いです。あとは世界最大級というだけあって利用者も格段に多いようです。
基本的に動画を視聴して自己学習することになりますが、自分で評判の良い講義を選択できるので自分のペースで学習を進めたい人におすすめです。
コメント