
バックエンドエンジニアとかフロントエンドエンジニアとか聞くけど違いは何?

バックエンドエンジニアになるには何を勉強したらいいのかな?
IT系の転職サイトを見ていると、募集職種がバックエンドエンジニア(サーバーサイドエンジニア)などと書かれています。
バックエンドエンジニアという名前だけ聞いても、何をするのかよくわからない人もいるのではないでしょうか。
この記事では、IT業界20年の経験から、バックエンドエンジニアの仕事内容や必要スキル、勉強のやり方について紹介します。
バックエンドエンジニアとは?
バックエンドエンジニアは、Webシステムにおいてサーバー側(サーバーサイド)の設計・開発・運用を行う職種です。
サーバーサイドエンジニアとも呼ばれます。
バックエンドエンジニアに対して、クライアント側の設計・開発を行うのがフロントエンドエンジニアです。
Webシステムは、クライアントとサーバーで分かれています。クライアントはWebブラウザのことで、画面に情報を表示する役割とキーボードやマウスから入力を受け付ける役割があり、サーバーに情報を送ります。一方、サーバーはWebブラウザからの要求に応じて結果を返す役割があります。
例えば、商品検索画面だと、入力したキーワードをデータベースから検索してクライアントに結果を返すのがサーバーの役目です。
バックエンドエンジニアは、このようなサーバーを設計したり開発したりします。
バックエンドエンジニアの仕事内容
バックエンドエンジニアは、サーバーに関することを幅広く担当します。
- アプリケーション開発(サーバーで動くプログラムの設計や開発)
- Webサーバー構築
- ネットワーク設計及び構築
- データベース設計と構築
- サーバーの運用(監視、バージョンアップなど)
小規模なプロジェクトでは、バックエンドエンジニア1人で全ての作業を行います。
大規模プロジェクトになってくると1人では無理なので、バックエンドエンジニアはアプリケーション開発だけ行い、ネットワークエンジニアがネットワーク設計や構築を担当します。
バックエンドエンジニアの必要スキル
バックエンドエンジニアはアプリケーション開発からサーバー運用まで行うので、スキルエリアが広いです。
その中でも重視されるのがアプリケーション開発のスキル。なので最低1つのプログラミング言語の経験が必要です。
サーバーサイドのアプリケーション開発では、次のようなプログラミング言語を使います。
- Java
- PHP
- Python
- Ruby
- JavaScript(Node.js)
どのプログラミング言語を使うかはプロジェクトごとに決まります。業界によって使われる言語に違いもあります。例えば、スタートアップ企業はRuby、金融系はJavaといった感じです。
データベースはSQL文でCRUD(Create/Read/Update/Delete)するスキル、ネットワークはTCP/IPの基本知識が必要です。
サーバーは、業務で使うLinuxをコンソールで操作するスキルが必要です。
バックエンドエンジニアに向いている人
プログラミング能力が重要なので、まずはプログラミングが好きで面白いと思っている人は、バックエンドエンジニアに向いていると言えます。
仕事の大半が、プログラム設計やプログラム開発だからです。
逆に、表やグラフで情報を整理したり、処理の流れを考えるのが苦手な人は向いていません。
まずは、本やProgateでプログラミングをやってみて楽しいと感じるかどうか、試してみてください。
バックエンドエンジニアの働き方
バックエンドエンジニアはWebシステム開発では必要になる職種なので、様々な業界で需要があります。
会社の業態では、SIerと呼ばれるシステム開発会社や、自社で製品やサービス運営を行っている会社へ正社員として就職できます。
バックエンドエンジニアは専門性が高いので、フリーランスとして活躍している人もいます。ただ、フリーランスエンジニアになるなら、Python専門バックエンドエンジニアというように、他人より飛び抜けたスキルを持って活動したほうが良いでしょう。
バックエンドエンジニアになるための学習の進め方
プログラミング学習の進め方
まずはどれか1つ、プログラミングをマスターします。どのプログラミング言語を学んだら良いかは、以下の記事を参考にしてください。
プログラミング学習の基本は、本や動画を見るだけではなく、実際に手を動かしてみること。まずは本に書いてあるサンプルコードをそのまま打ち込んでみて、どのように動くかを体験します。そして、そのプログラムを少し変更してみてプログラムの動きがどのように変わるのかを1つ1つ理解していきましょう。
また、プログラムの書き方や意味を学んだら、何か自分でWebアプリを作ってみましょう。自作アプリ開発はとても楽しいものです。
WEBサーバー学習の進め方
WebサーバーはWindowsやMac上で動かすことができます。まずは、代表的なWebサーバーApache(アパッチ)を自分のPCにインストールしてWebサーバーを動かしてみましょう。
データベース学習の進め方
データベースは、Webサイトに表示する情報や会員情報を保存するのに使います。テーブルの仕組みや、データベースを操作するSQL文を理解しておきましょう。
Linux学習の進め方
ビジネスで利用するサーバーは、Red Hat Enterprise LinuxやCentOSというLinux系OSを使うことが多いです。Webサーバーを起動したり、ファイルを編集したりするには、コンソールと呼ばれる操作画面を使うので、慣れておきましょう。
安いクラウドサーバーを借りて、CentOSを学習するのが簡単です(WindowsやMac上にCentOSをインストールすることもできますが、上級者向けです)。
また、どれか1冊Linuxの本を買っておくと、体系的に学べます。
ネットワーク学習の進め方
ネットワークの学習は座学が中心になります。
TCP/IPの本を一冊買って勉強すればよいでしょう。
ただ、プログラミング学習とは違い、ネットワーク構築は実際に手を動かせて試せないことも多いです。
そこで、ドメインを取得してDNSにIPアドレスを設定するなど、自作Webアプリをインターネット上に公開するときに手を動かすのがいいでしょう。
プログラミングが楽しいならバックエンドエンジニアになれる
バックエンドエンジニアの仕事の内容から転職に必要なスキルや学習方法まで紹介しました。
新卒入社ならスキルレベルが低くても何とかなりますが、転職の場合はある程度の知識や経験を持っていることが前提になります。
ここまで読み進めた人の中には、「自分には難しいかも?」と感じた人もいるかもしれません。学習の道のりは確かに険しいです。でも大事なのは「難しいけど面白い」と思えるかどうか。
私はプログラミングが好きなので、休日も仕事とは全く関係のないサイトを作ったり、プログラムを作ったりしています。今の年齢になっても難しいと感じることもありますが、楽しいから20年以上もエンジニアを続けていられるんだと思います。
「面白い」「楽しい」と感じているのなら、バックエンドエンジニアになる素養はあるので、ぜひチャレンジしてみてください。