IT業界に興味があるけれど何から勉強すべきか迷っている、まずどんな会社に入ればいいのかわからない、といった方は多いかと思います。目指すべきエンジニア像や働き方は一人一人異なりますが、そもそもそれがわからない、というのも一理あります。
そこでここでは、理想とするエンジニア像も働き方も定まっていないという前提でベストな選択について解説していきます。
インフラが超絶オススメ
参考URL:https://pixabay.com/
最初に結論を書くと、初心者でまだ何も決まっていない場合インフラエンジニアを目指すのがオススメです。その理由はいくつかあるので、詳しく説明していきます。
インフラエンジニアは技術を身に付けやすい
インフラエンジニアの業務が簡単というわけではありませんが、アプリエンジニアに比べるとスキルアップが比較的楽です。アプリ開発は技術の幅が広く変化も激しいため常に勉強が求められますが、インフラエンジニアの場合基本的な内容を網羅すれば仕事として形になりやすいのです。
またアプリエンジニアは生産性の個人差が大きく、技術への関心がそこまで高くない人がプロジェクトに配属されると肩身の狭い思いをする可能性があります。開発内容にもよりますがアプリエンジニアの世界はしのぎを削るようなところがあり、モチベーションが低いと市場に取り残されることが多いでしょう。
もちろん現状初心者であっても入社後頑張れば問題ないのですが、やってみたけどプログラミングがあまり好きでなかった、周りのエンジニアほど高い熱量で開発に取り組むことができない、といったことはよくある話です。
インフラエンジニアの場合そこまで技術に興味がなくても決まった形で勉強を進めやすく、なおかつ保守運用案件が多いです。プライベートもほとんどアプリ開発に費やすような人は少数派なので、肩身が狭くて辛い思いをする可能性も低いでしょう。
ややネガティブな理由に思えるかもしれませんが、仕事を続けられなければせっかく入社しても離職歴が付いてしまうので、スキルが身に付いておらず目標も明確でないうちはインフラの方が良いかと思います。
物理層から触れるので面白い
アプリケーションエンジニアが扱うのはソフトウェアで、スキルアップについてもプログラミング等ソフトウェアでの操作がほとんどです。一方で、インフラエンジニアの場合物理層から扱うので、イメージとしては機械いじりに近いです。
アプリとインフラのどちらが好きかは人それぞれですが、たとえば機械そのものが好きな人の場合インフラの方が向いているかと思います。逆に表面的なソフトを扱ったりゲームを自分で書いたりするのが好きな人はアプリの方が向いているでしょう。
私自身は移り変わりが激しく表面的なソフトウェアよりも機械いじりや物理層とアプリケーション層を結び付ける工程に興味があるので、インフラの方が面白いと感じています。あくまでイメージとしての具体例ですが、自作でゲームを作ってみたいような方はアプリケーション、自作PCをやってみたい方はインフラ、といった例が挙げられます。
難易度としては自作PCの方が低いですが、アプリケーションエンジニアとインフラエンジニアにもこのような難易度の差があります。また自作PCは一定のレベルになればそれ以上はあまりありませんが、自作ゲームはクオリティを追求すればきりがありません。
その点でも、上記の例はアプリケーションエンジニアとインフラエンジニアの違いにイメージとして近いのではないかと思います。
クラウド化により働き方の自由度が上がっている
上で説明した通りアプリケーションエンジニアの方が技術への意欲が高く、ついていくのが大変なことが多いです。ただしその分働き方の自由度が高く、スキルアップに応じて個人受託や個人開発といった働き方の選択肢もあります。
一方で、一昔前までのインフラエンジニアはそこまで技術に対する高い意欲を求められない反面、働き方の自由度は低かったです。現在もアプリエンジニアほどとはいかないのですが、クラウド化によって遠隔地から作業できるようになりました。
その結果リモートワークで働く会社員インフラエンジニアや、フリーランスのインフラエンジニアの人口が増えています。現状アプリエンジニアと比べると枠は狭いものの、今後フリーランスのインフラエンジニアは増えていくでしょう。
将来的に個人で働きたい方にも、インフラエンジニアはメリットがあります。
アプリエンジニアになったときにもスキルが役立つ
インフラエンジニアは技術を身に付けやすく初心者にもおすすめですが、働いているうちにアプリ開発に興味が出てくることもあるかと思います。実際インフラエンジニアからアプリエンジニアに転職するケースは多いので、決して特別な事例ではありません。
インフラエンジニアからアプリエンジニアに転職する際には自分でアプリ開発の勉強を行う必要がありますが、インフラの経験があればITの素養はすでにできているので、アプリ開発に取り組むのもスムーズです。
また、インフラに詳しいアプリエンジニアは重宝されます。アプリエンジニアのなかにはインフラには興味がなく、パソコンの基本的なパーツやその役割を把握していない人もいたりします。
実際物理層のことを理解していなくてもアプリケーション開発は可能なのですが、バグの原因になることもあれば、たとえば端末やサーバーに不具合があった際に自力で対処できなかったりします。
アプリエンジニアなのだからアプリだけできれば良いという考え方もあるかと思いますが、開発者である以上物理的な部分から自分で管理できた方が良いでしょう。
目標がはっきりしている人はアプリを選ぶのもあり
参考URL:https://pixabay.com/
以上インフラエンジニアを推してきましたが、理由としては技術習得の容易さや入社後他のエンジニアに付いていけない可能性の排除、といったどちらかというとネガティブな要素が中心です。
初心者で自分が技術が好きかどうかよくわからない段階でアプリエンジニアを選ぶと後悔することも多いため、まずはインフラから、という考え方になります。ただし、初心者と言ってもプログラミングの基礎は知っていたり、個人でアプリケーション開発している場合もあるでしょう。
その結果自分がプログラミングが好きだと言い切れるのであれば、アプリを選ぶと良いかと思います。逆にインフラだと勉強しながら広げられる技術領域が少なくて達成感が少ないかもしれません。
最初は物理層の勉強やクラウド化の勉強が楽しいかと思いますが、一定の知識を身に付けるとインフラはそれ以上が少ないです。アプリケーションのように技術が無限にあるわけではないので、勉強意欲が高くてどんどん技術習得したいならアプリがおすすめです。
アプリの方に興味があるがインフラにも興味があるという場合、どちらも勉強すれば良いだけです。フリーランスなら当然のこと、会社員でもなるべく自分の技術領域を広げてフルスタックエンジニア的に活躍できた方が市場価値は高くなります。
理想論ではありますが、アプリを選んでもインフラを選んでも、なるべく両方のスキルを磨いていくのがおすすめです。