見出し画像

【25卒】 私がAWS からオファーをもらうために学んだスキル(技術編) 【IT就活】


※ 注意点
今回この記事内で述べる内容は、あくまで個人の主観に基づくものであり、必ずしも万人に当てはまるとは限らないことにご留意ください。

また、選考プロセスに関する情報公開は禁止されているため、記事内において一部不鮮明な説明に止めざるを得ない箇所があることをご理解頂きながら読み進めていただますと幸いです。




0. はじめに

皆さん、こんにちは。おむらいすです。

今回の記事の内容は、私が 25 卒として就職活動を行い、その結果オファーをいただけた企業のうち、他の企業と比較した際の「選考過程におけるプロセスの特殊性」や「IT業界内での会社の注目度」等を鑑みて、皆さんからの記事作成に関する要望が特に多いと思われる企業の 1 つ、 AWS Japan の選考で求められるスキルに関するものとなります。

オファーをいただくまでに私が行なったこと、選考を通じて求められるスキルを身につける上にあたって役立つ書籍等に関して、個人の経験をもとに共有させていただけたらと思います。

なお、冒頭でも申し上げたように、選考過程に関する情報公開は禁止されているため、選考の具体的なプロセスやその内容に関して、本記事内で記載することはできかねること、ご了承ください。

本記事内で紹介する情報は、全てインターネット、書店等で販売されている書籍等を通じてパブリックにアクセスできるものとなっています。本記事を通じて得られる、これらの情報源を生かし自身のITスキルを高め、もし選考に臨まれる際には、個々人の能力を最大限発揮できるようなことに繋がれば幸いです。

この記事に対して良いフィードバックをいただけるようでしたら、私がオファーをいただいた他のIT企業に関しても同様の記事も作成しようと思うので、ぜひよろしくお願いします!


1. 選考にあたって求められる 2 つのスキル軸

皆さんは新卒時の就職活動におけるプロセスに関して、どのような理解をされているでしょうか?

ほとんどの方は、以下のようなフローに沿って選考プロセスが進むと認識されていると思います。

ES(エントリシート)→SPI(Webテスト)→GD / 個人面接(複数回)→ 内定!

実際、この理解は概ね正しいです。一方で、独自の専門的な能力が求められる業界においては、選考過程の中で特殊な課題や選考プロセスを採用しているということも少なくありません。

例えば、コンサル業界における選考プロセス内では、「ケース面接」と呼ばれる、特定のビジネス課題に関する解決案を、何らかの論理的な根拠に基づいて面接官に提案する形式面接が行われることが多く、コンサル業界を希望する学生たちの間では、それに向けた独自の対策を行うことが常識となっています。

そして、IT業界に関しても同様に、いくつかの外資系IT企業における選考では、「コーディング面接」と呼ばれる、ある技術的な課題に対して、面接官とのディスカッション等を通じながら、プログラミングを用いた実装を行い、できるだけ品質の高い解決案を提供するといった形式の面接が有名です。

上では、幾つかの限られた企業における事例を紹介したに過ぎませんが、実はこの事例に限らずIT業界は、応募の時点でITスキルの保有を前提としている企業群と、そうではない企業群に大別されます。入社後の業務内容及び企業の社員育成方針に応じてこのような違いが生まれていると思われますが、ここで注意しておきたいのは、仮にあなたの志望する企業が前者に属する場合、選考に向けてそのための準備をしておかなくてはならないという点です。

今回紹介する AWS Japan においても、上記のようなコーディング面接が行われることはないながらも、応募の時点である程度のITスキルを前提とした、特殊な選考プロセスをとっています。(具体的な選考プロセスに関して記載することは守秘義務上控えさせていただきます。申し訳ございません。)

したがって、この企業の選考に臨む場合、それに向けた独自の対策をとっておく必要があります。そのためには、筆者は以下の 2 点の観点から独立して選考対策を行うことが必要であると考えています。

  • 技術スキル

  • 面接スキル

本記事はそのうちの 1 番目の記事であり、前者の

  • 技術スキル

の対策法に関して、自身の選考プロセスにおける経験を踏まえながら紹介させていただけたらなと思います。

それでは、早速本題に移ってゆきましょう!


2. IT分野に関して求められる技術スキル

2-1. IT全般分野に関する基本的なスキル

AWSは言わずと知れた世界トップクラスのIT企業ということもあり、選考において求められる基準も高いです。そのため、新卒採用と言えども全くのIT未経験という状態で選考に望むことは望ましいとはいえないです。よって、新卒採用の段階であっても,ある程度の基本的なIT分野に関する知識を身につけた元で選考に臨む必要があります。

では、どの程度の水準の知識が求められるのでしょうか?

結論としては、具体的に求められる知識水準として、IPAの実施する「応用情報技術者試験」程度のレベルを理解しておけばいい、という認識でいると良いです。

参考までに、勉強に役立つ参考書を 1 冊紹介しておきます。

一般に外資系IT企業の選考は学部 3 年・修士 1 年の夏〜秋ごろから始まることが多いので、学部 3 年・修士 1 年などの、本格的にインターン等の応募が激化する前の春期試験のタイミングで、選考対策を兼ねて資格を取得してしまうのが効率的でおすすめです。(筆者もこのタイミングで取得しました!)

 1 つ注意点ですが、勉強をするにあたっては「ただ教科書を流し読みして問題を解く」という試験の合格のみを目的としたような一過性の勉強ではなく、今後も役立つ、知識として残るような勉強を行うことが大切です。試験に合格するだけであればそれでも良いですが、あくまで最終的な目的は選考対策であること、すなわち、選考プロセスを通じて自身のITに対する広範なリテラシーの有無を面接官に示せるようになるというゴールを忘れないようにしましょう。

具体的な知識の定着の確認手段としては、「各ページに記載されている語句をソラで 1 人で説明できるか」というのがオススメです。例えば、適当に開いたページに「NAT」という単語があった場合、「NATの定義+それが活用されるシチュエーション+セキュリティ上のメリット+AWS上での活用例」等に関して説明できるようになると望ましいでしょう。

コツとしては、頭の中に仮想的な面接官を仮定して、その人に向けてわかりやすい説明を行う訓練を積むイメージです。不思議なことに、ただ教科書を見るだけではなくそこで学んだ事柄を自分の言葉で説明することで、自然とその事柄に関しての理解が進むということが多々あります。もし、他にも選考を受けられる友達等がいれば、一緒に単語説明クイズを出し合って、理解を深めあうのも良いでしょう。仮に選考プロセス自体でここで得た経験を生かせずとも、他社の選考等で他の候補生とのリテラシーの差をアピールし、差別化につながることは間違いないです。意欲的に学習に取り組むことをお勧めします。

基本的には、上の水準の知識があれば問題ないと思いますが、専門的な部分領域に関してより知見を深めたいと思われた方に向けて、筆者が読んで面白いと感じたオススメの書籍をいくつか紹介してこの節を終えたいと思います。
ネットワーク系

インフラ系

Webプログラミング系

データベース系

セキュリティ系

2-2. サービスの構築に求められる基本的なプログラミングスキル

前節において紹介した基本的なITスキルを学ぶことができたら、ITに関する土台は整ったといえるでしょう。しかし、実際にサービスを構築するとなると、知識だけでなくプログラミングを通じてコンピュータに自身の意思を伝達する必要があります。そのため、プログラミングスキルも重要です。

情報量の都合上、プログラミングのスキルの習得方法に関してまで言及することはことはできませんが、簡単なコマンドラインの作成、Webサーバーの構築、ローカル環境用のファイル管理用ソフトウェア等、題材は様々考えられると思うので、自身の好きな言語で簡単なプロジェクトを作成してみるとよいでしょう。

プログラミング未経験の方は、以下のような競技プログラミングのサイトで、簡単めの問題(AtCoder Beginner Contest の A-B問題レベルなど)を解きながら、自身の理解度を確認しつつスキルを上げてゆくのがいいと思います。 1 つの目安として、茶色ランク到達くらい(Rating 400 程度)ならば、実力としては十分です。

ある程度プログラミングの経験がある方は、実装の可否というレベルは超えて、チーム等で開発するために、保守性や可読性の視点からの自身のコード品質の向上について意識する必要があると思います。今以上にコードの品質を改善することができないかという疑念を持ちながらリファクタリングを繰り返すことで、よりよいコードに昇華することができる上に、自身のスキルの向上につながるはずです。

以下にコード品質の観点から書かれたおすすめの書籍を 2 冊紹介します。いずれも神書籍で、この 2 冊の本に書かれていることさえ守れば今後困ることはないと思っています。(筆者も、リファクタリングの際にこれらの本に記載されている内容をマネするようになってからは、ある程度まともなコードを書けるようになりました。先人らの偉大なる知恵に感謝!)

2-3. AWSを活用したシステムデザインに関する基本的なスキル

 2-1 節、 2-2 節にわたって紹介してきたITに関する基本的なスキル、それを適用するためのプログラミングスキルを身につけることができたら、いよいよそれを組み合わせて、サービスを構成する段階に差し掛かったといえるでしょう。

そして、AWSはそのためのプラットフォームをオンライン上で適用するためのサービスであり、それを実現するための豊富なサービス群が提供されています。

実際のインフラシステムが、AWSのサービスを組み合わせてどのように構成されているのかを理解するために、AWSのアーキテクチャ図について、公式ページで提供されている内容に沿って学んでみることをオススメします。この他にもインターネットでググればたくさんの設計例が出てくると思いますので、それらを通じて構成法について学ぶととても勉強になります。以下の資料にもある通り、アーキテクチャ図の作成には正解はないとのことなので、用途や目的に応じて自由にデザインしよう!くらいのイメージでいいと思います。

時間に余裕があれば、実際にシステムアーキテクチャに関してデザイン図を作成するのも勉強になります。例えば、以下のようなシステムデザインを作成するためのサービスを用いて、自分で実際にシステムデザインについて間違ってもいいので作成してみることで、より理解が進むと思います。

さらに時間に余裕があれば、以下で提供されている教材を参考にして、ハンズオン形式で実際にプロダクトを動かして勉強するのもオススメです!(注:難易度は高めで、若干オーバーキル感はあります

上の内容が難しいと感じる場合は、以下の書籍を通じた演習もオススメです。
AWSで提供される主要なサービスに関して、言葉による説明だけにとどまらず実際のWebポータル上での操作画面も併せて紹介してくれているため、これまでAWSを操作したことがなくても、教科書通りに操作を真似することで演習経験を積むことができるという点で入門者向けです。

IT分野における知識の習得には、どうしても手を動かして色々試してみる経験が必要だと思います。システムに関する構築経験も例外ではなく、教科書等でAWSの提供する主要なサービスについて学んでも、実際に動かしてみないとその凄さも面白さも分かりにくいと思います。

なお、サービス使用時にかかるコストに関してですが、AWSで新たにアカウントを作成すると、幾らか無料枠でのサービス利用が可能となっており、それを利用するだけで大体のサービスを(制限付きではありますが)無料で使用することができます。ただ、いくつかのサービスは有料のみでの提供となっており、加えてその課金方式もサービスによってまちまち( 1 時間単位での課金であったり、一度使用したら 1 ヶ月は解約できない、等)なので、使用の際は十分コスト面での負担を調査してから使用するようにしてください。

何も考えずに適当にサービスを使用していると、法外な請求が送られてきて腰を抜かすことになりかねません。使い終わったサービスは忘れずに削除する習慣をつけましょう。(筆者の場合、どうせ無料枠に収まっているだろうと、調子に乗って「何も考えず使用&作成した後もほったらかし」していたら、月末に 20 ドルの請求書が送られてきて、円安の影響もあり悲しみに打ちひしがれました。)


次回予告

ここまで読んでくださり、ありがとうございます。

さて次の記事にあたる、

【25卒】 私がAWS からオファーをもらうために学んだスキル(面接編) 【IT就活】

に関する予告になりますが、就職活動における選考過程において、最も重要な

  • 面接スキル

に関するもので、外資系テック企業で求められる行動面接にフォーカスした記事の予定です。

それでは、次回の更新をお待ちください!<(_ _)>

この記事が参加している募集

就活体験記

この記事が気に入ったらサポートをしてみませんか?