[common_content id=”1096″]
今回は、バックエンドエンジニアに向いている人の特徴について解説していきます。
まずはバックエンドエンジニアを含む、エンジニア職の種類を説明します。
バックエンドエンジニアとは?
バックエンドエンジニアはデータをやり取りする仕組みを作る人のことです。
バックエンドエンジニア以外にも、エンジニアの職種は大きく3つに分けることができます。
- フロントエンドエンジニア(Webデザイナーも含める)
- バックエンドエンジニア(サーバサイドエンジニア)
- インフラエンジニア
まずはこの3つの職種について解説していくので、バックエンドエンジニアについての理解を深めていただければと思います。
フロントエンドエンジニアは画面を作る
フロントエンドエンジニアは、今ブログ記事を見ている画面にデータを表示させたり、デザインを作ったりします。
厳密に言うと、ロゴを作ったりボタンの配置を決めるのはデザイナーの役割なのですが、ボタンを押したときにポップアップを出したり、目次をクリックすると見出しが開いたりするような、動きを作るのがフロントエンドエンジニアの役割です。
- Webデザイナー: 画面の配置やロゴ、写真などを作成する人
- フロントエンドエンジニア: 画面にデータを表示したり、クリック時の動きを付けたりする人
バックエンドエンジニアはデータをやり取りする仕組みを作る人
バックエンドエンジニアは、サーバサイドエンジニアと呼ばれることもあって、どちらで呼んでも同じ意味で通じます。今回はバックエンドエンジニアで統一しますね。
バックエンドエンジニアは、画面から送られてきたデータをデータベースに保存したり、加工して画面に戻すような処理を作ります。
ユーザが会員登録をするときのデータの流れを例に出します。
- 画面からユーザ名をパスワードを入力して「登録」ボタンを押した(フロントエンドが作る)
- ユーザ名とパスワードをサーバが受け取って、データベースに保存する(ここ、バックエンド!)
- データベースから会員情報を画面に返す(ここもバックエンド)
- 会員情報を画面に表示する(フロントエンド)
こんな感じになります。
フロントエンドとデータベースの橋渡し的存在です。
もしくは、保存するのではなく、加工だけして返すこともあります。
1+1という入力があって、「計算」を押すと、バックエンドが「2」を返すみたいなことです。
インフラエンジニアは箱を作る
バックエンドエンジニアはサーバで処理を行って、データベースに保存をしますが、このサーバやデータベースは誰が作るのでしょうか。
これらを作るのがインフラエンジニアの役割です。
インフラエンジニアはコードを書くのではなく、フロントエンドやバックエンドが気持ちよくコードを書くための箱を用意してあげます。
他にも以下のようなことも行います。
- サーバ・データベース監視(使いすぎていたら箱を大きくするなど)
- デプロイの仕組みを構築
デプロイというのは、パソコンで書いたコードをサーバに反映させるための仕事です。
たまにWebサービスでメンテナンスを行っているのを見かけると思いますが、あれはデプロイ作業を行っています。
このデプロイ作業をよりスムーズにしてあげるのもインフラエンジニアの役割ですが、ここらへんを担当する人は、SREなんて呼ばれたりします。
最近SREの需要がかなり高まっていて、シリコンバレーでも高給の職として人気です。
バックエンドエンジニアに向いている人の特徴
バックエンドエンジニアに向いているのは以下のような人です。
- 論理的に考えることが得意
- 曖昧なことが嫌い
- インターネットやコンピュータの仕組みに興味がある
1つずつ解説します。
論理的に考えることが得意
数学が得意であったり、物事をじっくり考えることができる人に向いています。
バックエンドは複雑な処理を書くこともあるので、複雑なことを1つずつ紐解いていくような作業が好きな人、数学の難問をじっくり解ける人がいいですね。
プロダクト設計の段階においても、コードに無駄な処理を書かないとか、適切なデータベースの保存先を決めるなど、複雑なことを紐解く作業が多いです。
数字や論理的なことを扱うので、デザインの知識とか、記憶力とかは重視されません。
曖昧なことが嫌い
サーバでプログラムを動かすのは、いわば計算をしているのと同じ仕組みなので、答えは必ず1つになります。
さっきはAだったのに2回目はBになった、ということはまずありえません。
仮にそういう違いが出てしまったら、どこかに原因があるはずなので、論理的に考えていって探し出さないといけないですね。
国語の説明文のような曖昧に点数付けされるのが嫌いで、数学のように答えが1つに決まることが好きな人に向いています。
インターネットやコンピュータの仕組みに興味がある
バックエンドは担当範囲が幅広く、ときにはフロントエンドやインフラの領域も跨ぐことがあります。
なので、プログラミングの知識だけでは不十分で、インターネットやコンピュータそのものの知識が必要になってきます。
稼ぐためにとりあえずプログラミングを習得しただけの人がバックエンドエンジニアとして長く続けていくのは難しいでしょう。
気になったことは何でも調べるくらいの好奇心や興味がある人に向いています。
バックエンドエンジニアになるメリット
バックエンドエンジニアになるメリットは以下の通り。
- エンジニアの中でも需要が高い
- 参入障壁が高く、ライバルが少ない
- 給料・単価が高い
1つずつ解説します。
エンジニアの中でも需要が高い
扱う領域が幅広いこともあって、需要が高い職種です。
エンジニア採用の募集を見てみると、どのサイトでもバックエンドエンジニアが一番多いはずです。
ベンチャー企業の初期の頃は、人がいないのでバックエンドエンジニアがフロントエンドもインフラもこなすケースが結構あります。
フロントエンドだけ、インフラだけをこなせる人がバックエンドをこなすのは難易度が高いですが、バックエンドエンジニアが1人いれば、フロントエンドもインフラも何とかなってしまうからです。
つまり、ベンチャー企業でエンジニアとして働きたいのであれば、バックエンドエンジニアになることがほぼ必須かなというくらいです。
参入障壁が高く、ライバルが少ない
バックエンドエンジニアになるためには数学的素養が必要なので、参入障壁が高くなります。
中学生、高校生の頃、数学が得意な人はクラスでどのくらいいたでしょうか。
半分もいなかったと思いますし、数学だけ赤点とかの人もいたはずです。
日本の大学では文系に行く人の方が圧倒的に多いことからも、数学的素養を持っている人が少ないことが分かります。
バックエンドエンジニアになるためには、数学的素養が必須なので、なれる人が少なく、ライバルが少ないのです。
給料・単価が高い
需要が一番高いのに参入障壁が高いということは、少ない人材を企業が取り合っているという状態です。
エンジニア不足と呼ばれるのも、厳密にはバックエンドエンジニア不足なのかもしれません。
こういった状況から分かるように、バックエンドエンジニアの給料や単価は高くなる傾向にあります。
フロントエンドやインフラエンジニアが月単価60万円だとしたら、バックエンドエンジニアは月単価70万〜80万くらいの違いがあります。
需要が高いので募集案件も多く、仕事に困らないというのもバックエンドエンジニアの魅力です。
バックエンドエンジニアに必要なスキル
バックエンドエンジニアに向いている人が、じゃあ実際にどんなスキルを身につければいいのかを解説します。
プログラミングスキル
まずはプログラミングスキルが必須です。
プログラミング言語にもフロントエンド言語とバックエンド言語があります。
当然バックエンド言語、と思うかもしれませんが、まずはフロントエンド言語から学びましょう。
フロントエンド言語は基礎言語であり、簡単ですし、バックエンドでも必ず使うことになるからです。
◯ 学んでおくべきフロントエンド言語
- HTML
- CSS
- Javascript
上記のフロントエンド言語を学んだら、次にバックエンド言語を学んでいきます。
バックエンド言語は1つだけでOKです。
◯ おすすめのバックエンド言語
- PHP
- Ruby
- Go
Goはちょっと難しいので初心者にはおすすめしませんが、流行りの言語なので、慣れてきたら習得してみましょう。
サーバやデータベースの知識
サーバやデータベースの知識も求められます。
ぼくはプログラミングは普通に好きなんですが、サーバとかデータベースのようなインフラ寄りの技術はあまり好きではありません。
どうしても分からなければインフラエンジニアに聞いて解決することもできますが、バックエンドエンジニアでもある程度は知っておいたほうがいいです。
コードを書く上で、インフラの情報はかなり重要になってくるからです。
要件をまとめる設計力
設計はマネジメントの人が行って、バックエンドエンジニアはコードを書くだけという体制もありますが、その場合でもバックエンドエンジニア自身が設計力を持っておく必要があります。
実際にコードを書いてみないとわからないことがたくさんあり、バックエンドエンジニアから、マネジメントに提案していく形もよくあるからです。
本来なら、設計した本人がコードも書くのが一番なのですが、受託開発やSIerなど、設計を自社で行って、開発は外注するという体制もあるので、難しいところです。
バックエンドエンジニアになるための具体的なステップ
バックエンドエンジニアになるための具体的なステップを紹介します。
独学でプログラミングを学ぶ
まずは独学でプログラミングを学んでみましょう。
論理的な考え方ができるのか、じっくり考えることが好きなのかなど、バックエンドエンジニアに向いているかどうかを判断してください。
向いているなと思ったら次のステップに進みます。
向いてないなと感じたとしても次のステップに進んでチャレンジしてみてもいいですし、フロントエンドを学んでみたり、デザインを学んでみたりして、自分にあった職種を探すのもいいですね。
プログラミングスクールでサーバやデータベース周りまで学ぶ
独学で学ぶと結構時間がかかりますし、サーバやデータベースは独学で学ぶには難易度が高いので、スクールを使ったほうがいいです。
僕は独学でサーバやデータベースも学んだのですが、構築に失敗して、AWSから30万円の請求が来たことがあります。笑
インフラは多少お金をかけながらでないと学べないこともあるので、正しい知識を教えてくれるスクールを使うのが効率的です。
ポートフォリオを作って自分でサービス設計をしてみる
転職の際のアピールに必要になるのがポートフォリオです。
ポートフォリオは自分で考えたオリジナルサービスを作ってください。
何を作るか、どの技術を使ってどうやってプログラムを書いていくかを考えることで、設計力が身に付きます。
おそらくスクールだと、「これをこの手順で作ってください」と指示されると思いますが、ポートフォリオに関しては全くゼロから作っていきます。
設計に失敗すると、最初から作り直しになることもあったりして、意外と大変なのですが、ポートフォリオを作り切ると、現場で「これ作って」と言われたときに曖昧な部分を自分で設計できるようになります。
ひたすら学習と転職活動の繰り返し
ポートフォリオを作ったら転職活動です。
最初は上手くいかないと思うので、そしたらまた学習して、ポートフォリオを手直ししたり、新たに作ったりして、また転職活動の繰り返しです。
そうやって試行錯誤と修正を繰り返していくことで、転職成功に近づきます。
まとめ: バックエンドエンジニアに向いている人は絶対になるべき!
バックエンドエンジニアに向いている人は数学的素養を持っていることが必須条件です。
なので、もし向いているなと思ったら、絶対になるべきです。
仕事を選べるし、待遇は良いし、これほど恵まれた職種はありません。
ただ、向いていない人が無理やりバックエンドエンジニアなってしまうと、仕事が思うようにできず苦労するかもしれません。
フロントエンドエンジニアやWebデザイナーも充分な待遇ですし、こちらも恵まれていますから、バックエンドエンジニアに向いていないからといって落ち込む必要はありません。
少なくともエンジニアなれば、うだつの上がらない会社員から抜け出せる確率は高くなります。
バックエンドエンジニアになろうか迷っている人の参考になれば幸いです。
それでは!