あなたはエンジニアとして成長するために、どんな知識が必要か知っていますか?
エンジニアは専門職ではありますが、チームでプロジェクトを進行することが多いため、専門的知識だけではなく、他にも身に付けておくべきスキルがあるのです。
この記事では、「専門的知識」「コミュニケーション能力」「マネジメント能力」の大きく3つに分けて紹介します。
進化し続けるIT業界で生き残っていくために必要な考え方をしっかり身に付けましょう。
この記事の目次
1.専門知識
出典:photo AC
1-1 論理的思考能力
必要な能力の一つとして、物事に潜む法則を的確に見抜いて適用する「論理的思考能力」が挙げられます。
エンジニアの仕事はバグとの戦いでもあります。バグを発見し、原因を追究して解決するためには、論理的思考が不可欠です。「なぜバグが起こっているのか」、「どうすれば解決できるのか」を順序立てて冷静に考えることで円滑に仕事を進められます。
また「就職・転職の面接」の場合には面接官に対して冷静に対応好印象を与えることができるでしょう。そのほか「文書の作成」では、相手に伝わりやすい文章を書くことができたり、「営業の商談」では、短時間で商品やサービスの必要性を伝えることができます。
論理的思考力を鍛える方法としては、因果関係を意識して「結論から話す」というのがポイントです。「結論から話す」ことは、あなた自身が何を伝えたいのか明確にするトレーニングになるのです。
次は「その結論に至った理由」を話します。この時の理由は一つとは限りません。むしろ複数の理由が存在するのは一般的なので、すべての理由を一度整理しましょう。自分の中で理由が明確になった時、説得力のあるコミュニケーションができるようになります。
その他にも「なぜなぜ分析」というトレーニング法もあります。やり方は単純に「なぜを自分自身に5回繰り返して問う」というものです。出た答えに「なぜ」を加えてさらに質問をするというのを5回繰り返し、どうすればよいのか答えを導き出せるのです。
この記事もオススメ
1-2 システムの技術的知識
未経験からはじめられるとは言っても、ITエンジニアにはプログラミング言語などの知識が必要不可欠になってきます。
実際にプログラムを作成する下流工程を担うエンジニアはとくに、技術的知識が仕事のほぼ全てとなります。一般的に多く使われているのは「Java」や「Ruby」ですが、その他の言語も習得する必要があるかもしれません。職場や案件によって使用する言語が異なるため、プロジェクトに合わせて勉強し、知識を修得する必要がある場合もあるのです。技術書を読んだり、システム開発の経験を通して知識を吸収していきましょう。
また、今のエンジニアの仕事は、多くのエンジニアが集まり、プロジェクトチームを結成して、それぞれの「技術」「知識」を出し合ってプロジェクトを遂行していくことが一般的になってきています。
そのため、専門職といわれる方たちも協調性が求められるようになり、チームをまとめ、メンバーを育成していく技術的知識の豊富なリーダーの存在も必要不可欠になっています。
1-3 取得しているとよい資格
まず、全てのITエンジニア向けの資格として「基本情報技術者試験」「応用情報技術者試験」の2つが挙げられます。
基本情報技術者試験
システム開発を行う上で必要な基本的知識を習得するための国家資格資格
応用情報技術者試験
経験を積んだエンジニアが挑戦する応用的な知識習得するための国家資格
その他にも、実際に役に立った資格やキャリアアップに繋がった主な国家資格として「ネットワークスペシャリスト」「ITパスポート」「データベーススペシャリスト」「プロジェクトマネージャー」「システムアーキテクト」「システム監査技術者」等が挙げられます。
ネットワークスペシャリスト
ネットワークシステムを「企画」「要件定義」「開発」「運用」「保守」する業務を行い、ネットワーク資源の「管理」「要求分析」「技術支援」などを行います。
ITパスポート
ITのみならず「情報のセキュリティやモラルに関する知識」「企業コンプライアンス・法令遵守に貢献する正しい知識」「経営全般に関する基礎知識」「業務に必要なITの基礎知識」など、幅広い分野の基礎知識を身につけられます。
データベーススペシャリスト
データモデル化技術及びデータベース管理システムの活用技術を有し、データベースシステムの「設計」「構築」「運用管理」に関する高度な知識と経験をもとに的確な技術支援を行います。
プロジェクトマネージャー
プロジェクトマネージャー(PM)とは、プロジェクトの「計画」「実行」に責任を持ち、目標を達成するために「人材」「資金」「設備」「物資」「スケジュール」などを調節し、全体の進捗状況を管理する責任者を指します。
この役職に相当する知識や技術を認定するもので、社会的な需要が高い一方で難易度も高いことで知られる資格です。
システムアーキテクト
アーキテクトとは、「建築家」や「設計者」等を指す言葉です。
この資格では、全体のプロジェクト管理や基礎・中核部分の設計や仕様策定などを行う人やチームなどに使用することが多く、システムの「要件定義」「基本設計」「開発の主導」などを行うための知識や技能を認定しています。上級のエンジニアを目指す方向けです。
システム監査技術者
システム監査技術者は「トラブルが発生した時」や「効果が望めなかった時」などにシステムの改善や「安全性」「効率性」「機密性」「保全性」といった視点で監査する役割を担います。
当然要求される技術力が高いことに加えて、経営戦略や法務に関わる知識量も問われる資格です。
その他、民間資格の中から「C言語プログラミング能力認定試験」「Javaプログラミング能力認定試験」をオススメします。
C言語プログラミング能力認定試験
C言語でのプログラミング能力を検定する試験で、C言語の基礎を問う3級から、
もっと深く学びたいと思っている方にオススメな1級まで幅広いスキルを測定する試験です。
Javaプログラミング能力認定試験
実務経験のない未経験者にとっては、スキルや基本的な知識の証明になります。
基本的な知識を持ち、簡単なプログラムを作成できるレベルの3級からパソコンを使用した実務試験である1級までが段階として設定されています。
Javaプログラマーの数が不足しているため、有資格者のニーズが高くなっています。
2.コミュニケーション能力
エンジニアの仕事には顧客と話して設計をする(プログラミングはほとんどしない)上流工程を担うエンジニアから、下請けとして仕様書通りに動くプログラムを作成する下流工程を引き受けるエンジニアまで様々なタイプがいます。
コミュニケーション能力は、その中でも上流工程を担うエンジニアに必要なスキルです。
2-1 顧客の要求を把握し、わかりやすく提案するため
システムのプレゼンテーションやお客様との打ち合わせなどを行う際に、顧客がシステムの専門家ではないことも多くあります。そのため、対面で会話している時はもちろん、初心者でも伝わりやすいように資料を作る際も心遣いが大切です。
必要なのは、相手への敬意を払い、お互いに理解し合うために「相手に合わせて話をする」「独りよがりな説明をしない」「相手の話そうとしている内容を正確に受け止める」ことで、相手が何を感じ、何を考えているのか、想像することが大切になってきます。
2-2 プロジェクトメンバーと円滑に仕事を行うため
システム開発のプロジェクトをチームで行う場合、1年ほど時間をかけて様々な企業の方々とチームを組んで行います。
プロジェクト開始段階では、クライアントが具体的なビジョンを持っていないこともあり、相手が本当に望んでいるものは何なのかうまく引き出すためにコミュニケーション力がとても大切になってきます。
同僚に対して思考やアイデアをうまく表現できなかったり、スペルや文法に弱いと、チームで行う仕事なので「失敗」に繋がってしまう場合も少なくありません。
「思考」「設計」「アイデア」「仕様」を明確に理解して伝言でき、文脈に合わせてコミュニケーションができるように心がけることが必要になってきます。
仕様説明や作業の進行状況などの確認を行いながら、業務を円滑に進めるため「チームで働く力」を意識してコミュニケーションの意図を理解できるようにしましょう。
3.マネジメント能力
新人のうちは求められることが少ないかもしれませんが、上流工程でも下流工程でも、立場が上になってくれば必要になってくるスキルです。
新人のうちから先輩の考え方や言動をよく観察し、自分がマネジメント能力を発揮しなければならない立場になった時、困らないようにしておきましょう。
3-1 プロジェクト全体の進捗管理を行うため
ひとつの案件には期限が定められており、締め切りまでに顧客の求めるシステムを確実に開発しなければならないため、「業務」「人員」をしっかり管理し、プロジェクト全員を管理するスキルが必要です。
プロジェクト全体の進捗管理を行う時は、タスクの突合せの確認をきちんと行い、進捗報告書の見直しをするとともに、目的の認識を合わせ、プロジェクト全体を把握することが大切になります。
CCPMによる進捗管理方法もあり、従来の管理方法とは違う「個々のタスクではなく、プロジェクト全体を管理する」「進捗情報の報告は、進度を%ではなく残日数で報告する」など、いくつかの特徴を持っています。
タスク単体の遅れとして行っていると、自分の担当が遅れていない場合はタスクを危惧し、必要なリソースを実際遅れている場所に投入することを拒んでしまい、結果としてプロジェクト全体の遅れになり会社全体としての利益を圧迫していました。
CCPMでは、クリティカルチェーンの遅れを、プロジェクトバッファにより吸収し、プロジェクト全体の遅れとして対処するようにしています。また、進捗状況のマネジメントは、プロジェクトの進捗状況とプロジェクトバッファの消費量をモニタリングで管理しています。
3-2 システムの品質を保つため
ITサービスの品質を保つためには「作業の平準化」が必要不可欠になります。
平準化とは、それぞれが担当を受け持っている作業を誰でも実施可能な状態にすることをいいます。可視化された情報をもとに業務プロセスを作り、誰もが正しく作業できるようにすることが必要なのです。
「ユニットテスト・ツール」を取り入れて、JavaならJUnit、NETならNUnitを使用してテストを自動化し、リファクタリングやコード修正後に何度も同じテストを行って、ソフトウェアの品質を保っています。
また、「ソースコード」「各種設計書」「試験要領書」のレビューを行うことも大切です。
3-3 今後PMにスキルアップをするため
プロジェクトマネージャーは、期日までにシステムを完成させる役割があり、必要な「人材」「資材」「費用」を計画して確保し、結成されたプロジェクトチームが一丸となって作業に取り組みます。ITシステム開発プロジェクトは「業界要件の高度化」「IT技術の高度化」「複雑化」「マルチベンダ化」などによって益々困難なものとなってきており、PMの役割はとても大切になってきています。
プロジェクトマネージャーになるメリットとして「収入アップの可能性」「責任のある仕事」「チームで達成したからこその喜びを実感」などが挙げられます。プロジェクトマネージャーは、「社内」「社外」と、あらゆる場所から人材を集め、プロジェクトを遂行していく責任のあるポジションです。
大企業のプロジェクトにかかわるプロジェクトマネージャーになると、年収1000万円以上も可能になってきます。
この記事のハッシュタグ
4.生き残っていくために必要なこと
4-1 サーバーやセキュリティの知識を付けよう
出典:いまさら聞けない!? Web系開発者のためのサーバ知識(1):Webサーバから始めよう (1/2)|@IT
Webアプリを制作するうえでこの図の要素が全て必要なわけではありませんが、参考程度にご参照ください。
Web技術は、「HTTP」というプロトコルが主体にあります。Webサーバーを学ぶ際は、このHTTPから枝分かれされている様々な知識と共に身に付ける必要があります。
詳しく知りたい方はこちらの記事をご参照ください。
【Webサイト作成】コストと時間に見合ったおすすめ作成方法3選
5.さいごに
この記事では、新人エンジニアが知っておくべき必要な考え方やスキルとして、専門的知識、コミュニケーション能力、マネジメント能力の3つを紹介しました。
とくに日本では顧客と話して設計をする上流工程から、下請けとして仕様書通りに動くプログラムを作成する下流工程を担うエンジニアまで様々な働き方があり、それぞれが分断されていることが多いです。
そのため、携わる職種、立場によって求められるスキルも大きく変わってくるので、自分に必要な考え方はどれなのかもしっかり見極めましょう。
IT業界は日々進化し続けていますので、今の自分に満足するのではなく、常にスキルアップしていくことを視野に入れて仕事を修得していく必要があります。
エンジニアは日々学習しなければならない職業です。最新情報は常に把握しておきましょう。
はじめての転職、何から始めればいいか分からないなら
「そろそろ転職したいけれど、失敗はしたくない……」そんな方へ、テックキャンプでは読むだけでIT転職が有利になる限定資料を無料プレゼント中!
例えばこのような疑問はありませんか。
・未経験OKの求人へ応募するのは危ない?
・IT業界転職における“35歳限界説”は本当?
・手に職をつけて収入を安定させられる職種は?
資料では、転職でよくある疑問について丁寧に解説します。IT業界だけでなく、転職を考えている全ての方におすすめです。
「自分がIT業界に向いているかどうか」など、IT転職に興味がある方は無料カウンセリングにもお気軽にお申し込みください。