2020年8月現在、プログラミングを学習する方、プログラミングで副業を始める方が非常に増えてきていますね。
プログラミングが義務教育になったことや、コロナ禍で自粛生活が続き、リモートワークが普及していることが後押しになり、リモートワークでも比較的作業がしやすい職業としてエンジニアが注目されているのでしょう。
また、一部のインフルエンサーの発信によってエンジニアは「稼げる職業」と認知されていることも一つ影響としてあるのでしょう。
多くの人がプログラミングに興味を持ち、エンジニア人口が増えていくことは同じエンジニアとしては非常に喜ばしいことだと思います。
しかしながら、しばしばエンジニアは「簡単になれる職業」と勘違いされているように思います。
SNS上で稼いでいる人たちの発信を受けて「簡単に稼げている」ようにみえているのかもしれませんが、そこに至るまでの道のりは決して「簡単」とは言えません。
プログラミングを覚えること自体はそこまでハードルは高くありませんが、「プログラミングを覚えること = エンジニア」ではありません。
IT企業に就職すればエンジニアということでもありません。(就職がゴールではないからです。)
また、一言に「エンジニア」といっても種類があることをご存じでしょうか?
エンジニアとはそもそも何なのか、なぜプログラミングができてもエンジニアではないのか、エンジニアになるということはどういうことかについて紹介していきたいと思います。
エンジニアとは
エンジニアとは工学について専門的な知識やスキルを持つ人材を表す言葉です。
私はさらに加えて専門的な知識やスキルを使って価値を創造し、顧客に価値を提供することができる人材をエンジニアと考えております。
ここで紹介するのはエンジニアの中でもIT技術について専門的な知識やスキルを持つ人材、ITエンジニアを紹介します。
ITエンジニアの職種は非常に細分化されており、約30種もの職種があります。
【エンジニアの主な役割】
- 研究開発
- 企画・戦略
- プロジェクト管理
- 設計・開発
- 運用・保守
- サポート
【エンジニアの主な職種】
- ITコンサルタント
- エンタープライズアーキテクト
- システムアーキテクト
- プロジェクトマネージャ
- プロジェクトリーダ
- システムエンジニア
- プログラマ
- テストエンジニア
- データベースエンジニア
- フロントエンドエンジニア
- バックエンドエンジニア
- マークアップエンジニア
- アプリケーションエンジニア
- QA・QCエンジニア
- 社内SE
- ブリッジSE
- インフラエンジニア
- ネットワークエンジニア
- サーバーエンジニア
- クラウドエンジニア
- セキュリティエンジニア
- フィールドエンジニア
- サポートエンジニア
- セールスエンジニア
- 制御・組み込みエンジニア
- Webデザイナ
- 研究開発エンジニア
これだけ細分化されてしまうと、これからエンジニアを目指す人にとっては何がなんだかよくわからないと思います。
ここではそれぞれの職種について細かな説明は省きますが、正直なところ実際の現場ではほとんど兼務になります。
集約すると大まかにITエンジニアの職種は以下の通りです。
- ITコンサルタント
- アーキテクト(エンタープライズアーキテクト、システムアーキテクト)
- プロジェクトマネージャ(プロジェクトリーダ)
- システムエンジニア(プログラマ、アプリケーションエンジニア、フロントエンドエンジニア、バックエンドエンジニア、データベースエンジニア、テストエンジニア、QA・QCエンジニア、ブリッジSE)
- インフラエンジニア(ネットワークエンジニア、サーバーエンジニア、クラウドエンジニア、セキュリティエンジニア)
- 制御・組み込みエンジニア
- 研究開発エンジニア
- Webデザイナ(マークアップエンジニア)
- その他のエンジニア(フィールドエンジニア、サポートエンジニア、セールスエンジニア、社内SE)
***** ***** *****
ITコンサルタントはITの知識を以って顧客の抱える課題を見出したり、課題解決のためにIT技術を取り入れた業務改善を提案したりするのが主な業務になります。
アーキテクトはハードウェア・ソフトウェアを含めシステム構成全体の設計を行い、システムのライフサイクルを管理するのが主な業務になります。会社のビジネスモデルと照らし合わせ、経営戦略の視点から会社全体のシステムを最適化するエンタープライズアーキテクト、個々のシステムにおける設計を管理するシステムアーキテクトがあります。
プロジェクトマネージャはプロジェクトに必要な資源(人、モノ、金、時間)の管理、スケジュール管理、リスク管理、顧客へのプロジェクト状況の報告、成果物の品質管理などが主な業務になります。一般的にはシステム開発経験を経てから就く職種なのですが、システム開発のスキルよりも人やお金、時間の管理が重要になるため、優秀なシステム開発者であってもプロジェクトマネージャが務まるとは限らず、キャリアパス上の特異点のような職種です。
システムエンジニアは上記の中で一番多岐にわたる業務を行います。詳細は後述しますが、ITエンジニアといえば大抵はこのシステムエンジニアを指していることが多いと思っております。
インフラエンジニアはITエンジニアの中でもネットワークの構築やサーバ機器の設置、仮想環境による開発プラットフォームの提供などが主な業務になります。ソフトウェア開発を主業務としていないことから技術系エンジニアと呼ばれることが多く、ソフトウェアを開発する開発系エンジニアと区別されることが多いです。
制御・組み込みエンジニアは家電や車などに搭載されている制御系システムの開発が主な業務になります。エンベデッドシステムエンジニアとも呼ばれます。
研究開発エンジニアはロボットの開発やゲーム機、スマートフォンの開発などハードウェアとソフトウェアの両方を新たに製品として生み出すための研究と開発を主な業務としています。
Webデザイナは企業のホームページ作成等におけるデザインを主な業務としています。
その他のエンジニアは社内システムにおけるサポートデスク、コールセンター業務、顧客先に設置されたサーバーメンテナンスやプリンターのメンテナンス、ソフトウェア販売の営業などを主な業務としています。社内SEは自社システムの開発を担当することもありますが、多くは社内システムの運用業務やサポートが中心となり、ヘルプデスク業務に近いのが実情です。
***** ***** *****
昨今の「エンジニアになりたい」人の話を聞くと、Webアプリケーションあるいはスマートフォンアプリの開発がしたいと話しており、上記の職種の中において当てはまるのはシステムエンジニアだと思います。
Web制作、スマホアプリ開発、業務系アプリケーションの開発など、事業内容によって扱う技術が異なりますし、担う役割についても異なってきますが、顧客要件をもとに設計を行い、開発し、テストを行い、システム開発に必要なありとあらゆることを行う点は変わりありません。
しかしながら、フリーランス向けエージェント会社のサイトや転職サイト等で職種紹介される際、システムエンジニアは以下のような説明をされることが多く、現場の実態とはちょっと違った定義になります。
「お客様がどんなものを作りたいかを聞き出し、設計書を書いてプログラマへ指示をする人」
なぜ上記のような定義になるのか不思議でなりませんが、私の中でシステムエンジニアはプログラミングはもちろん、要件定義、設計・開発、テスト、運用保守それぞれの工程すべてができる人をシステムエンジニアと考えております。
「設計書を書いてプログラマへ指示をする人」で務まるわけが無いのです。
むしろ、「お客様がどんなものを作りたいかを聞き出し、設計し、システム構築できるプログラマ」こそがシステムエンジニアです。
状況に合わせてシステムの設計者になり、プログラマになり、テスターになり、ありとあらゆることができてシステムエンジニアだと思っています。
事実、実際のプロジェクトにおいて設計を渡すだけで終わったり、ほとんどプログラミングをしないといった状況は少ないです。
私の経験において、設計者が開発をしない場面に遭遇したのはオフショアを利用してコスト削減したいプロジェクトに参加したときだけです。
※ オフショアとは海外のエンジニアを採用すること。特に日本人よりも単価が安くなることが見込める国のエンジニアを利用します。
「設計をプログラマに渡すだけ」がシステムエンジニアだとすると、顧客とプログラマの間に無駄に人を挟んでしまっているため、大きな認識齟齬が生じやすく顧客の望むシステムを構築できない可能性が高くなります。
顧客が何を望んでいるのか、どのような機能を実現したいと考えているのか、その詳細についての情報が欠落した設計をもとに開発することになるためです。
皆さん、伝言ゲームは知っておりますでしょうか?
あれと同じで人を介せば途中で表現に使う言葉も変わり、そもそもどのような表情・口調で語られた内容であったのか、そういった細かな情報は失われていきます。※ 言語化すると情報は失われていくものです。
そのため、設計と開発を分断し、上記のような認識の齟齬が生じやすい仕事をするのがシステムエンジニアだというのであれば、価値提供ができない可能性が高く、それはもうエンジニアとは言えません。
エンジニアに必要な知識
エンジニアとして働くうえで必要になる知識は山ほどあります。
例えばプログラミング言語の他にもシステムを設計するためにはデータモデリングを学ぶ必要があります。
また、ウォーターフォール開発やアジャイル開発などの開発手法、開発に必要な設計書の種類や書き方、どのような工程を経てシステムをリリースするのか等、本当に盛沢山です。
ざっと書き連ねると以下のとおりです。
【画面表示に関する言語】
- HTML
- CSS
【画面におけるアクションを制御する言語】
- JavaScript
- TypeScript
【システム機能のロジックを記述する言語(いずれか数言語)】
- PHP
- Java
- Python
- Ruby
- Perl
- JavaScript
- TypeScript
- Go
- Kotlin
- Swift
- C++
- C#
- VB
【データベース(画面入力データ等を保存するための箱)】
- MySQL(MariaDB)
- PostgreSQL
- Oracle
- SQL Server
【データベースを操作するための言語】
- SQL
【テキストエディタ、統合開発ツール】
- VSCode
- eclipse
- VisualStudio
- IntelliJ
【バージョン管理ツール】
- Git
- SVN
【サーバーに関する知識】
- Linux
- Windows Server
- Apache
- Nginx
【Webに関する知識】
- HTTPリクエストとレスポンス
- TCP/IP
- MIME
- POP3
- SMTP
- Ajax
- XSSなどセキュリティ対策
- AWSなどのクラウド環境
【プロジェクトおよび設計・開発の知識】
- データモデリング
- 排他制御
- オブジェクト指向
- フローチャート(処理手順の図式化)
- ウォータフォール開発、アジャイル開発などの開発手法
- 設計書の種類(要件定義書、基本設計書、詳細設計書、テスト仕様書など)
- システムのテスト方法
- WBSの書き方
- フレームワークの知識(JavaならSpring、PHPならLaravelなど)
- CMSの知識(WordPress、Drupalなど)
- SEO
- 仮想化技術(Docker、Vagrantなど)
- マイクロサービスアーキテクチャ
上述のプログラミング言語や知識につきましては、IT企業へ就職するための必須条件ではありませんし、フリーランスとして働くための必須条件でもありません。
プログラミング言語についてはJavaScriptの他にやりたいことに応じて覚えれば十分だと思います。
例えばAndroidアプリの開発であればKotlin、iOSアプリであればSwift、一般的なWebアプリケーションにおいてはPHPやJavaなど。
Web制作など限られた分野、限られた作業を行うだけであれば必要な技術も限られてきます。
最低限HTML、CSS、JavaScriptの知識があればWebデザイナのデザインを元にHTMLやCSSを書くコーダーとしてランディングページ(LP)作成案件の受注は可能だと思います。
ただし、CMSの導入からやるとなれば、WordPressなどのCMSの知識、PHP、デザイン知識、SEOの知識、DB、SQL、LinuxとApache、Nginxあたりの知識など、一通り知識が必要になります。
また、必要な技術すべての内容を暗記する必要はありません。Googleで検索して調べれば解決することも多くあります。
※ Googleで検索すればすべて答えがあるという認識は間違いです。基本的にはオーダーメイドな1点ものを作るわけですから、テクニックを調べることができても、お客様の要件を満たすための答えは自分で導く必要があります。
案件によって上記以外にも必要になる知識は当然あります。
これだけ幅広い知識を必要とするエンジニアですが、それぞれの技術は常に進化しており、過去に学んだ知識も常にアップデートが必要になります。
そのため、エンジニアは常に学習が必要と言っても過言ではない職業になります。
エンジニアの年収は?
国税庁の平均給与所得をみると全体平均で441万円程度になるようです。
情報通信業においては622万円程度になるようです。
そう考えるとIT関連の業種に従事している人の給与は比較的高いと言えますね。
なお、国税庁の調査では年収1000万円を超えている人は給与所得者全体で5%しかいないことがわかります。(以下資料の20ページ)
SNS上ではよくエンジニアは年収1000万円は簡単に稼げるという話がありますが、上述の資料からもわかるように会社員として給与を貰う場合は簡単ではないことがわかります。
また、フリーランスエンジニアの平均年収は862万円になります。(レバテック)
平均年収と表記がありますが、会社員と違ってフリーランスは経費や保険料を自己負担しますので、「年商」が正しい表記と思います。
例えば単価75万円(税込)の案件を12か月行えば売上900万円です。
経費、保険料、確定拠出年金のことも考えると、年商900万円程度で会社員の年収500~600万円程度と考えたほうが良いでしょう。
※ 会社員の方は経費や保険料を会社に負担してもらっています。会社員には給与明細には見えない利益があることを知っておく必要があります。
複数エージェント会社の案件募集内容を参照するとわかりますが、単価75万円(税込)は決して高い単価ではなく、JavaやPHPエンジニアの単価としては平均的な単価になります。
よくSNSでフリーランスエンジニアになれば稼げると言われますが、上記の通りフリーランスエンジニアも会社員エンジニアと収入にさほど大差はありません。
会社員との違いは、収入の頭打ちが会社員よりフリーランスエンジニアのほうが高い位置にあるということです。
継続して案件を受注できるのであれば、運用次第では会社員よりも大きな収入を得られる可能性はあります。
若手でスキルの高い人は年次のせいで平均給与以下となることもあり、十分な経験とスキルを持っていればフリーランスエンジニアになったほうが収入が高くなるケースもあるでしょう。
ただし、会社員と違って信用が低く、すべて自分で賄う必要がありますので、単純にフリーランスになれば良いということではありません。
特に、お客様は即戦力を必要としており、会社員を育てるのとは違い、フリーランスを育てようとは思っておりません。
フリーランスになればスキルアップできるという話もよくありますが、これは自ら進んで技術習得しなければ戦えないということを意味しております。
エンジニアになるのは簡単か?
私は、エンジニアは「簡単になれる職業」では無いと考えております。
プログラミングが少しできるようになったところで「エンジニア」とは言えないからです。
システムを開発し提供することで、あるいは様々なシステムを連携利用することで価値を創造し、「誰かの課題解決のために尽力する」のがエンジニアと考えています。
従って、プログラミング言語であるJavaやPHP、JavaScriptなどの扱いを覚えただけではまだ見習いプログラマであり、エンジニアとしての入り口に立ったばかりです。
IT企業に就職して「エンジニア」の肩書を手に入れるだけでは本当の意味でエンジニアになれたとは言えません。
お客様の声を聞き、要件を整理して設計に落とし込み、設計からプログラムを作り、要件を満たすシステムとして構築する。
上記のことができるようになって初めて一人前のエンジニアです。
プログラミングはお客様の課題解決のためにシステムを構築するための手段です。
目的は課題解決でありシステムを構築することは手段の一つでしかありません。費用対効果からExcelファイルや、Googleスプレッドシートで事足りるケースもあります。
そのため、プログラミング学習ばかりでは課題解決能力は育ちません。
課題解決能力を育てるためには実務経験が必要です。関わったプロジェクトの数、期間、お客様の数などで課題解決能力の伸びも変わってきます。
※ ロールプレイングによる学習もできますが、生の課題に比べると本当に困っている当事者が目の前に存在しないため、生の経験には劣ります。この課題解決能力を育てるのが一番難しいところです。
しかしながら、SNS上での「未経験、わずか3か月で月収50万円」などといった発信を鵜呑みにして「簡単に」稼げるという認知の歪みが生じ、さらに歪んで「簡単になれる職業」と考えている方が増えているように思います。
これらの発信には学習期間が含まれておらず、あくまでエンジニアという肩書で働き始めてから〇か月と言っている場合があり、学習期間をいれると2年以上かかっている場合もあります。
また、実際には参画したプロジェクトの他メンバーの協力があっての結果であったり、何かしらのコミュニティですでに実績のある方のサポートがあっての結果だったりします。
発信内容の表面だけを受け取り、簡単に稼げるならエンジニアになろうと安易な気持ちでプログラミングを始めてしまうと、途中で挫折しエンジニアになることを諦めてしまう方々も少なくないのではと思っております。
プログラミング学習が思うように進まない、あるいはプログラミングが少しできるようになったものの、それを使って課題解決する方法がわからず案件受注に繋げられないで挫折など。
これらはすべてエンジニアになるために必要な学習が「簡単」であると誤解されているために起きている事象と推測しております。
エンジニアは学習さえすれば誰でも手が届く職業だと思いますが、本業ではなく片手間の副業だけでエンジニアを目指そうとしている人、すぐにマネタイズの結果を求めようとする人は、一人前のエンジニアとして十分なスキル習得に結びつかず、高単価のお仕事は任せてもらえない可能性が高いです。
低単価の案件は「作業」が多く、課題解決の場面に出合うことも少ないです。
従って、「エンジニア」を目指すのであればIT企業に就職して数年間経験を積むのが良いと思います。
エンジニアになるには?
エンジニアになるためにはIT企業に就職してシステム開発経験を積むのが一番良いと考えております。
プログラミング言語の扱い方やテクニックについてはGoogle検索で解答を得ることができますが、例えばデータモデリングなどの「設計」についてはGoogleで検索したところで最適解はありません。
目の前のお客様が求めているシステムに必要な機能はシステム要件を聞いたあなたにしか解答を出せないからです。
検索しても答えのないことに対応する力を身につけるには、実務経験を多く重ねることで学ぶしかありません。
実務経験を重ねると全く同じシステムは無いにしても、過去に開発したシステムと似たような機能や要望に直面することがあり、過去の設計経験が活きてきます。
この実務経験を得るのに最適な環境はIT企業の職場だと考えています。
強制的に毎日開発業務に関わることができ、すでに幾度とプロジェクト経験を積んだ先輩社員が近くにいるため、経験者から学ぶことができる環境だからです。
フリーランスのエンジニアになりたい方も、いきなりフリーランスになるよりも会社員を経験したほうが良いと考えています。
特に比較的参入障壁の低いWeb制作を始める人が多いですが、Web制作でいきなりフリーランスになると、Web制作以外は全くできないエンジニアになる可能性があります。
フリーランスのエンジニアになりたいのに会社員になるなんて嫌だと考えている方も多いかもしれませんが、遠回りのようで会社員経験が一番の近道だと思っています。
ただし、例えば決まったシナリオに沿って値を入力して結果を記録するだけのテスターやドキュメント整理など、自身の目的とは逸れた案件に長く身をおいても、効率的なスキルアップはできないと思います。
会社内の事情もあると思いますが、機会があれば積極的にいろんなフェーズを経験しましょう。
中には10年と同じシステムの運用を続けているような人もいらっしゃいます。それ自体が悪いことではありませんが、フリーランスとして様々な企業のスポット対応を行うとなると、他のシステムを全く知らず、10年エンジニアを続けていてもスキル不足と判断されてしまう可能性があります。
最終的に特定分野のエキスパートになるにしても、最初はまんべんなく経験しておくと幅が広がり、特定分野で作業する場合にも前後のつながりがわかることで大いに役立ちます。
簡易的なものですが、IT企業へ就職するためのステップとしては以下の通りです。
- エンジニアになぜなろうとしているのか、目指すエンジニアの方向性を確認する(Web制作、スマホアプリ、Webアプリケーション開発など)
- コンピュータサイエンスを学ぶ(まずは基本情報技術者試験、欲を言えば応用情報技術者試験)
- プログラミングを学ぶ(HTML、CSS、JavaScript、SQL、Java or PHP or Python or...etc)
- 改めてなりたいエンジニアの方向性とターゲットとするIT企業を確認する
- ポートフォリオを作成する(Web制作、スマホアプリ、Webアプリケーションなど)
- 就職活動を行う(自社開発系、SIer系、SES系、Webデザイン事務所など)
エンジニアになるために重要なのは、まず自身がどうしてエンジニアになりたいのか?をはっきりさせることです。
Web制作者になりたいのか、スマホアプリの開発者になりたいのか、IT技術を用いたビジネスを行いたいのか、それらによって学ぶべきスキルセットが変わってきます。
しかしながら、初学者にとってはWeb制作やスマホアプリ開発などの仕事内容がいまいち想像できず、具体的な方向性を決めるのが難しい方もいると思います。
エンジニアとしての具体的な方向性を決めるのに役立つのが基本的なIT技術に関する知識です。
エンジニアを目指す上で基本的なIT技術に関する知識は必須です。それらを身につけるにはコンピュータサイエンスの基礎学習が大事です。
手っ取り早く全体を網羅するには国家試験である基本情報技術者試験や応用情報技術者試験などの教材を利用して学ぶのが良いと思います。
プログラミング学習する前に基本的なIT技術について理解を深めておくと、学習効率は高くなります。
ただし、国家試験は実務ができることを保証するものではありませんので、いわゆる資格マニアにならないように気を付ける必要があります。
試験テクニックを詰め込んでもあまり意味はなく、むしろ実務を行う際に思考が固くなり多方面から考えることができなくなる弊害を生む可能性があります。
また、ある程度基礎的な知識をすでに持っている方で、エンジニアの方向性に悩んでいる方は、例えばレバテックのようなエージェント会社が紹介している案件をみれば、必要なスキルやどのくらいの単価で募集しているのか確認することができます。
スマホアプリ開発の案件募集内容をみればReact Nativeであったり、Pythonであったり、Kotlinであったり、必要なスキルが記載されています。
そういった情報を元にどのくらい稼ぎたいのか、何を学ぶ必要があるのかをリサーチします。就職したい企業が決まっているのであれば、当該企業の事業内容に関連したスキルをリサーチします。
※ 自分がどういった企業で働きたいのか5社くらいに絞込みましょう。たくさんの会社に応募している人は「どこでもいい」感が履歴書などに表れてしまいますので、ここで働きたいと思える企業をしっかり探しましょう。
自分が必要とする技術について目星がついたところでオンライン教材または書籍など自分にあった学習方法でプログラミングを学びます。
例えばProgateやドットインストール、paizaといったオンライン学習サイトがあります。
CodeCampやLABOTといった企業で働く実際のIT技術者が講師として教えてくれるスクールも存在します。
※ スクール出身者が実務経験もなくアルバイトとして講師を務めているようなスクールや、就職することだけが目的のスクールは実務をこなすためのスキルセットが身につきませんので、スクール選びは情報収集を念入りにしましょう。また、スクールの利用は書籍等に比べると費用が段違いにかかります。借金してまで通うようなものでは無いので、まずは手ごろな書籍から始めることをお奨めいたします。
上記のような学習サイトや教材、スクールを利用してまずは最低限のスキルを身につけます。
最低限のスキルを身につけていることを証明するにはポートフォリオとして何かアプリケーションを作成してみることです。
加えて最低限の知識を有することを証明するには基本情報技術者試験や応用技術者試験に合格しておくとプラスになります。
ポートフォリオを作成する際に注意したいことは、就職したい企業にあわせてポートフォリオを用意することです。
例えばスマホアプリの開発をメインにしている企業に「WordPressでサイト作ってみました!」とアピールするよりも、「Androidアプリを公開しています!」とアピールしたほうが良いことは自明だと思います。
※ WordPressでのポートフォリオ作成よりは素でHTMLとCSSを書けるコーダー兼デザイナーさんのほうが好まれると思います。
※ 業務系システムの開発などを目指す人はWebアプリケーションを作成しましょう。オンライン家計簿や掲示板などを作ってみるとよいでしょう。
エンジニアになった先に何を目指すか
IT企業でプロジェクトを何度か経験することでシステム開発スキルは独りで学習を続けるよりも飛躍的に伸びていきます。
入社した企業にもよりけりですが、3年から5年程度経験すればプロジェクト期間が半年ほどの小さな案件を2,3回、1年程度の中規模案件を1,2回は経験できるのではないかと思料しております。
一通りプロジェクトの工程を学び、一人でもシステム開発できるようになればエンジニアとして十分なスキルを身につけたと言えると思います。
そうなった後に同じ企業で働き続け管理職を目指すのか、転職して別の技術を学びながらシステム開発に従事していくのか、フリーランスまたは法人として起業するのか、様々な道があります。
仮に同じ会社で働き続ける場合、別の企業へ転職する場合、年収1000万円以上の給与所得者はIT業界にかかわらず全体の5%ですから、年収の伸びはあまり期待できません。
そのため、エンジニアとして十分なスキルを手に入れた後は、貴方自身の着地点を見定めて、進む道を考えてみましょう。
家族の生活を支える十分な収入があれば問題ないのか、それとも法人を設立し、従業員を雇い、従業員の生活を支えるぐらいまで成功したいのか、どのぐらい稼ぐ必要があるのか。
もしも1000万円以上稼ぎたい場合はフリーランスのエンジニアに挑戦してみるのが良いと考えております。
IT企業でひとしきりスキルを磨いた人は、フリーランスになったとしてもエージェント会社を通して仕事を受注すれば安定して稼ぐことができると思います。
実際に私自身は会社員として最終年収は約900万円でしたが、フリーランス1年目の2019年の年商は10ヶ月で約850万円、2年目の2020年は7月末までの売上で700万円を超えております。
このままのペースであれば2020年は年商1200万円以上になる見込みであり、経費を除いても会社員の頃の最終年収とさほど変わらないぐらいになる見込みです。
SNS上では依然としてWeb制作案件が人気ですが、Web制作案件は単価が低く、SEOコンサルとしての付加価値や案件数を稼がなければ難しいでしょう。
もっとネットビジネスを学び、エージェント会社を通した仕事から個人で仕事を請け負うようにシフトしていけば年商ではなく年収として1000万円を超えていけるでしょう。
※ 準委任契約の業務委託よりも請負契約の業務委託は個人事業主にとってリスクの大きな契約になる可能性が高く、必ず自身の契約書を用意しましょう。
※ 税金や契約に詳しくなるまではエージェント会社を通した働き方を中心に経験を積むのが安全だと思います。
どうしてもフリーランスの働き方が性に合わないとなった場合は、十分に育ったスキルを持っているので、IT企業へ再就職することも可能だと思います。
まとめ
ITエンジニアになるということは、システムを開発し提供することで、あるいは様々なシステムを連携利用することで価値を創造し、「誰かの課題解決のために尽力する」ことができる人材になるということです。
システムエンジニアとは「お客様がどんなものを作りたいかを聞き出し、設計し、システム構築できるプログラマ」です。
決して「設計書をプログラマに渡して指示をするだけの人」ではありません。
エンジニアになるためには「検索しても答えのないことに対応する力を身につける」必要があり、そのために「IT企業に就職してシステム開発経験を積むのが一番良い」と考えています。
IT企業に就職するためには以下のステップで学習し、就職活動を行います。
- エンジニアになぜなろうとしているのか、目指すエンジニアの方向性を確認する(Web制作、スマホアプリ、Webアプリケーション開発など)
- コンピュータサイエンスを学ぶ(まずは基本情報技術者試験、欲を言えば応用情報技術者試験)
- プログラミングを学ぶ(HTML、CSS、JavaScript、SQL、Java or PHP or Python or...etc)
- 改めてなりたいエンジニアの方向性とターゲットとするIT企業を確認する
- ポートフォリオを作成する(Web制作、スマホアプリ、Webアプリケーションなど)
- 就職活動を行う(自社開発系、SIer系、SES系、Webデザイン事務所など)
※ オンライン教材または書籍など自分にあった学習方法でプログラミングを学びます。
※ ポートフォリオは就職したいIT企業にあわせて作成します。
エンジニアとして十分なスキルを身につけた後は、貴方自身の着地点を見定めて、進む道を考えてみましょう。
家族の生活を支える十分な収入があれば問題ないのか、それとも法人を設立し、従業員を雇い、従業員の生活を支えるぐらいまで成功したいのか、どのぐらい稼ぐ必要があるのか。
仮にフリーランスのエンジニアを目指すのであれば、最初はエージェント会社を通して案件受注したほうが無難です。
以上