みなさんがこれからエンジニアを目指す上で、どのようなエンジニアになっていくのか。
目指すべき方向を把握し目標設定をすることはとても重要です。
今回は「バックエンドエンジニア」について、
そんな疑問にお答えします。
※ 私が実際に経験した「未経験からバックエンドエンジニアになるまで」を最後に書いています。
記事のもくじ
バックエンドエンジニアとは
まずバックエンドエンジニアとは、みなさまにも馴染みの深いログイン機能やショッピング機能、チケット予約機能などの、「ユーザーの目に触れないシステム部分」を作っていくエンジニアです。
例えば、あなたが銀行ATMのお金をおろしに行ったとしましょう。
- パスワードを打ち込み認証完了すればお金を引き落とすことができる
- お金を引き落とすと口座からはしっかりその分のお金が出てくる
- パスワードは簡単にばれないように暗号化される
このように、普段自分たちの見えない部分でいろいろな処理が行われています。
このようなシステムを開発するのがバックエンドエンジニアになります。
その逆に、目に見える部分の開発を専門とするエンジニアを「フロントエンドエンジニア」といいます。
今あなたが見ているこのページはフロントエンドエンジニアが開発しているということですね。
フロントエンドエンジニアについては以下の記事を参考にしてみてください。
また「バックエンドエンジニア」は別名「サーバーサイドエンジニア」とも呼ばれますが、厳密にはちがいます。
バックエンドエンジニアは主にWEBに強く、サーバーサイドエンジニアは主にソフトウェアのサーバー環境を整えているエンジニアとなります。
以下に特徴をまとめます。
- WEBサイトやWEBサービスの開発に特化している
- WEB領域ではサーバーの構築も担うことができる
- フロントエンドの知識も持ち合わせているエンジニアが多い
- 従来のソフトウェア開発・運用、サーバー環境を整えているエンジニア
(例えば身近なソフトウェアでいうとMicrosoft OfficeやAdobe Illustrator / Photoshopなどが挙げられますね。)
バックエンドエンジニアの強み
では、バックエンドエンジニアの強みや、目指すメリットをみていきましょう。
強み1:参入障壁が高い
バックエンドエンジニアの強みの一つは、フロントエンドエンジニアに比べライバルが少ないということです。
フロントエンジニアは目で見える簡単そうというイメージから目指す方が多いですし、レンタルサーバーやワードプレスなどのCMSをはじめ、パッケージ化されたミドルウェアが充実しています。
一方で、バックエンド言語はフロントエンド言語よりも複雑で、参入障壁も高めです。
そのため、フロントエンドエンジニアよりもライバルが少ないといえるでしょう。
強み2:未経験でもあつかいやすい
バックエンドのプログラミング言語の中でもPHP、Rubyは初心者向けの言語として有名です。
世の中的にも仕事が豊富なので、エンジニアを目指す方はこの2つのどちらかからスタートすることがオススメです。
ちなみに私もRubyからプログラミングを始めました。
Rubyは日本で開発された言語で、日本人にとって扱いやすかったりと未経験の方にとっても学びやすい言語の一つですね。
下に詳細を書いています。
強み3:将来性がある
日々生み出されているWEBサービスやアプリケーションでは、バグが発生したり、問題が起こったりします。
当然そのサービスの改修や保守といった作業はずっと続くことになり、バックエンドエンジニアは継続的に仕事を獲得することができるのです。
バックエンドエンジニアに必要なスキル
バックエンドの構築には、主に以下のプログラミング言語やスキルが必要になってきます。
これらを学ぶことで、みなさまにも馴染みの深いログイン機能やショッピング機能、チケット予約機能などを実装することが可能となります。
- PHP
- Java
- Python
- Ruby
- MySQL
- フレームワークスキル
未経験にもオススメな「PHP」
他のプログラミング言語よりも比較的容易に扱うことができることがこの言語の特徴です。
そのため、初めてプログラミングを学ぶ方にとっておすすめの言語になります。
またPHPは、日本では多くの開発現場で使われている言語であるため、個人で案件を受託することもしやすい言語です。
世界的に使われている「Java」
Javaは世界でもっとも使用されているプログラミング言語の一つで、OSに依存しないこと、汎用性が高いことから、世界中のプログラマーから愛されています。
しかし、2018年5月発表された「PopularitY of Programming Language Index」という世界で需要のある言語ランキングでは、1位から2位に転落…。
また、専門性が高いので初心者にはおすすめしない言語です。
プログラミング未経験の方はWeb系の言語から始めましょう。
いまだに21.2%という世界的なシェアを誇っていますが、移り変わりの激しいITトレンドですから、今後も新たなシェアの変動が起きるでしょう。
AI(人工知能)開発を得意とする「Python」
Pythonは今一番アツい言語といっても過言ではありません。
先ほどの世界のプログラミング言語ランキングでJavaを抜いて世界一位のシェアとなったのがPythonです。
実はPython自体は最近になってできた言語というわけではありません。
ではなぜ今になってこの言語が人気になったのでしょうか。
それは近年、AI(人工知能)が急速な発達をとげているためです。
そんなAI(人工知能)開発に一番強いのが、このPythonなのです。
またPythonはAI(人工知能)開発やシステム開発だけではなく、WEBアプリケーションの開発にも優れており、非常に汎用性が高いプログラミング言語と言われています。
日本産の言語「Ruby」
Rubyは日本人が開発したプログラミング言語です。
※ちなみに開発者であるまつもとゆきひろ氏は私と同じ島根県ご出身です^^
そのため日本語での学習リソースが豊富で、私たち日本人にも学びやすい言語となっています。
また、
- 汎用性・自由度が高い
- 短いコードで記述できる
- フレームワーク「Ruby on Rails」を用いて容易に開発ができる
という理由からTwitterやクックパッド、食べログなどといった有名なWEBサービスにも使われています。
データベース管理システム「MySQL」
このMySQLは、バックエンドを構築する上で非常に重要な役割を果たしているシステムです。
例えば、ECサイトを開発し、ユーザーのメールアドレスやパスワード情報、商品の写真や料金などの情報は全て、このデータベース内に格納されるのです。
そのため、データベースを構築する技術はバックエンドエンジニアにとって必須といえます。
フレームワークスキル
フレームワークとは開発を効率よく進めていくための機能をまとめたものです。
現在は多くの開発会社でフレームワークを使った開発を行っているため、このスキルも必要なものとなってきます。
PHPはLaravel、PythonはFlask、RubyはRuby on Railsなど言語によって対応しているフレームワークがあります。
バックエンドエンジニアの年収
では、気になる年収に入っていきましょう。
バックエンドエンジニアは職種上WEBサービスエンジニア職に分類されます。
WEBサービスエンジニアの平均年収は434万円と、同年代の平均よりは少し高い水準となっています。
しかし、扱える言語やスキルのレベルによって年収は大きく異なるため平均年収という数字はあまりあてになりません。
参考までに近年人気の機械学習エンジニアとなれば年収1,000万円を優に超えることも珍しくありません。
バックエンドエンジニアの仕事内容
冒頭にも書いたとおり、バックエンドエンジニアとは「ユーザーの目に触れないシステム部分」を構築するエンジニアだと紹介しました。
そのため、クライアントから「どういったサービスを作りたいのか?」をヒアリングし、最適なデバイスやOSを選定、必要に応じてAWSなどのインフラ環境を整え、データベースに関するシステムの要件定義、設計、開発までの業務を行います。
また、サーバーサイドのセキュリティを守ることも重要な仕事となります。
バックエンドエンジニアの将来性
まず、大前提としてIT業界は世界でどの業界よりも伸びています。
例として世界企業の時価総額のTOP10のうち8社がIT企業です。( 2019年4月現在 )
つまり世の中の会社はITを使って仕事をし、経済をつくって、雇用を生み出しているわけですね。
そんな仕事が増え続けているIT業界で、そもそもエンジニアという仕事に将来性がないわけがないですよね。
その中でも多くのアプリやWEBサービスが開発され続けている現在のIT社会では、バックエンドエンジニアの需要が無くなるといった心配は必要ないでしょう。
また、バックエンドエンジニアの使用する言語はフロントエンドエンジニアが使用する言語に対して習得が難しいため、競争相手もフロントエンドエンジニアに比べ少ないです。
そのため、習得してしまえば長きにわたって仕事に困ることはないです。
しかし、変化の激しい業界であるためバックエンドエンジニアの第一線で働くのであれば勉強をし続ける必要があります。
未経験からバックエンドエンジニアになる
ここからは未経験からのバックエンドエンジニアのなり方をみていきましょう。
まずそもそも未経験からバックエンドエンジニアになることは可能なのでしょうか?
未経験からでもバックエンドエンジニアとして就職できるのか
答えは、できます。
しかし、未経験からのエンジニア就職はデメリットが多くオススメはしません。
なぜなら、「未経験者募集」と求人のある企業はSES・SIerとよばれる下請け会社であることがほとんどだからです。
日本のIT企業の7割は下請けの会社であり、「自社の上司と現場の上司がちがうため、正しく評価されない」、「求められるスキルがちがう現場を転々し、前の現場で身に付けたスキルを次に活かせない」などの問題がよくおこっていました。
さらに、「専門性がもてず市場価値をたかめられない」、「下請けのため、給料が同業種とくらべて低い」といったケースが多く見られます。
上記の理由に加え、モチベーションの維持が難しいうえに、顧客からの提案が急なことも多く、残業が増えていき、自分の勉強につかえる時間が減るという負のループにおちいってしまうケースもあります。
これらが理由で戦略のない、未経験からのエンジニア就職はデメリットが多くオススメはしません。
【体験談あり】未経験からでも優良なIT会社に就職できる具体的な方法
では、未経験からでも優良なIT会社に就職できる具体的な方法を見ていきましょう。
プログラミング学習には大きく分けて「独学をする」と「メンターに教わる」方法がありますが、未経験の方にはスクールなどで「メンターに教わる」を圧倒的におすすめします。
プログラミング学習は挫折率が90%以上というデータもあるくらい、独学で時間やコストを無駄にしてしまうというケースも非常に多いです。
詳しくはこちらの記事をご覧ください。
また、適切な順番で学習を進めていくことはプログラミング学習において非常に重要なので、独学に挑戦される方はこのことを頭に入れて学習を進めていってください。
私は独学で未経験から、IT企業に就職、転職をしましたが、2年ほど遠回りをしました……。
なぜなら、テキトーな意思でエンジニアになってしまったからです。
- 大学時代にてC言語を勉強(18〜22歳)
- 独学でRubyを習得し、アルバイト(22歳)
- 新卒でSESに入社しJavaを習得(23〜24歳)
- Kredoにジョイン(25歳)
現在の自分の理想のキャリアに近くまで、6年もかかってしまいました。
しっかりメンターが入れば、もっと近道をすることができたかもしれません。
あまりオススメはしませんが私が独学で意識したこと、実践したことを紹介しますね。
まず、バックエンドエンジニアに限ったことではないですが、プログラミング学習において重要なことは以下です。
- 目標設定をすること
- 常に勉強し続けること
- アウトプットし続けること
詳細をみていきましょう。
目標設定をすること
ただ「エンジニアになりたい!」「プログラミングを学びたい!」ではなく、
「こういったサービスを作りたい!」「この企業に入りたい!」という具体的な目標に落とし込むとよいでしょう。
それにより学習のモチベーションを維持することができます。
さらに具体的な目標を達成するためにやるべきことを細分化していきましょう。
例えば「この企業に入りたい!」が目標であれば、「企業に見合った人材になるためのスキルを身に付ける」「企業にアピールできるポートフォリオ(成果物)をつくる」というタスクを達成すれば良いでしょう。
未経験者がWeb系や自社サービスの開発をしている優良IT企業に就職するのは難しいです。
しかし、しっかりと目標をもった上でスクールに通ったり、独学することで適切にポートフォリオ(卒業制作)を作成し、技術力をアピールできれば、未経験でもチャンスは十分にあります。
また、具体的な目標を設定するだけではなく、目標となる人を設定することも良いでしょう。
ポイントは現在の自分より少しレベルの高い人を目標として設定することです。
最終的に「著名なあのプログラマーを超える!」のような目標を設定しても良いですが、レベル差が違いすぎると、モチベーションの維持がむずかしくなるので注意です。
また、そのような人の具体的な探し方ですが、簡単な方法を2つ紹介します。
SNSで見つける
TwitterなどのSNSで「#駈け出しエンジニア」といったワードで検索をすると、自分と同等・またはそれ以上の学習者が見つかるのでフォローして積極的に交流してみましょう。
彼らの情報を見る、共有し合うことで、自分の知らない有益な情報を得られたり、彼らの日々の学習法などがわかるので成長にもつながります。
技術系のイベントに参加する
技術系の同人書籍を販売している「技術書典」やオフラインで集まり、半日〜1日かけてプログラミングで成果物を作成し、共有し合う「もくもく会」といったイベントに積極的に参加しましょう。
イベントに参加するメリットは「同じ目的をもった人の努力を直接みることでモチベーションが上がる」という点です。
未経験で何も知らない中、技術系のイベントに参加するのは気がひけると思いますが、初級技術者向けのイベントもたくさんありますし、未経験だからという理由でネガティブになる必要はまったくありません。
常に勉強し続けること
IT業界は移り変わりの早い業界です。
最初にも書きましたが、世界シェアNo.1であったJavaが、Pythonが注目をあびてわずか5年ほどで追い抜かれてしまうということがおきました。
つまり、あなたの用いている言語がいつ使われなくなるかは予測もつきません。
そうならないためにも、常にトレンドを追い続ける必要があります。
特に、AI(人工知能)やビックデータ、IoTの需要は今後も増していくため、それらのスキルを身にける価値は十分にあります。
また、あなたが本当に活躍し続けられるエンジニアを目指したいのであれば、英語を学習することを強くオススメします。
なぜなら、プログラミングやITの最新の情報や論文は英語で発信されており、英語で書かれた情報が圧倒的に多く最新だからです。
アウトプットし続けること
そして、勉強(インプット)するだけでは意味がありません。
プログラミングは実際に使ってみてアウトプットしたり、チーム開発を経験しない限りは本当のスキル習得とはなりません。
スキル習得という点でもそうですが、仕事となるとプログラミングの仕事が一人で完結することはほとんどなく、顧客がいて、チームで開発することがほとんどですからね。
以上です。
上記を意識して私が実際にしたことは、
- Progateで自分が学びたい言語を学習
- RailsチュートリアルでRuby on Railsを題材にフレームワークについて学習
- 流行りのWebサイト、サービスを見よう見まねでつくってみる
- GitHubアカウントを作成、日々ソースコードをpush
- 情報発信用のTwitterアカウントを作成、日々ツイート、情報共有
- はてなブログアカウントを作成、投稿
- Qiitaアカウントを作成、投稿
の繰り返しになります。
私はこれで未経験から優良IT企業に1年かけて就職しました。
しかし、なんどもいいますが、独学は簡単ではありません。
世の中に学習教材がこれだけ溢れているのにスキル習得できている人が少ないのをみてもわかる通りです。
もちろん独学で頑張ってみることも素敵だとは思いますが、スクールなどで「メンターから直に教わる」を圧倒的にオススメします。
Kredoオンラインキャンプでバックエンドエンジニアを目指そう!
Kredoオンラインキャンプには、未経験からバックエンドエンジニアを目指せるWEBデベロップコースがあります。
Photoshop、HTML・CSS、PHP / MySQL、Bootstrap、Git、オブジェクト指向が学べます。
また、Kredoは英語でプログラミングを教えているため、同時に英語のスキルも取得できます。
上にも書いたように、高いレベルのエンジニアを目指すのであれば英語とプログラミングを同時に学ぶことは学習効果が高く、エンジニアの将来性を考えた上でも非常に重要です。
興味をもっていただけたら、ぜひお気軽にお問合せください。