ソフトウェアエンジニアとプログラマーとWeb開発者の違い

Share on:

TwitterやQiitaなどを見ていると、自分の職種のことを「エンジニア」と名乗る人と、「プログラマー」と名乗る人がいます。たまに「Web開発をしています」という人もいますね。

この3つの職種の違いは何でしょうか。

各職種の違い

こちらの記事から引用してきました。

A software engineer is someone who builds (engineers) software. This software could be desktop programs like Spotify or Photoshop, or mobile and web applications (like Facebook, Twitter, or Gmail). Another term for this is “computer programmer.”
A web developer is a software engineer who only builds web applications.
But, every web developer who is employable is a software engineer. “Software Engineers” don’t have a better salary than “Web Developers,” nor do “Software Engineers” do different work than “Web Developers” on a day-to-day basis, assuming they’re working on web applications.

簡単に翻訳すると、「ソフトウェアエンジニアは、ソフトウェア(アプリなど)を作る人のことで、コンピュータプログラマとも言われます。」

つまり、ソフトウェアエンジニア=コンピュータプログラマということになります。

その下にはこう書いてあります。「Web開発者は、Webアプリを作るだけのソフトウェアエンジニアです。」

つまり、Web開発者<ソフトウェアエンジニア=コンピュータプログラマという図式が成り立ちますね。

多くのIT従事者は、Webアプリ以外のソフトウェアも作りますし、たまにはAWSのサーバを触ったり、SQLを書いたりもするので、Web開発者ではなく、ソフトウェアエンジニアかコンピュータプログラマに当てはまるのでしょう。

ここまで、ソフトウェアエンジニアとコンピュータプログラマとあえて書きましたが、冒頭にはこう書きました。

自分の職種のことを「エンジニア」と名乗る人と、「プログラマー」と名乗る人がいます。

それぞれソフトウェアとコンピュータが抜けているんですね。これらを書かずに、「エンジニア」「プログラマ」としてしまうと、定義が変わってしまうんじゃないかと思いました。ので、調べてみました。

エンジニアの定義

我らがwikipediaから一部引用です。

音楽業界においては、レコーディング・スタジオなどでレコード/CD/DVDなどの音楽制作物における音響操作系技術者である「レコーディング・エンジニア」や「マスタリング・エンジニア」の事を単に「エンジニア」と呼称及び表記する事がある。
コンピュータの分野では、総称してコンピュータエンジニア、コンピュータ技術者ITエンジニアなどと呼ばれる。

だいぶ端折りましたが、「エンジニア」だけだと、何をしている人かわからないんですね。機械をいじくる人くらいにしか認識されません。

では、プログラマーの定義を見てみましょう。

プログラマーの定義

またしてもwikipediaからの引用です。

プログラマ(Programmer)とは、コンピュータープログラムを作成する人全般を指す。

プログラマはコンピュータを付けなくても、コンピュータのプログラムを作成する人と定義されるようです。

「エンジニア」はNG(機械を作る人でいいならOK)で、「プログラマ」はOKということですね。

SEはどうなの?

システムエンジニアという職種もあるのですが、日本特有の呼ばれ方らしいので、英語で「system engineer」という職種はありません。おそらくソフトウェアエンジニアと同じ意味だと解釈してもらえるとは思いますが。

日本で言うSEというのは、SIerで働く技術者のことだと思って間違いないです。ベンチャーで働く人の中に自分のことをSEと名乗る人は聞いたことがありません。

SIerではプログラミングはあまりやらないので、技術力は身につきません。なので、SEと名乗る人に対しては、「大企業で働いているから給料はいいけど、スキルはあまりない人」くらいに思っておきましょう。

ちなみに、僕が「プログラマーです」って名乗ってるのに、「SEね!」って返してくる人には、いつも反論したいと思っています。まあでも、無駄な議論になりそうなので、反論はしませんが。

プログラマーって名乗っておけばOK

Web開発者やSEだと技術力が低く見積もられるし、エンジニアだと、音楽従事者、航空従事者のエンジニアの方々に混ぜてもらう形になるので、好ましくありません。

なので、プログラミングができる人は、とりあえずプログラマーと名乗っておきましょう。

このブログでもできるだけ「プログラマー」と名乗るようにしていますが、検索ボリュームを見ると「エンジニア」が多かったりするので、タイトルに「エンジニア」を入れたこともありました。

ここで結論が出たので、これからは「プログラマー」一本でいきたいと思ってます。