【初心者向け】ITエンジニアの種類や仕事内容を丁寧に解説!

一口に「ITエンジニア」と言っても、その種類や仕事内容は様々。ITエンジニア未経験者・初心者からしたらチンプンカンプンなのではないでしょうか。駆け出しエンジニア・まきお君とベテランエンジニア・テク博士が分かりやすく、体系的に解説していきます!





テク博士!ついに僕もエンジニアの仲間入りです!

おー、そうか。遂にまきお君もエンジニアになったんじゃな。どうじゃい、エンジニアになった気分は?

実はなったと言っても1週間前でして・・・。正直、まだ何が何だかよくわからないんです。

そうかい、そうかい。具体的にどんなことが分からないんじゃい?

そうですね。フロントエンドとかバックエンドの違いとか、JavaとJava Scriptの違いとか・・・。正直何が分からないのかも、まだいまいち良く分からないんです。

なるほどのー。まるでワシの70年前を見ているみたいじゃわい。

(テク博士っていったい何歳なんだろう)

それじゃあ、まずは「ITエンジニア・プログラマーとは何か」を理解するところから始めるとするかの。

▼目次
・そもそもITエンジニアってどういう職種?
  ・Webサービスは「クライアント」と「サーバー」で成り立っている
  ・クライアントサイドとサーバーサイドで用いるプログラミング言語が違う
・ITエンジニアの種類と仕事内容
  ・ITエンジニアの種類

そもそもITエンジニアってどういう職種?

まず、ITエンジニアは、「Webにおけるモノづくりの担い手」です。あなたが見ているこのサイトもITエンジニアの手によって作られています。ここでは単純化のために「Webサービス」を作るモノとしましょう。

また、明確な定義はありませんが、ITエンジニアと同じくよく聞く「プログラマー」との違いとしては「Webでのモノづくりにおける担当分野の違い」であると、最初は認識すれば良いでしょう。

Webにおけるモノづくりの大きな流れとして、下記の図を見てください。


なるほど。いつも僕が見ているTwitterやFacebook等のWebサービスもこういった流れで作られているのですね!ちなみに、JAVAやJava Script等のプログラミング言語は、ここにどう関わってくるのですか?

まぁまぁ慌てるでない。それに関しても順を追って説明していくぞ。
ITエンジニア・プログラマーが作るWebサービスはどのように動いているの

具体的な違いの説明に入る前に、大前提として「Webサービスはどのように動いているのか」を理解しましょう。

大きなポイントは2つです。

  • Webサービスは「クライアント」と「サーバー」で成り立っている
  • クライアントサイドとサーバーサイドで用いるプログラミング言語が違う

それぞれ以下で詳しく説明します。

Webサービスは「クライアント」と「サーバー」で成り立っている

Webサービスは大きく「クライアント」と「サーバー」で成り立っています。

クライアント(あなたがいつも使っているパソコンやスマホを想像してください)がサーバーに対して情報を要求することを「リクエスト」と言います。

逆に、サーバー(Webサービスの情報を保有している箱であると想像してください)がクライアントからのリクエストに対して情報を返すことを「レスポンス」と呼びます。

したがって、クライアントによるリクエストとサーバーによるレスポンスにより、あなたはいつもWebサービスを見ることができているのです。

クライアントサイドとサーバーサイドで用いるプログラミング言語が違う

改めて、あなたがいつも見ているWebサービスはリクエストとレスポンスにより成り立っています。それぞれを動作させるために用いるプログラミング言語が異なってきます。

クライアントサイドのプログラミング言語

クライアントサイド、つまりあなたがWebサービスを見る時は、今やほとんどが「ブラウザ」を通してでしょう。「ブラウザ」とはここでは「パソコンやスマホでWebサービスを見る時のソフトである」と理解していれば十分です。

有名なブラウザとしては、Google社が提供するChrome、Microsoft社が提供するInternet Explorer(IE)等です。この2つだけで、世界のほとんどのシェアを占めています。

そして、クライアントが見るブラウザは、HTMLという言語で作られています。今まさにあなたが見ているこの記事もHTMLにより作られており、ソースは以下のようになります。

しかし、HTMLはあくまでWebサービスの骨子を作ることしかできません。つまり、デザイン性を担保することができないのです。そこで、デザイン性を担保するために使用されるプログラミング言語がCSSと呼ばれるものです。

CSSはデザイン性を担保する、つまり見た目を整えることができます。例えば、この記事を運営しているサイト名である「ワカテク」の文字を赤くしたいとしましょう。

HTMLだけの場合

HTMLファイルでは以下のように書いています。

CSSを加えた場合

上記のHTMLファイルに加えて、CSSファイルでは以下のように書いています。

そして、HTMLやCSSでは対応できない、より高度な処理をしたい場合に用いられるプログラミング言語が「Java Script」です。例えば、ページのスクロールに合わせて、バナーを追尾させたり、何かしらの登録フォームでユーザーが適切な形で入力を行っているのかをチェックしたりすることができます。

まとめると、クライアントサイドのプログラミング言語とその役割は以下の通りです。

  • HTML :Webサービスの骨子を作る
  • CSS :HTMLで作った骨子にデザイン性を加える
  • Java Script:HTMLやCSSではなきないより高度な処理を行う

サーバーサイドのプログラミング言語

次に、サーバーサイドのプログラミング言語についてです。

改めて、サーバーとはクライアントからのリクエストに対してレスポンスをする、つまり情報を返すことが役割であり、「情報を保有している箱」のようなものです。

そして、そのサーバーの中でも、具体的に情報を保有している場所を「データベース」と言います。データベースにも様々な種類があり、OracleやIBM、Microsoft等が提供をしています。

また、種類の違いはあれど、データベースを操作するために使われる言語がSQL(エス・キュー・エル)と呼ばれる言語です。

しかし、「データベースはあくまでデータベース」でしかありません。つまり、データベースはただ情報を保有しているだけであり、それでけではクライアントからのリクエストに対して、レスポンスすることができないのです。

そこで、リクエストに対してレスポンスをするための仕組みとしてサーバーサイドにもプログラミング言語があります。それがまきお君が何度も口にしているJAVA、そして、PHP、Ruby等のプログラミング言語なのです。

サーバーサイドだけでなく、クライアントサイドのプログラミング言語をまとめると以下の通りです。

クライアントサイドの言語

  • HTML :Webサービスの骨子を作る
  • CSS :HTMLで作った骨子にデザイン性を加える
  • Java Script:より高度なデザイン性を実現するために用いる

サーバーサイドの言語

  • SQL :データベースを操作する
  • JAVA, Ruby, PHP :クライアントからのリクエストに対してレスポンスする

あー、疲れました。。。でも、なんとなく大枠が見えてきました!

そりゃ、良かった。それじゃあ、今までの話を踏まえて、エンジニア・プログラマーの種類と仕事内容の話をするとするかの。

あと少し!よろしくお願いいたします!

ITエンジニアの種類と仕事内容

ITエンジニアはWebにおけるモノづくりの担い手です。そして、1つのWebサービスを作ろうとするだけでも、複数の役割やプログラミング言語が必要なことが分かりました。それでは、早速ITエンジニアの種類を見ていきましょう。

ITエンジニアの種類

大きな分類としては、「クライアントサイド」「サーバーサイド」「アプリ」「専門領域」の4つになります。

クライアントサイドでは、ブラウザを通してクライアント(あなた)が見える部分を作ります。そのため、エンジニアではないもののデザイナーも含め、そしてフロントエンジニアの2種類になります。

サーバーサイドでは、クライアントからのリクエストに対するレスポンスの仕組みを作ります。具体的には、バックエンドエンジニア、インフラエンジニア、データベースエンジニアの3種類です。

アプリはスマホアプリのことを指します。スマホアプリを作るエンジニアのことをアプリエンジニアと呼び、スマホの場合、OS(実際にスマホを動かすソフト)はApple社が提供するiOS、そしてGoogleが提供するAndroidに大きく二分されます。それぞれのOSで作り方が異なるため、iOSエンジニアとAndroidエンジニアの2種類あります。

最後に専門領域に挑戦するエンジニアです。近年(2017年現在)であると、やはり機械学習、VR等に挑戦するエンジニアが増えてきているようです。

また、Webアプリケーションエンジニアやフルスタックエンジニア等の種類もあります。定義は明確ではありませんが、Webアプリケーションエンジニアは「フロントエンドとバックエンドができるエンジニア」、フルスタックエンジニアは「クライアントサイドとサーバーサイドをまるっとできるエンジニア」と考えられていることが多いようです。


これで説明は以上じゃ。年寄りのワシもどっと疲れてしまったわい

すいません・・・!だけど、本当に勉強になりました。一口にエンジニア・プログラマーと言っても、仕事内容も必要なスキルも大きく違うんですね。体系的に理解ができました!

そうじゃの。ワシとしては、どこを入り口にしてもええと思うが、まずは「好きなもの」をやることがエンジニアへの第一歩かと思うぞ。

好きなもの、ですか。ちょっと考えてみたいと思います。

少年よ、大志を抱け!