エンジニア

IT業界未経験/27歳/高卒/ニート歴6ヶ月からAWSエンジニアに転職しました。

こんにちは、にの(@ninomiya_hy)です。

僕は、2018年9月に事務職を辞めてから、6ヶ月間のニート期間を経て、2019年4月よりAWSエンジニアとして働いています。

もともとはプログラマー志望でしたが、実際に勉強してみるとクラウドやインフラもなかなか面白く、いまではむしろこちらの方が好きなくらいで、日々楽しみながら仕事と勉強に励んでいます。

割と珍しいケースかなと思い、上記内容のツイートをしてみたところ、予想していた以上に反響をいただきました。

興味を持ってくれる方が結構いらっしゃったので、未経験からエンジニアへの転職を目指している方にとってのモデルケースのひとつとなれば良いなと思い、今回は、僕がエンジニアへの転職に至るまでの経緯をご紹介しようと思います。

そもそもAWSエンジニアって?

インフラエンジニアの一種で、クラウドエンジニアとも呼ばれています。

従来であれば、サーバーや通信用のケーブルなどを準備して、物理的なインフラを地上に組み立てるのが主流でしたが、僕の場合は、Amazonが提供しているAmazon Web Services(AWS)というサービスを利用し、クラウド上にインフラを組み立てる仕事をしています(背後には、AWSが用意している物理的なインフラが存在しています)。

※「AWSを用いたインフラを構築するエンジニア」の意であり、「AWSに勤めているエンジニア」ではありません(アマゾンウェブサービスジャパン株式会社には入社していません)。もし期待していた方がいたら申し訳ありません。

クラウドのみを利用する場合は、「サーバーを搬入して、ラックに積んで、通信用のケーブルを繋いで…」といった作業をする必要は(基本的には)なく、パソコンの画面上で項目をクリックしたり設定値を入力するだけで、インフラを組み立てることができます。

また、プログラミングのようにコードを書いて実行することにより、自動的にインフラを組み立てることも可能です。実務ではこちらが主流となってきており、より短い時間でインフラを組み立てることができる、インフラの構成をコードで管理できるなど、様々なメリットがあります。

インフラエンジニアと言いつつも、プログラマーのような仕事をすることも多いので、現時点でプログラマー志望の方も、興味があれば、ぜひ色々と調べてみてください。

そもそもインフラって?

以下は、「サーバー?ネットワーク?インフラ?」という方に向けた補足です(※既によくご存知の方は読み飛ばしてください)。

アパレル業界を例に挙げると、洋服が作られ店舗で販売されるまでの間には、大枠としては以下の流れを踏むと思います。

  • 洋服のデザインや使用する生地などを決める
  • デザインをもとに工場で洋服を作る
  • 完成した洋服を「倉庫に保管する」
  • 洋服を倉庫から店舗まで「トラックで運ぶ」
  • 店舗に洋服を陳列して販売する

ここで言う、「洋服を保管するための倉庫」や、「洋服をお店まで運ぶためのトラック」などが、「インフラ」に該当します。

上の項目をIT業界に置き換えると、こんな感じになります。

  • Webサービスの画面のデザインや必要な機能等を設計する
  • 設計した内容をもとに、プログラマーがWebサービスを作る
  • 完成したWebサービスのプログラムを、「サーバーに保管する」
  • 所定のアドレスにアクセスされたら、サーバーに保管しているデータを、アクセスした人のスマホやパソコンまで、「ネットワークを通じて運ぶ」
  • アクセスした人のスマホやパソコンの画面にデータが表示される

倉庫に該当するのが「サーバー」、トラックや道路に該当するのが「ネットワーク」です。

サーバーとネットワーク以外にもインフラに該当するものはありますが、とりあえずは、「プログラムを保管したり運んだりするのがインフラなんだなぁ〜」ぐらいで認識しておいてもらえれば良いと思います。

勉強を始める前のレベル感

「事務系の職場の非IT人材の中では比較的パソコンに強い方だけれど、「Java」とか「文字コード」とか言われても、何のことかさっぱりわからん!」ぐらいのレベル感でした。詳しくは下記のとおりです。

  • 生まれてから高校を卒業するまでの18年間、最寄駅まで車で1時間かつまともな娯楽施設の存在しないド田舎で過ごした。自宅にパソコンはなく、ネット環境を得たのは高校入学時に携帯電話を買ってもらった時から。
  • 公立高校の普通科・就職コースを卒業した。就職コース独自の課程として簿記・電卓・ワープロの授業があったが、プログラミングどころかExcelすら触らなかった。
  • 高校卒業後、関西の企業に事務職として就職し、退職するまでの8年半の間、人事総務系の部署で、社内の基幹システムやOffice(Excel・Word・PowerPoint)を使った事務処理・資料作成等に従事した。
  • Excel関数(四則演算をしたり、条件に一致するかどうかで◯×を表示させたりできる機能)を活用したり、簡単なマクロ(実行ボタンを押すと自動でデータを処理したりできる機能)を、Web上にあるコードをコピペし一部改良して作成したりして、ちょっとした事務処理を自動化していた。
  • IT系の資格は一つも持っていなかったが、高校の授業でワープロを習っていたおかげで、ブラインドタッチはできた。

地頭はズバ抜けて良くはない(悪くもない…と思う)ですが、新しい仕事をキャッチアップしていくのは結構好きなタイプで、上司や同僚からは、「真面目」とか「努力家」とか「仕事好き」と言われることが多かったです。

スイッチが切れると、こんな具合に適当になるところがあるので、そんなに真面目でもない気はします…。

実際に勉強したこと

8月中旬に勉強を始めてから、2月下旬に内定を頂くまでの間に、僕が実際に勉強したことを、時系列に沿ってご紹介します。

Progate(プロゲート)

8月中旬から10月初旬にかけて、Progateという、初心者向けのプログラミング学習サービスを利用し、HTML&CSS→JavaScript→Ruby→Ruby on Rails5の順に、累計40時間ほど勉強しました。

余談ですが、僕はProgateを始めた日曜日の夜に退職を決心し、週明けには上司に退職願を提出しました。(僕なりに色々と事情があったうえでの決心ですが、この学習初期に退職を決めたのは相当に無謀だったと思います。結果的に何とかなって良かったね…みんなは絶対真似しないでね…

Progateのみを勉強してもプログラミングができるようにはなりませんが、心理的な障壁はかなり下げられるので、僕と同じくらいのレベル感の方が最初に学ぶコンテンツとしては最適だと思います。

Ruby on Railsチュートリアル

10月中旬から11月中旬にかけて、Rails チュートリアルの全14章のうち、第1章から第9章までを、累計35時間ほど勉強しました(途中でやめた理由は後述します)。

Railsチュートリアルは、Rubyというプログラミング言語のフレームワークである、「Ruby on Rails」を学ぶための書籍で、Web上に無料で公開されています。

「フレームワーク」とは、プログラミングを補助してくれるひな型のようなものです。非常に便利ですが、特に高機能なフレームワークを何も考えずに初心者が使ってしまうと、

「何が起きたのかさっぱりわからねぇが、アプリが完成しちまった…」

みたいなことが起きるので、フレームワークの内部の動きを理解することを念頭において勉強する必要があります。

Railsチュートリアルでは、プログラミングをするための環境の準備方法、関連ツールの設定方法、フレームワークの利用方法などを学ぶことができ、実際に自分の手で、ログイン機能付きの簡易版SNSサイトを作り上げることができます。

ちなみに僕は第1章に8時間を費やしました。

プログラミングをする環境の準備は、AWS Cloud9というサービスを利用したので割と簡単でしたが、第1章では他にも、

  • Git(プログラミングした内容のセーブデータを、自分のパソコンや外部のサーバーの中に保存・管理したりできるツール)
  • GitHub(セーブデータを他の人と共有したり、パソコン外部の保管先として利用できるサービス)
  • Heroku(プログラミングして作ったアプリを、ネット上に簡単に公開できるサービス)

について勉強する必要があり、僕はここでかなり苦戦しました。

上のツイートにも書いた通り、ProgateでCommand LineとGitを勉強した上で再挑戦し、なんとか乗り越えられました。

RaiseTech(レイズテック)

Railsチュートリアルを途中でやめたのは、RaiseTechというエンジニアリングスクールのJavaフルコースを受講し、Javaの勉強に注力し始めたからです。

10月中旬から2月中旬までの4ヶ月間、毎週土曜日に2時間のオンライン講義を受講し、翌週までに復習と宿題を進めていく、といった流れを繰り返しました。

カリキュラムについては、RaiseTechの公式サイトに詳しい記載があるので、詳細は省きますが、僕が受講した時点での主な特徴は以下のとおりでした。

  • プログラミング(Java)、クラウド(AWS)のコースが選択できる
  • オンライン完結型のエンジニアリングスクールで、場所を問わず学べる
  • 現役エンジニアの方のみが講師を務めているため、プログラミングやクラウドそのものだけでなく、いま現場で実際に必要とされている周辺知識も含めて学べる
  • 動画視聴ではなくオンライン講義のため、タイムリーに質問ができる
  • 就職・転職支援制度がある。運営会社の拠点が関西にあるため、特に関西圏の就職・転職に強い(グループ会社が東京と名古屋にあり、関西以外の就職・転職も可能とのこと)
  • 他社サービスを利用して就職・転職してはいけない等の制限はない

そして僕の場合は、

  • 関西在住で就職先は大阪・京都・兵庫で考えており、関西に教室があるオフライン受講型、もしくはオンライン受講型で、関西圏の就職に強いプログラミングスクールを探していた
  • 自分で新しいサービスを生み出すことにも興味はあるが、作ってみたいアプリやサービスの構想が明確にあるわけではなく、どちらかといえば、技術そのものに対する関心の方が強かった(自動化・効率化などのワードに胸が躍るタイプだった)
  • リモートワークに対する興味はあるが、強いこだわりはなかった(勤務時間がある程度フレキシブルだと嬉しいが、出社することに対して、それほど抵抗はなかった)
  • 「大手企業の大規模案件とか超面白そう!」と思っていた

といった考えを持っていたため、「RaiseTechの方針やカリキュラムは自分に合っているな」と感じ、受講を決めました。

RaiseTechに関する情報は、RaiseTechの公式サイトの他、運営兼講師であるエナミコウジさん(@koujienami)や、公式アカウントのテッくん(@RaiseTech_Info)が発信されているので、興味のある方はチェックしてみてください。

書籍

RaiseTechの講義と並行して、以下の書籍を読みました。

  • スッキリわかるJava入門
  • スッキリわかるJava入門 実践編
  • Webを支える技術
  • マスタリングTCP/IP 入門編

「スッキリわかるJava入門」と「スッキリわかるJava入門 実践編」は、タイトルが示す通り、Javaの入門書です。RPG(ロールプレイングゲーム)を題材として、Javaプログラミングの基本やオブジェクト指向について、多数のイラストとともに解説されています。「例えがわかりづらい」と感じる方もいるようですが、個人的にはとても分かりやすかったです。

「Webを支える技術」は、Webの成り立ちや、HTTP、URI、HTMLなどの、Web上のやり取りに利用される決まりごとについて解説されています。やや難しいですが、エンジニアとして重要な基礎知識を、歴史的な背景から順を追って学ぶことにより、理解を深めやすくなっています。

「マスタリングTCP/IP 入門編」は、サーバーやネットワークの内部の仕組みについて解説されています。この4冊の中では最も内容が難しいですが、TCP/IPは、Webを支える技術で学べる内容と同様に重要な基礎知識であり、これを知ることでWebの見え方が大きく変わるので、ある程度学習が進んだ方には、ぜひ読んでみてほしい書籍です。

Udemy(ユーデミー)

Udemyは、ITに限らず、様々な分野の学習用動画コンテンツが販売されているサイトです。こちらについても、RaiseTechの受講と並行して、以下の講座を勉強しました。

「もう怖くないGit!チーム開発で必要なGitを完全マスター」は、Gitの仕組みをイラストで理解した後に、実際に手を動かして勉強することができる講座です。控えめに言って超分かりやすいです。これを知らないと現場によっては仕事にならなかったりするので、特にプログラマーを目指している方にはお勧めです。

「手を動かしながら2週間で学ぶ AWS 基本から応用まで」は、AWSのサービスを実際に手を動かしながら学べる講座です。ネットワークを組み立てたり、サーバーやデータベースを設置したり、アクセスを複数のサーバーに分散させたり、怪しいアクセスが無いか監視したり、Eメールを送信したりなど、様々なサービスを一気に学ぶことができます。僕はコミットからデプロイまでを自動化するカリキュラムが一番楽しかったです。

コードの実行によるインフラの自動構築についても紹介されており、主要なサービスは概ね押さえられているため、初めてAWSを勉強する方にお勧めの講座です。インフラに関する知識もある程度身につくため、プログラマーを目指している方も受講しておくと役に立つと思います。

【後日追記】「手を動かしながら2週間で学ぶ AWS 基本から応用まで」は、販売が終了してしまいました。近しい内容の講座としては、こちらが人気なようです。

どうやって就職先を見つけたのか

1月下旬から2月上旬にかけて4社を訪問し、1社から内定をいただきましたが、希望していた条件との乖離があり、やむなく辞退しました。

その後、RaiseTechの就職・転職支援制度を利用し、2月中旬に面接を受けたSES企業からAWSエンジニアとして内定をいただき、こちらの企業への就職を決めました。

RaiseTechではAWSフルコースを受講していない僕を、AWSエンジニアとして採用していただいた理由については確認できていません(なんだか恥ずかしくて、いまさら聞けない…)が、恐らく以下の一部、もしくは全部が理由だと思います。

  • Javaフルコースでプログラミングや実務で使われている周辺知識について学んでおり、エンジニアとしての基礎がある程度できていると評価された(AWSエンジニアにはプログラマー寄りの知識もある程度必要)
  • Javaフルコースで自動化(CI/CD)について学んでいたことが評価された(AWSエンジニアにとって自動化(CI/CD)の知識はかなり重要)
  • Udemyの「手を動かしながら2週間で学ぶ AWS 基本から応用まで」の講座を通じて、実際にAWSのアカウントを取得し、サービスを利用した経験があることが評価された
  • シンプルにRaiseTechの就職・転職支援の営業力がすごかった

一番最後だけだったら泣く。

【後日追記】↑とのことでした。泣かずに済みました。

「CI/CDって何?」という方は、手前味噌ですが、丹精込めて作った僕の人生初LT(ライトニングトーク。勉強会などで実施する5分程度のプレゼン)の資料をご覧ください(IT業界未経験の方向けに作っています)。

なぜJavaではなくAWSを選んだのか?

ここまで読んでいただいた方のうち、何人かの方は、

「最初はJavaを勉強してたのに、何でAWSエンジニアに転職してんだコイツ…?」

と、不審に思われた方もいらっしゃるでしょう。まとめるとこんな感じです。

  • Udemyの「手を動かしながら2週間で学ぶ AWS 基本から応用まで」の講座を学んだ時に、AWSの虜になった(「JavaじゃなくてAWSのコースを受講しておけば良かった…」と思っていた)
  • 業務系の企業も面白いけれど、将来的に別分野の企業に興味が出てくる可能性を考慮すると、JavaよりもAWSを勉強しておいた方が選択肢がより豊富なのでは?と考えた
  • RaiseTechの就職・転職支援の運営から、タイミングよくAWS案件の情報が流れてきたので、速攻で手を挙げた

一言で言うと、「スクールで勉強したこと、自分で勉強したこと、興味、案件情報のタイミングの全てが完璧にハマったから」です。「運も実力のうち」ですね。

おわりに

だらだらと書き綴ってしまいましたが、僕の転職に至るまでの経緯は以上です。最後に、実際に学んだ項目を一覧で再掲しておきます。

学習サービス、Web書籍、スクール

技術書籍

Udemy

僕は結果的にAWSエンジニアに転職できましたが、内定をいただいた時点のレベル感は「AWSの概要がちょっとだけ分かるJavaエンジニア見習い」でした。

内定をいただいてから、割と必死にインフラやAWSについて勉強したので、何とか仕事になっています(と信じたい…)が、ServerSpecやAnsibleなどのインフラ系のツールの知識が全くなくて若干苦労しています。

僕自身は、AWSに関しては独学でAWSエンジニアに転職したので、必ずしもスクールに通う必要はないと考えていますが、これからAWSエンジニアになりたいと考えている方がいらっしゃれば、上記のインフラ系のツールの知識も学べるRaiseTechのAWSフルコースの受講も、選択肢のひとつとして検討してみるのも良いと思います。

プログラマーになりたい方は、上の一覧のJava関連の項目を、ご自身が目指している企業や業界で採用されているプログラミング言語に置き換えて頂ければ、インフラの知識も含めてバランス良く学べるのではないかな、と思います。

この記事の中でよく分からなかったことや、聞いてみたいことなどがあれば、僕のTwitter(@ninomiya_hy)にご連絡をいただければ、お答えできる範囲で良ければ返信しますので、お気軽にどうぞ。

続編はこちら=>非IT業界からクラウドエンジニアに転職して1年が経過しました。