はじめまして!プロラボです。
この記事を開いたあなたは、少なくともシステムエンジニアに興味を持っているかと思います。もしあなたがIT業界の未経験なら知っておくべき事を解説していくので、気になったところだけでも読んでみてください。
軽く自己紹介ですが、現在32歳で現役のシステムエンジニアです。毎日定時で帰って年収600万くらい。びっくりするほど高収入なわけではないですが、それなりにストレスのない生活をしています。
10年以上やっていますが、システムエンジニアはマジで良いですよ!
特に2021年現在では在宅ワークを実施している企業が爆発的に増えていて、僕も漏れなく在宅ワークをしています。もう数ヶ月出勤してないですし、ぶっちゃけ補償付きのフリーランス見たいな働き方をしています。
ただしIT業界未経験からいきなりシステムエンジニアへの転職は難しい!
というか無理ですね。
未経験からでもOKなのはプログラマです。
そもそもシステムエンジニアというのは、プログラマの上位職みたいなもので世の中のシステムエンジニアはほとんどプログラマを経験しているんです。
実際僕もプログラマを経験していますし、現在はシステムエンジニア兼プログラマって感じですね。
つまりプログラマを経験すればシステムエンジニアになることが可能ということですね。
というわけで今回は、IT業界未経験のあなたがプログラマからシステムエンジニアまでレベルアップする最適な道のりを教えます。
それでは早速いっていみましょう!
システムエンジニアとプログラマの違い
まずはシステムエンジニアとプログラマの違いを確認してみましょう。
システムエンジニアもプログラマも「システム開発」をするお仕事です。
つまりやっていることはシステムエンジニアもプログラマもほとんど同じなんですね。
「システム開発」の例を挙げると、
【「システム開発」の例】
- Suica(PASMO)
- LINEアプリ
- 駅の券売機
こんな感じ。
どれか一つは使ったことがありますよね。
そのくらい《システムエンジニア》と《プログラマ》が作ったシステムは世の中に溢れています。
システムエンジニアとプログラマはどこが違うの?
システムエンジニアもプログラマも同じ「システム開発」をするお仕事だということはわかりました。
では実際には何が違うのでしょうか?
それは「システム開発」で関わる工程で違いが出てくるんです。
主な工程は以下のとおりです。
【主なシステム開発の工程】
- 要件定義
- 基本設計
- 詳細設計
- コーディング
- システムテスト
「システム開発」は①〜⑦に向かって行います。
- ①〜③までを《上流工程》と呼び、基本的に《上流工程》が《システムエンジニア》のお仕事です。
- ④〜⑤は《下流工程》と呼び、基本的に《下流工程》が《プログラマ》のお仕事です。
図にするとこんな感じ。
ちなみに上記のような工程の組み方を《ウォーターフォール型》と呼びます。
他に《アジャイル型》と呼ばれる工程の組み方もありますが、今回は特に気にしなくてOKです。
後々「そういえば!」くらいに思い出せればOKです。
システムエンジニアは建築士、プログラマは大工さん
システム開発を注文住宅に例えるとわかりやすいです。
- システムエンジニアは建築士さん
- プログラマは大工さん
上記みたいな感じですね。
建築士さんはオーダーに合うように図面を書き、大工さんに建築を依頼し、大工さんはもらった図面を元に家を建築していきます。
図面を書くことが上流工程で、建築が下流工程として考えることができます。
システムエンジニアとプログラマの違いは下記の記事でも詳しく解説しているので、もっと知りたい人はチェックしてみてください。
▼システムエンジニアとプログラマの違い
上流工程の方が難しい
システム開発の流れがなんとなく分かったかなと思います。
まず結論ですが、基本的には上流工程の方が難易度が高いです。
主な理由は以下のとおり。
- 依頼者とのコミュニケーション能力が必須
- どの程度でシステム開発が完了できるか計算する必要がある
- 求められている機能を100%理解する必要がある
- 求められている機能が実現できるか否か判断する必要がある
- プログラマがコーディングできるように設計する必要がある
要するに不透明な情報をまとめ、一つ一つ決定する力が必要なんです。
プログラマはシステムエンジニアが決めてくれたことを、自分のコーディングスキルを用いてコードを書けばいいので、システムエンジニアと比べると簡単です。
プログラマが下位互換なわけではない。
ただ「プログラマの方がレベルが低い」というわけではなく、例えば以下みたいな人は自ら好んでプログラマとして残ったりしています。
- コーディングがとにかく好き
- 依頼者とのコミュニケーションがめんどくさい
どんなIT企業にも上記のようなベテランプログラマがいて、技術力がめちゃくちゃ高いです。
大工さんも職人技が光る人がいますよね。同じようなイメージです。
システムエンジニアは依頼者と打ち合わせした後、上記のようなベテランプログラマに相談している風景を新人時代によく見かけました。
そのくらいベテランプログラマはIT業界に必要不可欠な存在なんですよ。
どうしてもシステムエンジニアになると、依頼者とのコミュニケーションや開発全体のスケジュール管理など対人関係や管理関係の仕事が増え、プログラミングをする機会が減っていきます。
機会が減れば技術力は下がりますし、プログラミング言語は日進月歩なためあっという間に自分の知識は古くなってしまいがちです。
「システムエンジニアって意外とめんどくさそう」と感じた人はプログラマとして技術を突き詰めるのも大いにありです。
システムエンジニアは経験が必須
システムエンジニアとプログラマの違いを、システム開発に沿って解説してきましたが、基本的にはシステムエンジニアが行う上流工程の方が難しいです。
プログラマの場合はシステムエンジニアが作った設計書をもとにプログラムを組むお仕事なので、ある意味答えがあるイメージです。
例えばプラモデルを作ることを例に考えてみましょう。
プラモデルは説明書通りにパーツを組み合わせていけばプラモデルは完成しますよね。
- この説明書がシステムエンジニアが作った設計書で、
- パーツを組み合わせる行為が、プログラマが行うコーディングに該当します。
どう考えても説明書を0から作るようが難しいと思います。
プログラマ未経験でもテストはできる
プログラムの知識が0でコーディングすらできない人でも「テスト」なら誰だってできてしまいます。
[jin-iconbox01]そもそも「プログラムの知識が0」の人を雇ってくれる企業があるか否かは置いておきます(笑[/jin-iconbox01]「テスト」とはプログラマのコーディングした結果完成したシステムが、システムエンジニアが設計したシステム通りになっているかテストをする工程です。
[jin-iconbox03]要するにシステムを使ってみて変なところがないかチェックすればOKなんです。[/jin-iconbox03]厳密にはテストする箇所や条件などをプログラマやシステムエンジニアがきちんと指定した「テスト仕様書」というもの通りにテストを実施します。
例えば駅の券売機をテストする場合は、
- 100円投入したら、液晶に「100円」と映ること
- 発券ボタンを押下したら、券が発券されること
こんな感じ。
新卒や未経験転職の場合は「テスト」工程から経験する場合が多いかなと思います。
「テスト」工程でシステムに触れることによってプログラミングを覚え、徐々に一人前のプログラマとして成長していきます。
[jin-iconbox03]あまりにも大規模なシステムの場合、アルバイトを雇ってテストしてもらうケースもあるほどで、知識がなくても「テスト」はできてしまうんです。[/jin-iconbox03]プログラマの経験がシステムエンジニアを作る
プログラマでの経験がシステムエンジニアを作ります。
例えば上流工程で求められるスキルに以下の内容がありますが、
- お客様とのコミュニケーション能力が必須
- どの程度で完成できるか計算する必要がある
- 求められている機能を100%理解する必要がある
- 求められている機能が実現できるか否か判断する必要がある
- プログラマがコーディングできるように設計する必要がある
お客様とのコミュニケーション能力は才能でなんとかなっても、その他の内容はプログラマという職業を理解していないと判断ができないと思います。
特に「②どの程度で完成できるの計算」は経験則がものを言うスキルなんですよね。
「ベテランプログラマに相談する」というのも手段ですが、1人でできないとどこかでボロが必ず出てくるでしょう。
プログラミングできるシステムエンジニアが最強!
あなたが新卒で、業界最大手のソフトウェア会社に入社することができれば、未経験あらっすテムエンジニアも不可能ではないです。
しかし上記のように飛び級でシステムエンジニアになった人はほとんどプログラミングができないです。
僕が共に仕事した大手の人はみんな飛び級システムエンジニアだったので、誰一人としてプログラミングができる人はいませんでした。
飛び級システムエンジニアの場合、プログラミングの細かいところまで理解ができないので、どうしても会話でつまってしまう時があるんですよね。
そういう場合はお互いにストレスですし、何より仕事が進まず効率が非常に悪いです。
さらに将来的にフリーランスを目指すのならプログラムできるシステムエンジニアになることが必須だと思います。
[jin-iconbox06]ただし大手に入社できるだけあって、システムエンジニアとしての交通整理力はマジで優秀でした。勝てない・・・笑[/jin-iconbox06]プログラミングができるシステムエンジニアの未来は明るい
プログラマからステップアップしてシステムエンジニアになった人の未来はかなり明るいかなと思います。
主な理由は以下のとおりです。
- IT人材は常に不足している
- IT技術は常に進歩している
- フリーランスなら月収100万も可能
2018年に行われた経済産業省の「IT人材需給に関する調査」によりますと、調査が行われた2018年の段階で22万人ものIT人材が不足していることがわかります。
さらに2030年までにIT人材の不足数は45万人まで膨れ上がると予想されています。
要するにずっとIT人材は不足しているんですよね。
不足しているということはそれだけ需要があるということで、システムエンジニアとしてのレベルが高ければ職に困るということは無いと思います。
またプログラミングもできてシステムエンジニアとしてレベルも高ければ、フリーランスで戦える力が十分備わっており、月収100万円以上を達成している人も数多くいらっしゃいます。
IT業界に飛び込むなら利用できることは利用しよう
もし未経験でIT業界に飛び込みたいなら、利用できるサービスを最大限に利用すべきだと思います。
プログラミングに自信がないならプログラミングスクールがおすすめですし、転職活動に自信がなければ転職エージェントの利用がおすすめです。
自己投資は惜しまない
僕が新卒の頃の話ですが上司に
「成長のため自分への投資は惜しまないでください。」
と言われたことがあります。
当時の僕は「プライベート以外での投資は絶対嫌だ。」と成長にお金をかけることをしませんでした。
結果、同期たちに置いてけぼりにされ辛い思いをした経験があります。
ここでいう自己投資は「プログラミングスクールに通う」が一番コスパがいいと思います。
スクールに通うとなるとそれなりに高額ですが、月々の支払いも可能ですしちゃんとスキルが身につけば一瞬で元が取れます。
何より最近では無料相談や無料体験を行なっているプログラミングスクールも多く存在しているので、気になったらすぐにでも相談するべきだと思います。
なんつっても無料ですからね!
「合わないな」と思ったらやめればいいだけの事くらいに考えてればOKです。
転職活動するなら転職エージェントが絶対おすすめ
転職活動に自信がないなら転職エージェントの利用がとにかくおすすめです。
何を隠そう僕も転職エージェントを利用して転職に成功させた人物の一人です。
僕が実体験で「転職エージェント最高!」と思ったエピソードは以下のとおりです。
志望度の高い企業の書類選考がとおり、どんな質問でも答えられるようにかなり準備をして1次面接に臨みましたが、緊張のあまり頭が真っ白になってしまい、準備していた回答がうまく答えられませんでした。
誰がみても僕の1次面接は失敗でした。
しかし、面接終了後すぐに転職エージェントに連絡を取り質問された内容と答えた内容をフィードバック。さらに本当は「こう答えたかった」と本来の意思をエージェントに伝えました。
その後転職エージェントが採用担当者に連絡を取ってくれ、本来の意思を伝えてくれたところ1次面接が無事通過することができました。
おそらくですが、転職エージェントの助けがなければ1次面接の通過は無かったかなと思いますし、転職エージェントでない限りは上記のようなフォローは絶対に不可能です。
上記の実体験だけでも転職エージェントを絶対使うべきかなと思いますが、もっと転職エージェントについて気になる人は以下の記事を参考にしてください。
まとめ
と言うわけで「システムエンジニアに未経験からなれるは嘘!SEへの道を教えます。」について解説しました。
まとめると、
[jin-iconbox07]- システムエンジニアは経験が必須
- なのでプログラマから初めて、
- システムエンジニアまで上り詰めよう!
- そのために自己投資は惜しまず、
- 転職するなら転職エージェントが絶対おすすめ!
でした。
ここまで読んでいただきありがとうございました!
と言うわけで今回は以上です。