SEってプログラマーじゃないの?
SEはプログラミングをする仕事?
プログラマーの種類は?
IT業界での仕事が近年注目をされていますが、SEとプログラマーの仕事内容が一緒だと思っている方は少なくありません。
本記事では上記のような疑問を持っている方に、SEとプログラマーの仕事内容の違い、プログラマーの種類を中心に解説をしていきます。
ぜひ最後までご覧ください。
SEとプログラマーの違い
はじめにSEとプログラマーの違いについて見ていきましょう。
ざっくりと言ってしまえば、SEは設計書を作る人、プログラマーはSEが作った設計書を元にプログラミングをしていく人で、業務を担当する区分が違います。
SEが総合職、プログラマーは技術職というイメージが近いかも知れません。
SE(システムエンジニア)とは?
SEhシステムエンジニアの略称で、クライアントや依頼主にヒアリングを行いニーズを把握することから始まります。
ITの力を必要とする企業やクライアントは多いですが、何ができるか?どうしたら良いのか?が分からないクライアントも多いため、SEには高いコミュニケーション・傾聴力が必要とされます。
クライアントへのニーズのヒアリングなどから要件を定義し仕様書を作っていく作業は、上流工程とも呼ばれシステムの方向性が決まる大切な部分です。
仕様書の内容が分かりづらかったり、間違っていたりすると後からの修正に大幅な時間と労力が割かれてしまうため、パソコンでの作業よりもクライアントとのコミュニケーションに時間をかける場合が多いです。
プログラマーとは?
プログラマーの仕事は、SEが起こした仕様書を具現化させるコードを入力していくことが仕事です。
プログラマーが入力するコードを「プログラミング言語」と呼び、「プログラミング言語」とはコンピューターに対して動作手順、方法、内容を適切に指示するために用いられる言語です。
プログラミング言語の種類は数百種類ありますが、言語には作れるものや得意分野に違いがあります。
たとえば、近年の人気のある「Python」はAIを作るのに向いていて、「JavaScript」はWebブラウザ上で動くものを作るのに向いています。
就職や転職でプログラマーを目指すのであれば、需要の高い言語の学習をして時間効率も考えていかなくてはなりません。
SEの仕事内容
SEの仕事内容を詳しく見ていきましょう。
前段で紹介をしたように、SEの仕事はクライアントの要件を定義するヒアリングから行われ、プログラマーや関連各所に対して分かりやすく伝えるための仕様書を起こしていきます。
要件定義
顧客がどのようなシステムを望んでいて、何のためにシステムを作りたいのかを明確にしていくのが要件定義です。
要件定義では「何ができるか」も重要ですが、「何をしないか」を決めるのも大切です。
顧客の要望をすべて叶えられれば良いのですが、開発期間やリソース、費用などの面からすべての要望を受け入れるのが難しいためです。
それらを踏まえた上で、顧客の要望をどのように実現させるのかを決定するのが要件定義です。
基本設計
基本設計は顧客のニーズを実現するシステムの設計を行う工程です。
要件定義で決めたデータを元に、表示方法や操作方法はどうするのかな「何を実現するのか」を決める工程です。
詳細設計
前項目で明確化させたシステムに必要な機能を、プログラマーへの指示書になる設計図を制作するのが詳細設計です。
詳細設計は、基本設計と実際のプログラミングの中間に位置する、システム開発における工程のひとつです。
テスト
本格的なシステム運用が開始される前に、システム開発の段階ごとにテストは実施され、主に単体テスト、結合テスト、システムテスト(総合テスト)、受入れテスト(ユーザーテスト) 4種類のテストがあります。
単体テスト…画面、機能ごとの動作検証
結合テスト…ほかの機能やシステムと連携させて動作検証
総合テスト…実際の運用を想定したシステム全体の動作検証
受入れテスト…仕様書通り完成しているかの確認
システム開発でのテストは、開発したプログラム、システムに問題がないかチェックをして修正することです。
システム開発でバグが出ない状況はほとんどなく、不具合・問題がなくシステムを運用させるためにもテスト工程は必ず行います。
プログラマーの種類
本項目からはプログラマーの種類について解説をしていきます。
プログラマーと一口に言っても、Web系、組み込み系、通信系などさまざまなプログラマーの種類があります。
Webプログラマー
Webプログラマーは、Webサイトに特化したプログラミングを行うプログラマーです。
Webの進化は早く、インターネットが出始めたころのテキスト中心のページと現在は大分変りました。
たとえば、問い合わせ用のメールフォームやパスワード入力画面、光る申し込みボタンなど、さまざまな技術が取り入れられていて、これらの仕事はWebプログラマーによって実装されています。
組み込み系プログラマー
組み込み系プログラマーは、家電製品や電子機器などを制御・コントロールするシステムのソースコードを書くのが仕事です。
お風呂のお湯を入れるとき、満杯になる前に音や音声で通知をする、洗濯機など水が一定量に達したら動作を指示するなどです。
通信系プログラマー
通信系プログラマーは、名前の通りネットワーク機器などの通信に関する製品やシステムを開発します。
Wi-Fiルーターやモデム、オンライン会議システムやIP電話の通話システムなどは、通信系プログラマーが担当しています。
汎用系プログラマー
システムは大きく分けて汎用系とオープン系があり、それぞれで使う言語が異なります。
汎用系は金融機関、保険会社、官庁など大規模な顧客データを取り扱うのが特徴で、他のコンピューターとの互換性を持たせず、クローズドなシステム構築を行います。
使われる言語は、近年ではJavaやC言語など費用率が高まっています。
SEとプログラマーの将来性
結論をお話するとSEとプログラマーの需要は、現在も将来的にも拡大し続けるでしょう。
需要が拡大する理由は、IT社会が発展しWebやIT技術を取り入れていない会社は、現代ではほとんどないからです。
特にインフラ系エンジニアは、ネットワーク、サーバーを扱い通信キャリアをはじめ、ビジネスシーンで活用されているクラウド関連、仮想化など対応すべく企業からの需要が高まっています。
並行してプログラマーの需要も高く、スキルがあればさまざまな分野での活躍が期待できます。
パソコンがあれば時間、場所を選ばずに仕事ができることから、企業で2~3年経験をしたあとに独立やフリーランスで仕事をする人も増えています。
SEもプログラマーも業界や知識、言語、スキルの学習を続けていくのが必要です。
まとめ
SEとプログラマーの違い、仕事内容や種類などを解説してきました。
SEはシステムエンジニアを指し、クライアントの要件を定義して仕様書を起こす役割、プログラマーは仕様書に沿ってシステムを具現化する役割です。
つまり、SEになるにはプログラマーからスタートをして経験を積み、システム開発の下流からスキルを身に付けてキャリアアップを目指すのが一般的です。
IT人材は将来的に不足する見込みのため、SEやプログラマーの需要は今後も上がっていきます。就職や転職をお考えの際には、ぜひ本記事を参考にしてください。