【あなたはどれ？】エンジニアの仕事領域３選【＋１選】

<br>
<br>
<b>「エンジニアっていろいろ種類があってわからない！」</b>

そんな方のために、エンジニアの仕事領域をわかりやすくまとめてみました！この記事では業界でもよく言われる、<b>エンジニアの仕事領域</b>についてわかりやすく<b><font color=red>３つ</font>（＋１つ）</b>に分けて、ご紹介しています。<br><br>





##目次
<ul>
 <li><b>エンジニアの仕事領域３選</b>
  <ul>
   <li>フロントエンドについて</li>
   <li>バックエンドについて</li>
   <li>インフラついて
    <ul>
     <li>ネットワークについて</li>
     <li>サーバーについて</li>
    </ul>
   </li>
  </li><br>
 <li><b>フルスタックついて(＋１選)</b></li><br><br>
</ul>





##フロントエンドについて
<b>Webページの<font color=red>見た目</font></b>や、<b>利用するユーザーが<font color=red>見える部分</font></b>のコーディングを行う領域を、フロントエンド（仕事をする人を<b>フロントエンドエンジニア</b>）と言います。

####使用する言語やツール
<ul>
 <li><b>HP制作やLP制作</b>
  <ul>
   <li>HTML (Bootstrap)</li>
   <li>CSS (Sass)</li>
   <li>JavaScript (jQuery.js、Vue.js、React.js、、、)</li>
   ...etc
  </ul>
 </li><br>

 <li><b>スマホアプリ開発</b>
  <ul>
   <li>Swift</li>
   <li>Kotlin</li>
   <li>Flutter</li>
   ...etc
  </ul>
 </li><br>
</ul>

####仕事内容や特徴

主にデザイナーから受け取った `Photoshop` や `Illustrator` 、 `Adobe XD` などのデザインデータを元に、上記の言語を使用して<b>見た目を作って行く</b>と言うようなお仕事です。<br>

フリーで仕事をとる時などは、デザインの作成も合わせて提案する事もあります。なので上記の言語にプラス、`Photoshop` や `Illustrator` 、 `Adobe XD` なども取り扱えるようになると、できる仕事の幅が広がりやすい感じです。<br>

また上記で紹介した言語は、総称として <b>フロントエンド言語</b> と呼ばれたりもします。<br><br><br><br>





##バックエンドについて
フロントエンドがWebページの見た目や、利用するユーザーが見える部分の領域を扱うのに対し、バックエンドは<b>Webページの<font color=red>裏側</font></b>や、<b>利用するユーザーが<font color=red>見えない部分<font></b>のプログラムを作成する領域になります。（仕事をする人を<b>バックエンドエンジニア</b>と言う。）

####使用する言語やツール
<ul>
 <li><b>サーバーサイド言語</b>
  <ul>
   <li>PHP (Laravel)</li>
   <li>Python (Django)</li>
   <li>Ruby (Raills)</li>
   <li>Go</li>
   <li>Perl</li>
   <li>Java</li>
   <li>C</li>
   <li>C++</li>
   <li>C#</li>
   <li>Node.js</li>
   ...etc
  </ul>
 </li><br> 

 <li><b>ミドルウェア</b>
  <ul>
   <li><b>Webサーバー</b>
    <ul>
     <li>Apache</li>
     <li>NginX</li>
     <li>GoogleWeb server</li>
     ...etc
    </ul>
   </li><br>

   <li><b>APサーバー</b>
    <ul>
     <li>Tomcat</li>
     <li>Unicorn</li>
     ...etc
    </ul>
   </li><br>

   <li><b>DBサーバー</b>
    <ul>
     <li>MySQL</li>
     <li>PostgreSQL</li>
     <li>Oracle Database</li>
     ...etc
    </ul>
   </li><br>
  </ul>
 </li>

 <li><b>OS</b>
  <ul>
   <li>Linux OS</li>
   <li>Mac OS</li>
   <li>Windows OS</li>
   <li>Cent OS</li>
   ...etc
  </ul>
 </li><br>
</ul>

はい、多いですね。(笑)
最初から全てを理解するのは難しいと思うので、<b>「こんな感じなんだ〜」</b>程度で大丈夫です。<br><br>

####仕事内容や特徴

仕事内容は結構多岐に渡るのですが、簡単に言うとフロントエンドエンジニアが作成した `HTML` ファイルに、`サーバーサイド言語` を利用して、<b>ログイン機能の実装</b>や<b>投稿機能の実装</b>、<b>データベースの作成</b>、<b>デバック(運用テスト)</b>などが挙げられます。

また、企業向けに<b>勤怠管理システム</b>や<b>顧客管理システム</b>、人力でやっていた業務の<b>自動化システム開発（業務の効率化）</b>、データベースを分析して<b>機械学習</b>や<b>AI開発</b>などもあります。<br><br>

ただし、技術のトレンドが目まぐるしく変わっていく領域でもあるため、<font color=red><b>常に新しい技術の学習</b></font>や、<font color=red><b>トレンドの素早いキャッチアップ</b></font>が必要になってきます。<br><br><br><br>





##インフラについて

バックエンドの領域の領域と少し被るのですが、主に上記の<b>ミドルウェア</b>と<b>OS</b>に加え、<b><font color=red>ハードウェア関連</font>（物理的なコンピューター、サーバー、ネットワーク）</b>の領域を構築するのが、インフラ（仕事をする人を<b>インフラエンジニア</b>）と言います。

インフラは、さらに２種類の領域に分ける事ができます。<br><br>

####サーバーエンジニア
ここで言う「サーバー」とは、バックエンドで紹介した`(目に見えない)サーバー` のことでは無く、`（物理的な）サーバー`の事を指します。写真で見るとこんな感じですね。

![4023674_s.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882660/f34f1bcb-85fc-9cd8-940e-69eb44514281.jpeg "サーバールームの写真")

主にこれらの機器を取り扱う仕事が、サーバーエンジニアと呼ばれます。

>ただし最近では、こういった物理的なサーバー `(オンプレミス)` の構築では無く、アマゾンやマイクロソフトなどが提供しているサーバー `(クラウド)` を構築する仕事が、かなり増えてきています。そのため、企業によって求められるスキルが異なります。


####ネットワークエンジニア
一般家庭でも使用される<b>ルーター</b>や<b>LANの配線</b>などの構築や、それの<b>企業版</b>などを構築し、<font color=red><b>適切にデータの送受信が行えるようにする</b></font>エンジニアの事を指します。<br><br><br>

####インフラ全体の特徴
インフラエンジニアは、その名の通り<b>インターネットを利用するのに<font color=red>必須の環境を構築</font></b>する仕事になります。そのため、ガス会社や電力会社と同様に、<b>半永久的に仕事が無くならない</b>と言われています。なので他と比べると、<b>比較的安定した領域</b>と言えます。

また、インターネットを活用している企業なら<b>必ず需要のある領域</b>なので、ある意味どんな業界でも働ける可能性を秘めていると言えます。<br><br><br><br>

##フルスタックについて
最後にフルスタックとは、これまで紹介してきた<b>フロントエンド</b>、<b>バックエンド</b>、<b>インフラ</b>の<font color=red><b>全ての領域に携わるエンジニア</b></font>の事を指します。<br><br>

####仕事内容と特徴
フルスタックエンジニアは、<b>エンジニアとしての<font color=red>全ての領域</font></b>を、ある程度網羅していますので、その仕事内容はかなり多岐に渡ります。

なんでもできるが故に、<b>激務になりがちなポジション</b>を任される事が多い。その代わり、他のエンジニアと比べて<b>平均年収が高く</b>、主にスタートアップ企業やベンチャー企業での需要が高まっています。また、一人で全ての開発が可能なので、そのまま<b>フリーランス</b>や<b>独立する人</b>の割合も多い。<br><br><br><br>

##まとめ
一口にエンジニアと行っても、領域によってやる事がかなり変わってきます。そのため、これから学習を始められる方は、まず<b><font color=red>自分がどの領域の仕事をしてみたいか？</font></b>を、明確にしておく必要があります。なのでもう一度、最後にまとめて終わります。

<ul>
 <li>フロントエンド(Webページの見た目を制作)</li>
 <li>バックエンド(Webページの裏側を制作)</li>
 <li>インフラ(ハードウェア部分の環境構築)
  <ul>
   <li>ネットワーク</li>
   <li>サーバー</li>
  </ul>
 <li>フルスタック(全ての領域)</li><br>
</ul>


最後まで見てくださり、ありがとうございました。<br><br><br><br>

筆者：yuki｜学習10日目で初案件獲得→現在はフルスタックエンジニア転職に向けて学習中
Qiita：https://qiita.com/yuki4839
Twitter：https://twitter.com/yuki35522891