システムエンジニアになるには?大学進学や独学、SEになるための方法
就職して現在の仕事に慣れてきたが、ふと「このままの仕事でいいのだろうか」と不安になることは、誰しも一度はあるのではないでしょうか。その将来性への不安を払拭するためにも、他の職種について調査してみるのは有意義なことです。
この記事ではシステムエンジニアの仕事内容や年収とともに、システムエンジニアになるにはどのようなことが必要かをご紹介します。
システムエンジニア(SE)とは
システムエンジニア(SE)は、顧客の情報システムの開発やWebサイトの開発を受託し、それらの設計・開発を行う職種です。金融や製造など、システムエンジニアが関わる業界は多岐にわたります。また業務システム開発、Webサイト開発のほかにも、機器にプログラムを施す組み込みエンジニアや企業の情報システム部門を司る社内SEがあります。
システムエンジニアの年収
厚生労働省が運営する職業情報提供サイト「job tag」によると、システムエンジニアの年収は557.6万円です。ITスキル標準(ITSS)レベルが上がるにつれて年収も上がり、最高額は950.0万円となっています。
システムエンジニアの働き方
これからシステムエンジニアになろうと考えている方の中には、どの企業に属しても同じと考える方もいるかもしれません。しかし、所属する企業のビジネスモデルによって、働き方は異なります。
ここでは、システムエンジニアが所属する代表的な事業形態3つを紹介します。これを参考に、どの形態に所属するか検討してみてください。
自社開発
自社開発はその名の通り、自社製品を開発し、その製品をエンドユーザーに販売する形態です。自社で開発をしているため、上流から下流まで一貫して経験できる機会が多く、納期に追われることも少ない傾向です。
ただ、自社サービスの開発に用いられるプログラミング言語のみを使用する場合が多いため、さまざまなプログラミング言語を学びたい人には、少し向かない可能性があります。
SIer
SIerとは、他社の製品やサービスを代わりに開発し、利益を得るビジネスモデルです。さまざまな業界と取引をするため、幅広い知識や経験を身に付けられることがメリットです。
デメリットを上げるとすれば、自社開発に比べて納期が厳しく、繁忙期には忙しくなる可能性があります。
SES
SESは、エンジニアを他社へ派遣し、開発の手助けを行い、依頼料を受け取るビジネスモデルです。3つの業務形態の中で、未経験から挑戦しやすく、多種多様な経験・知識を得ることができます。
ただ、身に付けられるスキルが派遣先の企業に依存したり、一人で未経験の案件に入るとスキルを習得しづらかったりなどのデメリットも存在します。
システムエンジニアの基本的な仕事内容
システムエンジニアの基本的な仕事内容を、プロジェクトの流れとともに紹介します。
要件定義
要件定義では、クライアントに要望をヒアリングし、業務システムやWebサイトについて検討、どのようなシステムを開発するかを決めていくフェーズです。クライアントとともに検討を重ね、クライアントが気づいていない業務上の課題を特定します。
このフェーズで主に議題となるのは、システムの概要や業務フロー、新システムの機能、性能や情報セキュリティ対策、スケジュールなどです。要件定義の段階で解決方法が曖昧な課題が残っていると後工程に影響を与え、クライアントの要望に応えたシステムができないため、この時点で課題の対応可否についてよく検討しなければなりません。
挙げられた課題やシステムの形に対して協議した結果は、要件定義書というドキュメントにまとめ、次の「基本設計(システム設計、外部設計)」へ移ります。
基本設計(システム設計、外部設計)
基本設計(システム設計、外部設計)のフェーズでは、要件定義書をもとに、システムの構成や製作する機能、画面、帳票などを決めていきます。加えて、外部システムとの連携やデータベースの設計も行います。要件定義と同様に、この時点で対応可否やその具体的な方法を定めておかなければなりません。基本設計が定まらないまま詳細設計、プログラミング(開発)まで進むと、仕様ミスが起こった際に、改修の手戻りが大きくなる可能性があるのです。また改修の規模とシステム開発の受注価格が見合わなくなる恐れも考えられます。したがってこのフェーズで、綿密な設計が必要です。
基本設計の結果は基本設計書にまとめ、クライアントが確認、クライアントの合意があれば、次の「詳細設計」へ進みます。なお規模の小さなプロジェクトや改修では、基本設計と詳細設計をまとめて行うケースもあります。
詳細設計
詳細設計のフェーズでは、基本設計書をもとに機能を詳細に検討します。ここで検討するのはシステムで扱うデータ形式やファイル形式、内部処理の方法や流れなどです。業務システムの画面や、Webデザイナーが作成した画面デザインもチェックします。
設計の結果は、詳細設計書にまとめます。詳細設計書は、画面構成やデータベース、プログラム内容、データ形式、各種制約、画面遷移や処理などが図解も含めて説明がされたものです。これらのドキュメントをベースに、プログラマーが実際に開発を行うことになります。
プログラミング(開発)
詳細設計書をもとに、プログラマーにより実装を行うフェーズです。ここでシステムエンジニアは、プログラマーたちの進捗確認や仕様変更の連絡など、開発の取りまとめとしての役割を担います。実装を行った後のプログラムごとのテスト(単体テスト)は、後工程のテストではなくプログラミング(開発)フェーズに含まれることもあります。
プログラミングフェーズの主体となるのはプログラマーです。プロジェクトや組織の体制によって、システムエンジニアは詳細設計までを担当し、実装を外部人材に依頼するケースがあります。また小規模のプロジェクトの場合には、システムエンジニアがプログラマーを兼務して、プログラミングを行うこともあります。
テスト
テストフェーズでは、「結合テスト」や「総合テスト」が行われます。「結合テスト」は、ある単位のプログラム群で複数のプログラムや外部システムとの連携をテストするものです。「総合テスト」はすべての要素に対して確認を行い、動きを確かめるテストです。またWebサイト開発の場合には開発方針によって、一般のモニターによって動作を確認する「ユーザビリティテスト」が行われます。
テストが進むと関係人数が増えていき、総合テストの段階では品質管理部門や情報セキュリティの担当者も参加することがあります。システムエンジニアはテストで不具合が発生すれば、開発チームとともに修正しなければなりません。テストフェーズが終われば、情報システムやWebサイトはクライアントに納品できる状態となります。
検収・導入
検収・導入のフェーズでは、クライアントの受入テスト(検収)を行います。クライアントとともに、システムが設計通りに動くか、品質に問題がないかをチェックし、不具合があれば、システムエンジニアやプログラマーが修正することになります。
受入テストが無事終了すれば、いよいよシステムの導入です。クライアント企業の影響度を考え、導入スケジュールを組みます。また導入の前後で、システムを利用する社員・関係者、Webサイトの運用者に対して、操作や運用に関する教育を行います。
運用・保守
導入後は運用・保守のフェーズです。システムの運用開始後は、不具合がないように監視し、不具合があれば対応することになります。システムが順調に稼働するまで、システムエンジニアが常駐することもあります。
日々の運用では、システムの起動/停止やバックアップ、クライアントからの問い合わせ対応などが主な業務です。保守業務では、システムの挙動が通常と異なる場合の対応を行います。運用チームは新たな要望が出た際の窓口となることもあります。
システムエンジニアと他の職種の違い
ITに関する職種には、システムエンジニアと似た職種があります。プログラマーとプロジェクトマネージャーについて、違いを簡単に見ておきましょう。
システムエンジニアとプログラマーの違い
プログラマーは、基本的にはシステムエンジニアが作成した詳細設計書をベースに、プログラムを作成する職種です。プログラムが出来上がれば動作確認である単体テストを行い、不具合が見つかった場合には修正を行います。プロジェクト方針によっては、結合テストや総合テストもシステムエンジニアとともに実施することもあります。
プログラマーは、いわばシステムエンジニアの前段階の職種です。
システムエンジニアとプロジェクトマネージャーの違い
プロジェクトマネージャーは、プロジェクトの責任者です。開発計画に基づいてプロジェクト実行計画を作成し、人員やリソースの調達、予算の管理を行います。またクライアントにプロジェクトの進捗や課題、対策を報告し、必要となれば追加予算について検討を促すなど、プロジェクトが滞りなく進むよう努めます。
プロジェクトマネージャーは、システムエンジニアのキャリアパスのひとつです。
システムエンジニアになるには
未経験の状態でシステムエンジニアになるのは簡単ではなく、ある程度知識とスキルを備えることが必要です。システムエンジニアになるための進路を挙げます。
大学・専門学校
情報学部(※名称は大学や専門学校によって異なります)を設置する大学へ進学するのが選択肢のひとつです。プログラミングやWebマーケティングなどITに関する知識だけでなく、経済学や心理学などの一般教養も学べます。大学卒業者以上を雇用している企業もあり、就職の際にも幅広い就職先を検討することが可能です。
またITの専門学校でも専門知識が学べます。学校によっては、夜間コースを設置したり、独自の就職支援を行っていたりと、専門知識を得るだけではないサポートを行っているところもあります。
プログラミングスクール
インターネット上で開講しているプログラミングスクールもあります。中途採用では、たいていの場合経験が求められるものです。その開発経験をもたせるためのサポートも行っているスクールがあります。講座終了後に、就職先や業務委託の仕事を紹介するサービスをもつスクールも存在します。
TechAcademy(テックアカデミー)
現役エンジニアを講師としたオンラインのプログラミングスクールです。Java、PythonなどWeb制作やAI・データ分析等様々な講座があります。
参考:テックアカデミー
COACHTECH(コーチテック)
実際のWebアプリ案件を受注でき、経験も積めるオンラインスクールです。Webアプリケーションコースがあり、3ヶ月、6ヶ月、9ヶ月、12ヶ月の4つのプランから選ぶことができます。
参考:COACHTECH
DMM WEBCAMP
プログラミングやWebデザインが学べるオンラインスクールです。「はじめてのプログラミング」やPHP、Javaなどの各プログラミング言語の講座が用意されています。
参考:DMM WEBCAMP
独学
独学で技術を習得することも可能です。オンライン講座や書籍などで学習した後に、自分で小さなシステムを製作することで、要件定義から各種設計、開発、テストまで一通りの業務を経験できます。
ただ独学の場合は、実務経験を積むことが難しいケースもあります。少なくともプログラマーとして最低限のスキルを習得し、クラウドソーシングなどに経験の場を求めるのもひとつの手です。
フリーランスエンジニアの案件紹介サービスTECH STOCKでは、身に付けている現状のスキルと今後習得すべきスキルを目指したいキャリアに照らし合わせて、最適なキャリアカウンセリングを行います。キャリアのご相談もTECH STOCKにお任せください。
TECH STOCKはフリーランス・ITエンジニアのための案件紹介サイトです
システムエンジニアに必要なスキル
未経験からシステムエンジニアに挑戦するにあたり、最低限必要なスキルを挙げます。
開発スキル
プログラミング
システムエンジニアがプログラミングを行うとは限りませんが、プログラミング知識は必須です。システムエンジニアの業務は、クライアントからの要望をシステムとして設計することがメインですが、実現可能かどうかを判断するためには使用するプログラミング言語に精通しておかなければなりません。
使用するプログラミング言語はプロジェクトによって異なります。現在よく使われているプログラミング言語はPython、C++、C言語、Javaなどです。複数の言語やフレームワークの知識もある程度あると、設計業務も進めやすくなります。
設計スキル
クライアントの要望を情報システムに落とし込む設計スキルも必要です。情報システムを設計するにはプログラミングだけでなく、ハードウェアやネットワーク、周辺機器、クラウドなど幅広い知識が必要となります。周辺で使われている技術と情報システムが、スムーズに連携ができるようにしなければなりません。
マネジメント能力
マネジメント能力も、システムエンジニアが身につけていくべき能力です。システムエンジニアはプロジェクトマネージャーほどのマネジメント業務をするわけではありませんが、プログラマーを含む開発チームのリーダーを兼ねることがあります。その場合にはチームメンバーの進捗や負荷状況を把握し、ときにはメンバーの追加をプロジェクトマネージャーに申し出るなど、開発チーム全体が滞りなく進めるためのスキルが必要です。
また、システムエンジニアの経験年数が重なっていくと、プロジェクトマネージャーの下について予算や工程を管理することもあります。
コミュニケーション能力
開発には、コミュニケーションが重要です。システムエンジニアはクライアントからのヒアリング、開発チームとの調整などで、社内外でコミュニケーションを取ることになります。
クライアントからは要望や問題点の聞き出し、解決策の提案や追加要望の取りまとめを行い、開発チームのメンバーとは進捗を注視しつつ、円滑にチームを回さなければなりません。このようにシステムエンジニアはIT技術のみならず、人間関係を構築するスキルも必要となるのです。
問題解決能力
クライアントの課題に対して、情報システムによって問題解決する能力は、システムエンジニアに欠かせません。問題を解決するためには、まず正確な情報をヒアリングし、本質を見極めることから始まります。
次に分析のための考え方を活用し、仮説を立てて実現可能性を追求したり、論理的思考力を用いて解決策を検討したりします。この検討の繰り返しで問題を解決していくことになるのです。
システムエンジニアに向いている人の特徴
システムエンジニアに向いている人の特徴をシステムエンジニアのやりがいとともに紹介します。
論理的に考えられる人
複雑な問題を論理的に分析し、最適な解決策を提案できる人は、システムエンジニアに向いています。ものごとを論理立て、整理して考える力のことを論理的思考力といいます。
クライアントが抱える課題を正しく理解すること、論理的思考力を用いて分析、解決策まで導くことがシステムエンジニアには求められます。また、論理的に説明することでクライアントへの説得力を増すことができます。
学習意欲・探究心・向上心の高い人
IT業界は、最新の技術や知識に触れることが多くなります。したがって年齢や経験に関係なく、常に学び続ける姿勢が必要です。プログラミングだけでなく、データベースやネットワーク、クラウド、生成AIなど幅広く知識を習得し続けるのは大変な場合もあります。
しかし裏を返せば、成長できる機会もまた多いということです。自主的に学習し、成長することにやりがいを感じられる人は、システムエンジニアに向いていると言えます。
根気強い人・我慢強い人
プログラミング(開発)や検収、システム導入後などでは、ときに不具合の修正に長く取り組まなければならないケースがあります。システムエンジニアには、苦しい状況でも最後までやり遂げられる根気強さが求められます。また、環境の変化や忙しさに耐えられる人もシステムエンジニアに向いています。
システムエンジニアの資格
学習方法の一つとして、資格取得を目標に勉強するという方法があります。資格取得を目標にすると体系立てて理解でき、ある程度新しい知識も得ることが可能です。また企業の採用面接者などへ、資格があることをアピールすれば、知識やスキルを有していることを客観的に証明できます。
ただし、システムエンジニアの資格は「取得すればシステムエンジニアになれる」という類の資格ではないため、あくまで「自分の能力の証明」と考えておきましょう。
ITパスポート
ITを利活用しているすべての社会人や、今後社会人となる学生が身につけておくべきITの基本知識を有していることを証明する国家資格です。
問われる内容はAI、IoTなどの新しい技術、アジャイルなどの新しい手法の概要、経営戦略やマーケティングなどの経営全般、セキュリティやネットワークなどのIT知識、プロジェクトマネジメントの知識など幅広い分野が網羅されています。
実施方式 | CBT方式(Computer Based Testing方式:パソコンを使用して解答) |
実施時期 | 随時実施 |
試験時間 | 120分 |
出題数 | 100問 |
試験費用 | 7,500円(税込) |
合格率 | 51.1% ※平成23年度~令和4年度の平均 |
公式サイト:ITパスポート試験
基本情報技術者
ITを活用したシステムやソフトウェアを作る人材に向けて、基本的な知識や技能、活用能力を有していることを証明する資格です。
上位者の指導のもと、IT戦略に関わったり、システム・サービスの提案活動に参加したり、ソフトウェアを設計したりできる能力のほか、プログラムを作成できることも求められます。
実施方式 | CBT方式(Computer Based Testing方式:パソコンを使用して解答) |
実施時期 | 随時実施(※令和4年度までは年2回実施) |
試験時間 | 科目A:90分 科目B:100分 |
出題数 | 科目A・出題数 60問 解答数 60問 科目B・出題数 20問 解答数 20問 |
試験費用 | 7,500円(税込) |
合格率 | 49.4% ※令和5年度の合格率 |
応用情報技術者
基本情報技術者よりも高度な資格で、応用的知識や技術を身につけていることを証明します。
経営戦略やIT戦略の策定においては、経営者の方針や経営を取り巻く外部環境を理解し、情報収集や分析を行えることが求められます。また要件定義やシステム設計など各開発フェーズにおいても、調査・検討が自ら行えるだけのスキルも必要です。プロジェクトマネージャーの下で、予算や品質、工程を管理できることも求められます。
実施方式 | 筆記 |
実施時期 | 年2回 春期(4月)、秋期(10月) |
試験時間 | 午前:150分 午後:150分 |
出題数 | 午前・出題数 80問 解答数 80問 午後・出題数 11問 解答数 5問 |
試験費用 | 7,500円(税込) |
合格率 | 23.2% ※令和5年度秋期試験 |
まとめ
「システムエンジニアになるにはどうすればよいか」を中心に、必要なスキルや挑戦しやすい難易度の資格をご紹介しました。システムエンジニアはキャリア前段階のプログラマーから始まり、システムエンジニアの経験を積んだ後はプロジェクトマネージャーやその他専門分野を極める職種など、キャリアパスが多彩です。
現在、システムエンジニアに転身しようか迷っている人は、今自分ができることとこれから身につけるべき技術を洗い出し、ぜひ挑戦してみてください。