非エンジニアの為のエンジニアの種類の解説
エンジニアと言っても沢山の種類がありますよね。私も昔は、エンジニアはエンジニアだけで、その中に細かな種類があるなんて考えた事すらありませんでした。しかし、エンジニアさんと交流を深めていくと、
「◯◯エンジニア?」
「◯◯エンジニアって事は、◯◯やっているのね!」
なんて会話が沢山でできます。そこで、今回は大きな分類でのエンジニアの種類についてまとめたいと思います。これを参考に、お知り合いのエンジニアさんが、どんなお仕事をやっているのか確認してみてください。
エンジニアの大分類
かなり専門的な分野の分類は除き、みなさんが知っていそうなエンジニアの種類のみをご紹介します。
システムエンジニア(SE)
プログラマー
Webエンジニア
データベースエンジニア
エンジニアの中でも最も多く聞く機会があるのは、システムエンジニア(SE)ではないでしょうか?その後に、プログラマなどが続くのかなと個人てきには感じています。では、実際それぞれのエンジニアの役割はどのようなものなのかを見ていきます。
①システムエンジニア(SE)
システムエンジニアは、その名の通りシステムに関連する部分を担うエンジニアです。つまり、システムの設計や開発・テストなどを手がける仕事です。プログラマと混同される事も多いSEですが、多くの場合、制作物の上流工程で「どのような仕様で、何を使い、どのように仕上げるのか?」を検討し、それを仕様書などに書き出したり、品質チェックを行ったりします。場合によっては実際にプログラミングをしたりする場合もありますが、エンジニアの中ではWebディレクターに近しいと個人的には考えています。
要件定義・基本設計・詳細設計・テストなどが基本業務になってくるわけですが、具体的な話で言えば、「開発言語はどうすべきか?」「データベースはどうするか?」「ネットワークはどうするか?」などを考えていきます。システムやWeb全般に詳しい必要があり、最新技術もしっかりと勉強する必要があったりと、ジェネラリスト的な側面が目立つエンジニアでもあります。
②プログラマー
システムエンジニアの項目でも記載してあるような、作成された仕様書や詳細設計に従いシステムをプログラムしていく作業を担うのがプログラマーになります。
プログラミングというと、Java・PHP・Ruby・JS・C#など様々な言語があります。それらの言語を実際に使用し、システムを構築していきます。仕様に沿ってプログラムを作り上げる事が重要な役割ですが、それに付随して意図しない動きになった場合などのバグチェックなども行う事が現場ではよくあります。仕様書や詳細設計では、明記されていない部分に関しても、自ら考え構築していく必要があったりもします。
プログラマーとSEの境界線はかなり曖昧で、プログラマーがSEのような上流工程の作業を行いプログラマー兼SEになる場合などもよくあります。
③Webエンジニア
Webエンジニアは、Webサイトに特化したエンジニアと一般的に言われるのですが、正直定義が曖昧ですよね。他のエンジニアもWebサイトに特化している場合が大半ですからね。わかりにくい。どう説明すべきか悩んでいるとこんな丁寧な説明がありました。
Webサイトを構築するためには、クライアントサイドとサーバーサイド、2つのプログラムが必要であり、Webプログラマーはその両方の開発に携わります。クライアントサイドのプログラムは、Webサイトを閲覧する人のためのプログラムで、ブラウザ上などで機能します。一方、サーバーサイドのプログラムは、インターネット回線を通じてデータのやりとりを行い、クライアントサイドへ、その要求に沿った処理を施した上で結果を送ります。この両方のプログラムをWebプログラマーが正しく開発することにより、Webサイトは正常に作動します。
非常にわかりやすいですね。Webエンジニアは、HTMLやCSS、プログラマがいじるようなPHPなどの言語なども使用します。HTMLやCSSのように、ユーザーにとって視覚的に必要な部分と、システムを動かす上で必要なサーバーとの処理などの両方を作ったりするわけです。これも個人的な意見ですが、プログラマーの中には、"ユーザーにとって視覚的に必要な部分"を作らないエンジニアもいるので、分けられているのではないかなとは思います。
④データベースエンジニア
データベースエンジニアは概念的的にはとてもわかりやすいです。データベースの構築や設計・運用などを行う事が業務になります。データベースとは、情報の箱だと考えていいと思います。
例えば、このブログのようにWordpressの場合はMy SQLと呼ばれるデータベースを活用しています。例えば今皆さんが読んでいるこの記事を表示させる為には、データベース(箱)から、「記事情報」「カテゴリ」「URL情報」を取得しています。
データベースで情報がしっかりと整理されていれば、システムが「この情報をくれ」と言った時に、「この情報はここの箱に入っているからここから取り出してね」となるわけです。
そのような大きなデータの箱を構築・運用していくのがデータベースエンジニアの仕事です。最近だとインフラエンジニアの業務内容に含まれている場合も多いと思います。
最後に
エンジニアと言っても、上記には当てはまらないようなエンジニアさんは沢山いらっしゃいます。Naverまとめのエンジニアの種類は30個くらいあります。正直、そこまで小さく分類する必要はないと思いますが、上記でもほぼカバーできていないのも事実です。実際区別がつきにくいところもあり、何エンジニアなのかは非常に判別しにくいです。しかし、◯◯エンジニアですといわれたら、◯◯をやっているんだなーと想像できるくらいにはしておくと、非エンジニアとしてはいいかもしれません。