バックエンドエンジニアとインフラエンジニアの違いをひとことで言えば、「インフラエンジニアのほうが、プログラムを書く機会が少ない」が結論。迷ったら選ぶべきは、バックエンドエンジニアです。
※最近はAzureやAWSが流行っているのでインフラエンジニアも大いにあり。ただ、プログラミングしたいならバックエンドです。
バックエンドエンジニアとは、目に見えない裏側の処理(=実際にプログラムを書く)を担当。
インフラエンジニアは、バックエンドの仲間で、裏方の作業。完成したシステムを動かすために必要な、環境づくりを担当します。
例えば、サーバーを構築したり、ネットワークの設定をしたり、データベースの環境を作ったり。
インフラエンジニアは、プログラムを書く機会は少なく、物理面(マシンの性能などの環境まわりの知識)や、いわゆる「クラウド」(AzureやAWS)に特化します。
ネットワークやサーバーの知識を覚えることが多くても苦でないなら、インフラエンジニア。
プログラムを書きたいなら、バックエンドエンジニア一択です。
スクールに通うかを検討している人は、バックエンド・インフラが学べる下記の3つのスクールがおすすめです。
バックエンドエンジニアとインフラエンジニアの違いは?
バックエンドエンジニアとインフラエンジニアの違いは何なの?
- 【前提】インフラエンジニアと、バックエンドエンジニアはどちらも裏方
- バックエンドの仕事の一部がインフラエンジニア(バックエンドは開発エンジニアの花形)
- バックエンドエンジニアは、システム開発の環境構築、プログラミングをすべてやる
- インフラエンジニアは環境構築(DB・ネットワーク・サーバー構築)に特化
バックエンドエンジニアのイメージ
お客様からしたら、フロントエンドエンジニアのほうが目立つが、システム開発においては、ガッツリ設計~コーディング・テストを行う開発職の花形。
インフラエンジニアのイメージ
システム開発の「環境(インフラ)づくり」がメイン。プログラミングをしないわけではないが、バックエンドと比べると、少ない。
「クラウド」(AzureやAWS)が最近のトレンドなので、インフラを極めるとバックエンドとはベクトルが大きくかわることになります。
簡単にまとめると・・・
ざっくりとまとめると
「インフラエンジニアは、開発環境とサーバーの構築に特化するので、プログラムをあまり書かない。バックエンドエンジニアは、プログラミングも含めて開発をすべてやる」
が、違いです。
バックエンドエンジニアとインフラエンジニアはどちらを選ぶべき?
バックエンドエンジニアとインフラエンジニアはどちらを選んだほうがいいの?
迷ったら、バックエンド。理由は2つ
迷ったら、バックエンドエンジニアを選んでください。理由は2つあります。
- インフラだけにこだわるのは、相当な専門知識やトレンド技術がないと難しいため
- バックエンドエンジニアをやる過程でインフラを覚えたほうが効率的なため
1.インフラだけにこだわるのは、相当な専門知識やトレンド技術がないと難しい
まずは、インフラだけにこだわるのは相当な専門知識がないと難しいです(ネットワークやサーバーで覚えるべき知識が多い)。
なんで、そう言い切れるの?
筆者がバックエンドエンジニアとして5年間仕事をした経験則ではありますが、インフラ「だけ」でIT業界で仕事してる人はほとんどいないからです。
- はじめは、インフラエンジニアだったけど、途中でバックエンドもやる人(=プログラムをガッツリ書く)
- インフラ1本で生きていくだけの相当な知識がある人(それこそ「Azure」や「AWS」のクラウド環境が作れる人)
の2つのパターンのうち、どちらかしかないかと(前者のほうが多い。筆者がオープン系のエンジニアなのもあって、後者の人には今のところは、会ったことないです 汗)。
筆者は、30~40代くらいのエンジニアとプログラムを組みますが、インフラ出身の(データベースにかなり詳しい)人も多いわけで。
※インフラ上がりの人は、DBやらWindowsコマンド(mkdirやrmなどの初歩的なコマンドとかじゃなくて、パーティションいじるコマンドとか)にめちゃくちゃ詳しかったりします。
いつのまにか、プログラム書かされてたよ~
みたいに、「(いい意味で)こんなはずじゃなかった感」を出している人もいます笑。
2.バックエンドエンジニアをやりながらインフラを覚えたほうが早い
バックエンドエンジニアとして、JavaなりPythonなりRubyを書きつつ。
必要なときにインフラの知識を覚えたほうが効率的というのも理由の一つ。
筆者は、ふつうにこんなことを言われたりします。
エンジニアの入り口としてインフラはありだけど、途中で別のこともやるかも
勘違いしないでほしいのが、「インフラエンジニアをIT業界の入り口とすること自体は、悪いことではない」ということ。
ただ、「相当な知識を身に付ける」か、「どこかでバックエンドもやるかもしれない」というのは、頭の片隅に入れておくと、ミスマッチが少ないです。
バックエンドエンジニアになるには?
それじゃあ、バックエンドエンジニアになるには?
- 【その1】プログラミング言語を選んで勉強
- 【その2】フロント側の知識やDB、開発言語のフレームワークの知識もいる
【関連記事】バックエンドエンジニアになるには?スクールのおすすめと3~6か月後に転職するための具体的な方法を解説
【その1】プログラミング言語を選んで勉強
まずは、Java・Python・Rubyから言語を選ぶこと。
仮に本で学ぶなら、Javaなら「スッキリわかるJava入門」、Rubyなら「チェリー本」が有名。
スクールに通うなら、テックアカデミーかCodeCampの2つが、バックエンドの言語すべてのカリキュラムがあります。料金が安いのはテックアカデミーで、無料体験後に1万円の割引があります。
【その2】フロント側の知識やDB、開発言語のフレームワークの知識もいる
プログラミング言語だけでなく、フロントエンド側の知識や開発インフラの知識も覚えつつ。
【関連記事】バックエンドエンジニアのつらい部分は3つ。難易度は高いけど年収も高い
やることは多くて大変だと思うかもですが、最低3か月~6か月を目安にしっかりと学習を進めていくイメージ。
面接では、「社会人が未経験でエンジニアになる場合の自己PRのポイントは3つ」でも書いているようなコミュニケーション能力や説明力をアピールしてくださいね!
インフラエンジニアになるには?
インフラエンジニアになるにはどうしたらいいの?
- CCNA、基本情報技術者試験の資格をとる
- 志望動機とキャリアプランを練る
- クラウドが前提であることを知る
【関連記事】3か月でインフラエンジニアになるには?スクール、勉強方法について解説
1.CCNA、基本情報技術者試験の資格をとる
インフラエンジニアは、基本的にはCCNA・基本情報技術者の資格で勝負します。
スクールを活用するなら、1か月で目指せるgeek jobや、ウズウズカレッジというサブスク型のスクールで3か月を目安に学んでくださいね。
2.志望動機とキャリアプランを練る
そして、インフラエンジニアは志望動機を練るようにしてください。
というのも、「環境づくり」がお仕事。
環境まわりは「動いて当たり前」なので、プレッシャーが大きいうえに、ダウンするようなことがあれば夜だろうと休みだろうと平気で呼び出しを食らいます。
※電気、水道、ガスが止まったら、「すぐに復旧してくれ」となるのと同じ。
「なぜ、動いて当たり前のプレッシャーが大きいインフラエンジニアになりたいのか?」は、しっかりと答えられるように準備してください。
※たとえば、適性の一つとして、徹夜でパズル組み立てるのが好きな人に向いています。転職の面接であれば、ご自身の業務経験と絡めることができれば説得力あり。
3.クラウドが前提であることを知る
最後になりますが、AWSなどのクラウドが前提であることを知る、トレンド技術が扱えるようにしてください。(くどいようですが、求められるのは事実なので・・・)
CCNAをとって物理面のインフラ専門となると、今後はどんどん厳しくなる・・・かもしれないです。
まとめ
バックエンドエンジニアとインフラエンジニアのちがいについてまとめます。
- 【前提】インフラエンジニアと、バックエンドエンジニアはどちらも裏方
- バックエンドの仕事の一部がインフラエンジニア(バックエンドは開発エンジニアの花形)
- バックエンドエンジニアは、システム開発の環境構築、プログラミングをすべてやる
- インフラエンジニアは環境構築(DB・ネットワーク・サーバー構築)に特化
迷ったら、3~6か月かけて勉強し、バックエンドエンジニアを選ぶのが無難。
インフラエンジニアを目指すのであれば、適性をアピールしつつ、覚えるべきことを覚えるイメージで。
スクールを活用するなりして、エンジニアとしてのスタートを3か月で切りましょう!
コメント