プログラマーを目指すかインフラエンジニアを目指すか悩んでる方が多い様子なので、ご自身の適正にあわせて道を選んだらよいかと思います。
大体この質問をいただくのは現状エンジニアやIT系の仕事ではなくて、これからプログラミングスクールに通おうか、インフラエンジニアスクールに通おうか迷ってる方だと思います。
・現職IT系ではなくて、IT系に転職を考えている
・フリーターをやってる、第二新卒で悩んでいる
・文系の大学に入ったけど、やっぱりエンジニアを目指したい
こんな人たちへの記事を書きます。
理系の大学生だと基本的な情報系は授業でやりますから、自分で就活の時に選択するので、たぶん対象外。
まずは診断チャートを遊んでみてください。
プログラマーとインフラ(ネットワーク)エンジニアの適正チャート
はずかしい私のJavaScriptプログラミング(雑魚)。各質問に回答する形。スライダーバーを動かして最後に「診断」ボタンを押せば、あなたがプログラマー向けなのか、インフラ向けなのかグラフで出ます。
完全に独断と偏見でつくったやつ。後悔はしていない。テストもしていない。(;´・ω・)
1・・・いいえ
2・・・どちらかといえばいいえ
3・・・どちらでもない
4・・・どちらかといえばはい
5・・・はい
仕事内容を把握しよう、プログラマーとインフラエンジニアの比較
仕事内容を把握することはやりたいことに近づきます。また逆にやりたくない事も理解しておくとどちらを選ぶか判断する助けになるでしょう。ここではそれぞれの職種について簡単に紹介します。
プログラマー
システム、ソフトウェア、アプリ、WEBサービス等(わかりやすくアプリで統一)のモノを作る仕事。設計書をもとにPCを使ってプログラミング言語の文法に従ってテキストを書いていく仕事。人間が書いたテキストは機械が動くように翻訳されてアプリになる。
開発者(SE)とプログラマーは厳密に違う。プログラマーは多くの場合でPCの前で過ごすことになる。
仕事の規模は様々。100人の大規模製造もあるけど稀。10人~2人とかチーム戦で1つのアプリを作るので機能毎に担当割されて自担当の機能を作るイメージ。チーム戦なのでたまに会議とかもある。
自社でアプリを開発してリリースしたり、顧客から依頼されてアプリを開発して納品したり。あるいは客先に常駐してメンバーの1人になって開発したり。契約形態は主に3パターン。
スケジュールがある仕事なので納期に間に合わないといけない。徹夜、土日出勤も場合によってはやむなし。作ったアプリが世の中に出る事に携われるのは大きな自信と喜びになるはず。残業が多い月は給料も増えて嬉しい。
インフラ(ネットワーク)エンジニア
運用・監視と設計・構築の仕事がある。インフラは主にネットワークに関わる仕事。スマホで色んなサイトに繋がるもの、アプリがちゃんと動き続けるのもインフラが動いてるからですね。そのインフラを作ったり維持する仕事。
1年目は運用・監視の仕事が多く3交代で仕事にあたるので夜勤もある。時間が決められているので残業はあまり無い。残業目当ての給料アップは難しい。インフラが正常に動いてることを監視、障害があれば復旧するように運用。けっこう物理的な機械を使う。
ネットワークまわりの維持、トラブル解析、セキュリティの保守、機器のアップグレード、IPアドレスの監査。てことは普段あるべきものがちゃんとあるようにする仕事。
インフラの設計構築は顧客のアプリが動くようにネットワークまわりを作る仕事。顧客の規模にあわせてNWの設計、ネットワーク機器の調達、配線、ルーターの構築、LAN/WAN、納品。やはりメンバーで仕事。客先に常駐して仕事をするケースが多い。
適正をチェックしよう、プログラマーとインフラエンジニアで求められる事
ここではそれぞれがどんなことを求められるかを整理したいと思います。
プログラマ―は本当にプログラミング寄りの人を想定。(顧客よりのSEよりじゃなく)
プログラマー
良く色んな所で書かれてる、論理的思考が大事とか、そんなこと言うつもりはなくて。
詳細設計書に従ってちゃんとコードに落とせる事とか。設計書の中であいまいな部分があればその都度ちゃんと確認してコードに落とせることは大事。その製造作業をするためにかかる期間・工数を見積れる能力もありがたい。顧客の要望の実現可否とかどう実現できるかを想定できることも。できればコミュニケーション力があるとなお良い。(けど、なかなかそうじゃない人が多いので別になくてもいい)検索力、調査力も重宝される。プログラミングは書く時間より調べる時間の方が長かったりするので。
インフラ(ネットワーク)エンジニア
若手の場合はどうやってネットワークが繋がってるかの知識とか、ルーティングの技術とか。(まずはCCNA資格合格レベル)手順書に従って正確に業務遂行できることが大事。2年目、3年目になるとメンバーのまとめ役になるのでそういった素養もあるとよく。設計・構築のフェーズなら顧客との会議もあるし交渉、見積り、提案もやる。上位の資格を取得して自分を高めていくとよい。
プログラマーとインフラエンジニアの学習する内容と難易度
これからどちらの道に進むか考えている方にとって、何を学習していくのか、難易度はどんなものかをお伝えします。
とは言え、難易度で言えばインフラエンジニアの方が低いと思います。
プログラマーは業務の中でインフラにも携わるケースがあるので、経験者なら割とすぐインフラエンジニアになれますが、インフラエンジニアからプログラマーへのジョブチェンジは領域が全く違うので難しいです。
プログラマー
学習のステップとしてまず何を作りたいか=言語は何を選ぶか、みたいなところからスタートします。
あるいは市場で求められてる言語は何か。機械学習やAIが流行ってるからPythonだとか、サービスを作りたいからWEB系だとか。だからまず言語選びで迷う人は多い。
学習方法としては書籍を購入しての独学がコストかからずオススメ。それからドットインストールという3分動画教材は良い教材だと思う。ちゃんと手を動かしてコードを書く、環境を構築する、と言うのをやらないといけない、そこまでカバーしてる。
でも今までIT系になじみの無い人が多いと思うのでその場合はプログラミングスクールに行くと良い。3ヶ月3~40万とかかかるからコスパは悪い。転職前提のスクールなら無料で受けられるので(とは言ってもイイ求人があるとは限らない)、活用するのも有り。
テックエキスパート(Ruby)、ギークジョブ(JAVA)とか。
最初に学ぶのはどんな言語でも共通的な文法。変数の概念、足し算引き算、関数、メソッド。書かれてるコードがどう流れていくのか複数の窓を開いて頭の中で組み立てたり、書類を追いかけたり、みたいな学習。
WEB系だとHTMLとCSSから学ぶ。どうやってホームページを作るかがわかる。初心者の入り口としても簡単。せめてここは書籍で独学でやってみて、これ理解できたならそのまま次のステップへやり続けてもいいと思う。HTML、CSSで躓くようならプログラマーは無理だと思う。HTMLとCSSの理解を一つの指標としてみてはどうだろうか。
インフラ(ネットワーク)エンジニア
インフラの勉強は座学が多いのに、実機を使わないと実践にならないのが難しいところ。書籍や動画の勉強だけでも知識は身に着くけどいまいちフワフワ感があるので手を動かして、実機を触ってほしい。中古なら1万円弱で買える。
ネットワークが繋がる仕組み、LANとWAN、IPアドレス、OSI参照モデル。どんな実機があるか、ルータ、スイッチ、WiFi、NWケーブルとか。ネットワーク系のコマンドの叩き方。そういうところから勉強していく。
独学だけで就職できるレベル(CCNA資格者)になるのは結構難しいと思うけど、スクールに行けば体系的に学べるのと実機があるので、こっちの方が難易度が低くおすすめ。ネットビジョンアカデミーとか1ヶ月で資格取れるレベルになる。
プログラマ―デビューするよりは難易度が低いと思う。プログラミング挫折した人にはこちらをおすすめすることが多い。
転職、求人市場はこうチェックすればOK
リクナビネクスト(転職版)の方で職種検索をすればどんな求人、会社が出してるのかわかる。
また案件を見れば具体的な仕事内容とか求められるスキルも書いてあるので自分の将来像をイメージしやすい。
プログラマー
職種>ITエンジニア(システム開発・SE・インフラ)>システム開発(Web・オープン・モバイル系)
ここを見ればよい。
もう1つは
職種>Web・インターネット・ゲーム>Webサイト・インターネットサービス
ここ。
年収
1年目・・・350万前後
5年目・・・550万前後
このへん。
今回(2020年頭)検索してみたら5231件あった。4月入社に向けた一番求人が多い時期だと思う。
インフラ(ネットワーク)エンジニア
職種>ITエンジニア(システム開発・SE・インフラ)この中に
・運用・保守・監視・テクニカルサポート
・ネットワーク・サーバ設計・構築(LAN・WAN・Web系)
・通信インフラ設計・構築(キャリア・ISP系)
この3つで検索してみること。意外と未経験OKな求人が出てくることに気づくと思う。
年収
経験1年・・・300~350万
経験5年・・・500万前後
この当たりを見込める。
今回(2020年頭)検索してみたら1699件あった。インフラ系の方が求人数は少ないけどなり手もそう多くなく、また進化が早い業界でもないので一定の求人はある。
企業のITネットワークが拡大し続けるので、需要も増加している。