「バックエンドエンジニアはつらいのか?」と言えば、「プログラミングの難易度は高いから確かにつらい。ただ、年収も高いお仕事」となります。
5年間、Javaのエンジニアをやった筆者の経験からして、バックエンドエンジニアがつらいと感じる部分は3つあります。
バックエンドエンジニアとはどんなお仕事?
ソシャゲのガチャの抽選処理の中身を書いたり、ネットショップで注文するボタンを押したときの裏側の処理だったり、目に見えない部分を担当するのがバックエンド。
プログラミング言語でいうと、Javaなどのサーバー側の言語
バックエンドエンジニアはプログラミング言語でいうと、JavaやPHP、Python。サーバー側の言語です。
【学ぶべき言語について】社会人エンジニアはまず初めにどのプログラミング言語を学ぶべき?
サーバー側の目に見えない処理を実装するお仕事は必須
いくら画面の見た目をフロントエンドエンジニアが整えようとも。ユーザーには見えない裏側のプログラムが、正しく処理がされなければ、ソシャゲのガチャの確率はおかしくなるし。
ネットショップであれば、注文が完了することもありません。
つまり、サーバー側の目に見えない処理を実装するお仕事は必須ということになります。
バックエンドエンジニアはつらいのは確かだが、年収は高い
「そんなにつらいならメリットないじゃん」と思ったかもしれませんが、覚えることも多くて大変ですが、難しい分だけ年収も高くて安定します。
「年収が高いなら難しくてもがんばる!」となった人は、
- 【独学で学ぶ】、Javaなら「スッキリわかるJava入門」、Rubyなら「チェリー本」
- スクールに通うなら、テックアカデミーかCodeCampなら、学びたい言語をえらぶ
ようにしてくださいね。
バックエンドエンジニアのつらいところは全部で3つ
バックエンドエンジニアのつらいところは全部で3つあります。
- プログラムの中身を書く。データを登録したりするから責任が重い
- 開発言語のフレームワークの知識やDBなど、覚えることが多い
- 正確なコーディングが大変だし、テストもするので残業も増えがち
1.プログラムの中身を書く。データを登録したりするから責任が重い
一つ目は、プログラムの中身を書くので、単純に責任が重いです。
- 画面で入力した伝票を、登録ボタンを押してデータベースに登録
- 画面で入力された内容で、品物の在庫の個数をシステムで管理
- ATMを操作したときに、正しく口座の預金残高などを反映させる
上記のように、使う人には見えない裏側の処理が、バックエンドエンジニアのお仕事。
例えるなら、ガチャのプログラムの「中身」を書きます。
フロントエンドエンジニアが、「どんな画面にするか?」を決めてレイアウトを作ったり、バックエンドで処理した結果を表示するのに対して。
バックエンドエンジニアは、データを正しく処理するのがお仕事です。
データの処理をミスると、某メガバンクの、み●ほ銀行のように「システム障害」となります。
なので、バックエンドエンジニアは目に見えないながらも、ミスが許されないお仕事です。
2.開発言語のフレームワークの知識やDBなど、覚えることが多い
そして、バックエンドエンジニアは覚えることが多いです。
- JavaやPHP、Rubyなどは、書けて当たり前
- プログラミング言語でよく使われるフレームワークやサーバーの知識
- データベースに接続するのでSQL等も書けて当たり前
フロント側は、Html・CSS・JavaScriptがメインで、極論を言えば、メモ帳だけでも開発できます。
フロントエンドでも、BootStrapみたいなフレームワークを使ったり。
画面で入力したデータをバックエンド(サーバー)側に投げる知識は必要ですが、バックエンドの言語と比べれば、覚える量も少ないし難易度は低いです。
勘違いしないでほしいのが、フロント側でもハマる時はハマるし、つらい部分は当然あります。 ネットショップ(Shopify)の別プラットフォームへの移行案件などは難しいです。独自の「liquid拡張子」が出てきたらしく知人がハマってました。ただ「相対的に言えば」バックエンドの方がプログラミング的な難易度は高いかと。
バックエンドではSQL、フレームワーク(Javaなら、Spring boot)や、サーバー(Tomactとか)など、プログラミング以外にも覚えておくべき知識が多くあります。
3.正確なコーディングが大変だし、テストもするので残業も増えがち
そして、バックエンドはミスが許されないので、正確なコーディングが必要。
「なんとなく動くよね」だと、控えめに言って0点。バカ野郎です。
小数点の計算だったり、細かい条件分岐を「ミスなく、パーフェクトに作る」のが求められるので、完成と言えるレベルまで、動作させるのはなかなか大変です。
そして、作ったプログラムは、想定した通りの動作をするか?ミスがないか?
を確かめるべく、必ずテストします(さらに言えば、「そのテスト自体に問題がないか?」のレビューが入ったりする)。
※試験表を作って、テストを行う。
結構な量のテスト(テスト項目は100~1,000くらいは当たり前!)を素早くこなすので、開発が始まると残業が増えがちですね。
バックエンドでされた処理の結果が正しいかを、1つ1つチェックする必要があります。
バックエンドエンジニアは難しいけどその分だけ年収は高く安定
バックエンドエンジニアの言語が難しいならフロントの方がいいじゃん
と思った人もいるかもしれません。
確かに、バックエンドは難しいけど、その分だけ必要とされるし、年収は高く安定します。
※「フロントエンドが年収が低くて不要なのか?」といえば、そう言い切れないのだけど。画面レイアウトとか、お客様の目に見える部分の話をすることが多く、営業や企画寄り。ただ、HtmlとJavaScriptだけを書くコーダーの年収は低くなりがちです(【参考】フロントエンドエンジニアの年収は低い?単純なコーダーなら低いが結論)。
「バックエンドエンジニアは不要?大企業のシステム開発ではほぼ無縁の話」でも書いていますが、不要なんてことはないです。
フロントエンドよりバックエンドのほうが年収が高い
Acrovisonによると、バックエンドエンジニアの平均年収は465万円。
大手転職エージェント「マイナビAGENT」によると、バックエンドエンジニアに近いサーバーエンジニアの平均年収は465万円で、IT系エンジニアの中では平均的な年収と言えます。
「バックエンドエンジニアの年収についての詳細2つ!フロントエンジニアとの違い」より引用
フロントエンドエンジニアの平均年収は、385万円です。
同じく「マイナビAGENT」によると、フロントエンドエンジニアの平均年収は385万円です。
「バックエンドエンジニアの年収についての詳細2つ!フロントエンジニアとの違い」より引用
【関連記事】フロントエンドとバックエンドのエンジニアの違いは?
【関連記事】フロントエンドエンジニアのつらい点は3つ。最新技術とプレッシャーに追われる
フリーランス求人サイトを見てもバックエンドの単価は高い
バックエンドのフリーランスエンジニアの案件の単価は、高いです。
エージェントの大手のレバテックフリーランスのサイトを見てください。
たとえばJavaで検索してあげると、月80万円クラスの案件はわりとあります。
稼働が週2程度になる副業案件をもっているITプロパートナーズを見ても、かなりの高単価です。
【関連記事】バックエンドエンジニアの副業は4つ。実務経験あれば休日の案件を
フロントで稼ぐなら、大きな案件を取る。できないならバックエンド
5年間エンジニアをやってきた経験で言えば、下記のようなイメージです(あくまで感覚だけど)。
優秀なフロントエンド>優秀なバックエンド>ふつうのバックエンド>(ここの差は大きい)>ふつうのフロントエンド
フロントで簡単なコーディングをする仕事であれば、正直にいって、人は余っています。
大きな案件(大企業のWebページのデザインだったり、広告費の高いLP案件)をとれるフロントエンドのエンジニアは、かなりもらっていますが・・・。
ただ、バックエンドで収入を安定させる方が、2~3年、さらにその先の長い目で見たときに楽です。
うん。大変かもだけど、バックエンドを目指す!
となったら、さっそく本屋さんで、バックエンドで学びたい言語の参考書を買うなり。
※Javaなら「スッキリわかるJava入門」、Rubyなら「チェリー本」が有名。
スクールに通うなら、テックアカデミーかCodeCampなら、バックエンドの言語すべてのカリキュラムがあります。
最後に:バックエンドエンジニアがつらいかは、人による
これまで、バックエンドエンジニアのつらいところについて話してきました。
- プログラムの中身を書く。データを登録したりするから責任が重い
- 開発言語のフレームワークの知識やDBなど、覚えることが多い
- 正確なコーディングが大変だし、テストもするので残業も増えがち
プログラミングが難しい分だけ、半年~1年と勉強してJavaなりPythonなり、1つ書けるようになれさえすれば。
バックエンドエンジニアの年収は、フロントエンドより高くて安定します。
画面のエラーとにらめっこつつ、完成したらテスト。ユーザーがどんな入力をしようとも、障害が発生しないようにします。
バックエンドエンジニアのイメージは、職人さんなので、地道な作業が得意な人は、バックエンドエンジニアに向いている人と言えます。
「よし!バックエンドに向いてそうだ!」と思った人は、スクールに通うなり、独学なり。
バックエンドの言語を学んでみてくださいね。応援しています!
【次の記事】バックエンドエンジニアになるには?スクール・言語について解説
【独学かスクールか】社会人がプログラミングを学ぶなら独学とスクールのどっちを選ぶべき?
コメント