支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


はじめに

IT系の職種は定義が明確になっていなかったり、複数の兼任していたりと、職種名を聞いただけであるとその仕事内容がイメージできないものが少なくありません。実際、求人内容にはSEやプログラマーという漠然とした職種だけで募集していて、就職後に自分の担当している業務を振り返ってみた時に気づけば自分はバックエンドエンジニアの仕事をしていたの認識することもあるでしょう。そのため今回の記事は、バックエンドエンジニアになりたいという明確な意思を持っている方はもちろん、今後のキャリアアップや転職活動に向けて自分の職種や能力、経験を再認識してしっかりと面接等の際に説明できるようにするための参考資料となるような内容を紹介していきます。

バックエンドエンジニアとフロントエンジニアの関係性

バックエンドエンジニアは、フロントエンジニアの仕事内容と比較するとわかりやすいので、この記事ではWeb上での会員登録のシステムを例に説明していきます。良くある会員登録のシステムに、「新規登録はこちら」「会員登録はこちら」等のリンクをクリックし、必要事項を入力して完了させると仮登録メール等が認証のために送信され、そのリンクをクリックすることで本登録が完了し、登録した内容でログインできるようになるというものがあります。

この一連の流れに関してそれぞれの担当範囲を分けると、会員登録を行う画面に入って、フォームに必要事項を入力する画面遷移や画面デザインの部分まではフロントエンジニアの担当範囲となります。その後会員登録の要求があった際に認証用メールを送信する、本登録後、ログイン情報をシステム内に保存して会員のログインを可能にするといった部分がバックエンドエンジニアの担当となります。

上記例からわかるように、フロントエンジニアの担当範囲はユーザーの目に直接触れる部分がほとんどで、HTMLやCSS、JavaScript等の言語を使って構築されます。Webページのデザインに関する部分も含まれるため、別途デザイナーがいる場合はWebデザイナーと連携して作業を進めていきますが、特にいない場合はデザインも兼任することとなります。なお検索エンジンでの表示順位を有利にするSEO対策、ユーザビリティを追求するUI/UX設計も近年のフロントエンジニアの重要な仕事の一つのなります。デザインの部分も担当する際はIllustratorやPhotoshopといったデザイン系のソフトウェアの知識も必要となります。

対するバックエンドエンジニアの担当範囲はサーバー側での処理が大部分となり、Webサイトの利用者が通常目にすることのない内部の仕組みを構築していきます。会員登録システムにおいては、ユーザーがフォームから入力した内容を「完了」等のボタンを押した際にサーバー側で受け取って保持し、それをきっかけに認証用のメールを送信する、認証されたらデータベースに会員情報を保存するという処理が考えられますが、この部分を構築していきます。

そのため各種プログラミング言語の知識はもちろん、データベースやミドルウェア、そしてサーバーの構築や運用・保守に関する知識が必要となります。なおバックエンドエンジニアが良く使う言語としては、PHP、Java、JavaScript、Ruby等があります。またフロントエンジニアとの連携も重要となってくるため、フロントエンジニアの担当範囲についても多少把握しておく必要があります。

このように見るとバックエンドエンジニアの仕事内容は、サーバーエンジニアやインフラエンジニアの重なる点が多いことに気付いた方もいることでしょう。実際バックエンドエンジニアとサーバーエンジニアは同義に扱われることもあり、特にWebサービスの開発におけるサーバーサイドエンジニアのことをバックエンドエンジニアと呼ぶ傾向にあります。なおインフラエンジニアはサーバーサイド含めたインフラ系エンジニアの総称です。

バックエンドエンジニアの担当範囲で利用されるプログラミング言語

改めてバックエンドエンジニアが良く利用する言語について紹介しますが、各言語のフレームワークについての知識も必要となることにご注意ください。フレームワークとは開発を効率的に進められるように様々な機能の型があらかじめ用意されているもののことです。

PHPは1990年代から長い間多くのシステムで利用されているWebサービスに非常に相性の良い言語の一つで、ログイン機能や検索機能、お問い合わせフォーム作成、バッジ処理等が可能です。Javaも同じく歴史の長いオブジェクト指向型言語で、ゲームや組み込み系システム、大規模システムで利用される言語ですが、Webサービスで利用される場面も多いです。JavaScriptはフロントエンジニアにも利用されるブラウザ側で動作する言語として有名ですが、近年はサーバーサイドで動く仕組みも出てきており、バックエンドエンジニア側での知識も必要となってきています。最後のRubyですが、この言語も登場はJava、PHP、JavaScriptとさほど変わりません。しかし幅広く注目されるようになったのは2000年代にリリースされたRuby on Railsを含めたフレームワークが充実してからと言えます。なおRubyはアプリーケーション、ショッピングサイト、SNSサイト等で利用される傾向にありますが、シンプルな構造である、フレームワークが充実している等の特徴から開発が高速に行えるため、スタートアップ、ベンチャー企業で多く利用されています。

キャリアアップとして考えられる選択肢について

バックエンドエンジニアのキャリアアップ先の一つとして、PL(プロジェクトリーダー)、PM(プロジェクトマネージャー)があります。これらは開発プロジェクトにおいて管理していく立場で、基本的にPMはプロジェクト全体の管理、PLは各チームの管理を行うことになります。特にPMとなるとプロジェクトの進捗を管理しながら書類を作成して上層部への報告する、クライアントと要件定義、基本設計といった上流工程を行う等の業務も発生するので広い視野が必要され多忙になりがちですが、その分給料も高くなります。

二つ目はフルスタックエンジニアです。フルスタックエンジニアは、エンジニアとしてのあらゆる業務を網羅できる職種です。バックエンドエンジニアの経験を積むと近い位置にいるフロントエンジニアやインフラ関連のスキルは自然と身についてくるため、それらのより深い知識を身につけ、SE等が担当する設計の部分も学ぶとキャリアアップできる可能性が高くなります。なおバックエンドエンジニアも同様ではありますが、フルスタックエンジニアを目指すのであればクラウドサービスに関する知識は持っておいた方が良いでしょう。近年はクラウドサービスを使ってシステムを構築していく企業も多く見受けられます。クラウドサービスにおいては開発環境やインフラの構築が不要となることがあるものの、クラウドの仕組みを理解していないとそれらがままならない状況となるため、オンプレミスサーバー、クラウドサーバー両方でシステム運用ができる知識を習得しておきましょう。

その他のキャリアアップとしてはITサービスを使ってクライアントの課題に見合ったサービスを提案し、実際に導入を進めていくITコンサルタントという職種や、システム上のセキュリティーに特化した設計、構築、運用保守を担当するセキュリティーエンジニア、プロジェクトにおいて欠かせないSE等が考えられます。

まとめ

一般的にバックエンドエンジニアと位置づけられるのは、Webシステムの裏側の処理システムを構築するエンジニアやプログラマーであることがわかっていただけたことでしょう。今回詳細は省きましたが、バックエンドエンジニアはサーバーエンジニアやシステムエンジニア(SE)にも関連が深いため、プログラミング言語、データベース、サーバーOSと幅広い資格に関する知識を得られます。IT業界において資格は必須ではないですが、自分の経験や知識の裏づけとなって転職活動を有利に進められる場合もあります。今回の記事でIT業界での自身のポジションが把握できたら次は資格取得を検討して、転職を万全の態勢で進めてみてはいかがでしょうか。