画像のタイトルを入れてください

<メンティーの相談を確認して>

先日メンターとして登録しました。エンジニアの育成を生業としているIT講師、教材開発者です。主にソフトウェアエンジニアの育成を担当しております。

メンティー(サイト登録者)の方の相談案件をざっと確認し、事前に実際のIT企業の需要やそのための学習ロードマップを提示しておいたほうが良いのではないかと思い、執筆をしております。

これは無理もないことですが、相談者の方のほとんどが正しい情報を持っておらず、暗中模索のなかで学習をしていることがうかがい知れました。それで実際のIT企業の研修を担当する講師の立場から、実情を元にして初心者の方の学習ロードマップを作れればと考えました。自身の学習内容を見直すきっかけとして本記事をお使いいただければと思います。

<未経験ではエンジニア転職できない?>

現在エンジニアの不足は重大な問題となっています。未経験ではIT転職できないという記事を見かけるのですが、私の担当する案件は第二新卒のIT未経験の方々の研修であり、彼らはエージェントなどを経由して未経験転職に成功しています。この場合、事前に学習などはしておりません。そこで私のほうで序盤のエンジニア研修を行い、その後で先方の社内研修に引き継ぐようにしています。つまり答えは「いいえ、可能です」となります。

20代であれば未経験でも大手企業が採用したがっています。それが私が実際現場で見ていることです。ここで、一度エンジニアという言葉の定義を事前に確認しておきます。

<エンジニアという言葉の定義>

エンジニアという言葉は非常に幅が広いです。開発やインフラ、IT関連職のセールスエンジニアなど様々な種類があります。初心者の方、これから学習を検討される方は、身近にあるものからエンジニアということばを推測しているようです。Web制作やスマホアプリ開発などです。しかし、ソフトウェアアンジニアをめざすのにWeb関連だけを志したら機会が少なくなりもったいないです。学習時に気を付けることはなるべく可能性を広くできる学習項目を選ぶことだと思っています。

例えば以下のような記事が各社から頻繁に出ていることをご存じでしょうか。
https://car.watch.impress.co.jp/docs/news/1514831.html
記事にはエンジニアを1000名増員予定とあり、もちろん現役エンジニアだけでは追い付かないのでポテンシャル採用も前提としているはずです。

「理系」であれば応募できるのですが、エンジニアへの転職を考えたときに、自動車、制御、ソフトウェアエンジニアとつなげて考えることができる方は非常に少ないです。しかし、実際には「100年に一度の変革期」と言われいます。自動運転などのテーマもそれに含まれます。学習の開始時こそ正しい情報を元に学習項目を決め、その先の転職活動のプランを描いておくことが重要になります。

<学習ロードマップ>

上記点を踏まえたうえで、未経験者のロードマップを考えてみると、「可能性を狭めない」「学習しやすい」「汎用性がある」という条件が必要となります。例えばJavaScriptはWeb開発にのみ使う言語でなおかつフロントエンドのため可能性を狭める可能性があります(あくまで可能性です)。フロントエンドエンジニアというのはWeb制作以外にも、JavaScriptなどのプログラミング言語を扱いますが、サーバサイドの知識も必要となるケースがあります。それゆえ、サーバサイドエンジニアがフロントエンドを兼ねることがあるのはなかなか初心者には知られていません。

学習項目は以下のように考えます。

言語:Java

汎用性があり、文法が学びやすい。ほとんどの新入社員研修で採用されている。ただし、Javaエンジニアになるという意味ではなく、あくまで学習の題材である。

データベース

データベースの仕組みとデータベースを操作するためにSQLという言語、またさらにプログラミングでデータベースに命令するための方法を学ぶ必要がある。

インフラ

いわゆる「ネットワーク」に関する知識です。実はスクールで学習される方が抜けているのがこの部分であり、開発エンジニアであっても基礎的なインフラ知識が求められるのでカバーしておく必要があります。

Web制作: HTML/CSS

プログラミングはまずはHtMLから学ばれる方が多いと思いますが、こちらはざっくりで構いません。HTMLのコーダーは基本的にそれほど給与が高くないので、転職後に給与のアップを期待されるのならプログラミングや設計を扱うエンジニアになっておく必要があります。上記は必ずしも出ないと思いますが、多くのケースに当てはまります。Webデザインの方面は今回の「エンジニア」のテーマからは外しております。

Webシステム開発

ToDoアプリが自身で組めるくらいにはしておく必要があります。Webシステムの案件は多くありますが、前述のとおりソフトウェアエンジニアは幅広いのでいわゆるWebアプリだけに照準を合わせる必要はないと考えています。

<カリキュラムと期間>

画像のタイトルを入れてください

未経験のままポテンシャル採用を狙い、入社後に研修の道もありますが、私は事前に準備しておくべきだと考えます。入社後の研修は数か月間しかなく大急ぎとなるためです。また、それだけ学習しても最初の1年は実践的な仕事はなかなか任せてはもらいないものです。精神的にだいぶ苦しい思いをすることになる方もいます。事前に学習しておいて余裕を確保しておくべきです。

ではどのようなカリキュラムが必要かといいますと、私のスクールでは以下のように組んでいます。

<ソフトウェア>

1.プログラミングファーストステップ(半日)
プログラミング未経験者のためのファーストステップです。

2.Java入門(3日間)
プログラミングの基本文法を網羅し、アルゴリズムの感覚をつかみます。

3.Javaオブジェクト指向プログラミング(5日間)
開発に必須となるオブジェクト指向の概念を学びます。設計などにも必要
な考え方です。

4.データベースとSQL(1日間)
データベースの仕組みやSQLというデータベースに対する命令文の作り方を学びます。

5.Javaデータベースプログラミング(3日間)
Javaによるデータベースの操作方法を学習します。

6.アプリケーション開発(3日間)
簡単なアプリ開発と開発で必要なドキュメントに関して学習します。

7.Web制作入門(2日間)
HTML/CSS, JavaScript, PHPなどWeb制作と開発に必要な基礎知識を網羅的に扱っています。

8.Webシステム開発(3日間)
JavaによるWebシステム開発(ToDoアプリ)の方法を学習します。

<IT全般>

9.IT業界を学ぶ(1日間)
IT業界の構造や、エンジニアとの会話に必要な専門用語を学習します。

10.ネットワーク エンジニアに必要なインフラ知識(1日間)
エンジニア必須のインフラ知識を学びます。

11.システム開発の手法「(1日間)
一般的なシステム開発の手法であるウォーターフローやアジャイルなどを学習します。

12.Git/Github(2日間)
協業に必要なエンジニアのツールを学習します。ソースコードを元にもどしたり、他者のコードと合わせたりなどが可能になります。

週末や平日夕方以降じっくり時間が取れる社会人であれば3か月程度で完了できるかと思いますが、お忙しい中ですべて完了するには半年は見ておく必要があります。

<学習を見直す>

改めて上記情報を元に、独学の方は自身の用意したプラン、カリキュラムと、スクールの方はスクールの用意したカリキュラムと見比べて足りないものを補うようにしてみてください。

<転職の準備>

画像のタイトルを入れてください
とあるスクールの卒業生が皆Twitter(現X)ライクでほとんど同じアプリをポートフォリオとして提出し、各社人事の方が困惑するなどが起こっていたようですが、自身のスキルについてしっかりと証明できるものが必要になります。エンジニアの基礎的な知識の証明として、以下の資格を合わせて取得されることをお勧めしています。資格取得はモチベーションやマイルストーンにもしやすいためです。

ITパスポート試験

IT業界への就職にあたり、最低限必要な知識を網羅した国家試験です。経済産業省もIT人材の取得を推奨しています。

Java Bronze試験

プログラミング初心者が基礎スキルを証明する上でもっともメジャーな試験です。

<まとめに>

初心者に必要な考え方やロードマップをまとめてみました。より詳しいことを聞きたい方は私のプランから体験コースをお申込みください。具体的な転職に向けて学習やキャリアについて会話させてください。本気でエンジニアになりたい方はじっくりサポートしますので、ぜひともエンジニア目指して学習を進めていきましょう。