編集長
2019年7月にプログラミング学習を開始し、2020年1月から就活を行っていた自分ですが、つい先日、とあるWeb系自社開発企業さんからエンジニアとして内定をいただく事ができました。

 

僕自身、完全未経験からの挑戦という事でとても苦労する部分もあったため、同じく未経験からエンジニア転職を狙う方たちに向けて少しでも参考になればと思い、記事を書いていきます。

 

筆者のスペック

  • 27歳(1992年生まれ)
  • 学歴はそこそこ(早稲田大学)
  • 職歴無し(学生時代に始めたアフィリエイトや投資が上手くいったので、就活はせずに個人人業主として数年間活動)
  • 地頭は特別良いわけではない(ただし努力量に関しては人並外れた自信あり)

 

まず最初に、筆者がどんな人間なのかを軽く紹介しておきます。

自分は割と特殊な経歴を持つ人間でして、世間一般で言われる「一流大学」を出ていながら、就活は一切せずに卒業後の数年間はアフィリエイト(Youtube・ブログ)や投資(FX・株・仮想通貨)などで生計を立てていました。

 

具体的にエンジニアになりたいと考え始めたのは2019年6月下旬です。

これまで、勢い任せの行き当たりばったりな手法で生きてきた僕ですが、30代を目前にしてさすがに危機感のようなものを覚えるようになりました。

 

アフィリエイトも投資も、上手く行っている時はそれなりに稼げましたが、ダメな時はとことんダメだったんですよね。たとえば、Googleのアルゴリズムがアップデートされてブログの検索順位がガラリと変わってしまったり、バブルが弾けて市場が途端に盛り下がってしまったり。

 

こんなご時世ですから、何も「絶対的な安定」を求めているというわけではありません。ただ、それでもやはり一つくらいは確固たる収益の柱が無いとこの先やっていくのは厳しいなと思い、この先需要が高まると言われるエンジニアに興味を持つようになったのです。

 

色々考えた後、2019年7月よりプログラミングの学習をスタート。

幸いな事に、知人の中に現役エンジニアとして活躍中の方が居たため、何をどう勉強していけば良いのかアドバイスをいただきつつ、知識ゼロの状態から手探りで進めていきました。

ちなみに、巷で流行っている「○○テック」のような大手プログラミングスクールへは一切通っていません。

具体的な学習内容

  • 1ヵ月目:HTML、CSS、Web技術
  • 2か月目:Ruby、SQL、Git
  • 3ヵ月目:Ruby on Rails、Rspec
  • 4ヵ月目~6ヵ月目:ポートフォリオ作成

 

ザックリと表すならこんな感じで学習を進めていきました。

 

最初の3ヵ月間はとにかく基礎的な部分の勉強ですね。HTMLなどのマークアップ言語やRubyなどのプログラミング言語を身に着け、まずは簡単なWebアプリを作れるようにしました。

で、4ヵ月目からは就活に向けたポートフォリオの作成に着手。正直、まだまだ学習が不十分な部分もありましたが、「ある程度インプットしたらもうどんどんアウトプットしていった方が最終的な知識の定着率は高い」というのが持論なので、とにかく手を動かす事にフォーカスしていきました。

HTML&CSS

「HTML5/CSS3モダンコーディング」

 

HTML・CSSの学習に使用したのがこちら。正直、この辺に関してはどれを使ってもそこまで大きく変わる事はないと思いますが、中でも有名なこちらを選びました。

Web技術

「イラスト図解式 この一冊で全部わかるWeb技術の基本」

 

意外と疎かになってしまいがちな部分ですが、Web技術の基本についてもしっかりやっておくべきだと個人的には思います。

私たちが普段パソコンで見ている画面がどのようなプロセスを経て表示されているのかを詳しく解説してくれるのがこちら。

getとpostの違い、Webサーバーとアプリケーションサーバーの違い、Cookieの仕組みなど、エンジニアを目指すのであれば絶対に知っておかなければならない事を見開き2ページで完結に説明してくれます。

専門用語も多いため、1回読んだだけでは腑に落ちない部分もありますが、何回も読み込む事で徐々に理解できていくので定期的に読み直したい一冊。

Ruby

「プロを目指す人のためのRuby入門」

 

非常にわかりやすいと評判のRuby入門書。著者の伊藤淳一さんは「Qiita」などのサイトでも小まめに情報発信をされている方です。

結構なボリュームがありますが、「プロを目指す人のための」という記述通りハイレベルな内容のものまで含まれているため、これを一冊極めれば他の書籍は必要無さそう。

SQL

「SQL | プログラミングの入門なら基礎から学べるProgate」

 

Ruby on RailsでWebアプリを作成する場合、ActiveRecordで何となく感覚でデータべースを操作できてしまいますが、SQLについても一応学んでおきました。

自分はプロゲートでサクッと終わらせてしまいましたが、後で時間のある時に分厚い本を一冊ガッツリやろうと思っています。

Git

「もう怖くないGit!チーム開発で必要なGitを完全マスター」

 

1人で開発している分にはあまり使わないという方もいるかもしれませんが、将来的にエンジニア転職した場合、ほぼ必ずチームとして動くはずなので、Gitを使った開発フローについても学んでおくべきでしょう。

ブログやQiitaなど無料で閲覧できる情報でも十分に操作できるとは思いますが、自分はより体系的に学びたかったのでUdemyで評判の良いこちらを購入しました。

Ruby on Rails

「基礎Ruby on Rails」

 

表紙から伝わる質実剛健なイメージ。特筆すべきような点はあまり無いですが、とにかく基礎的な部分をわかりやすく説明してくれています。

一冊通して作業すると一つのアプリケーション(草野球チームのメンバー管理アプリ)が作れるようになるので、わからないところがあってもとりあえず手を動かすと良いかも。

Rspec

「Everyday Rails - RSpecによるRailsテスト入門」

 

これ、結構な割合でサボっている人もいますが、テストについてもしっかり学んでおいた方が良いです。中にはテストについてほとんど学ばないプログラミングスクールもあるようなので、ここでしっかりやっておく事で他のライバルたちとの差別化を図る事ができます。

 

Ruby on Railsの場合、デフォルトで「minitest」というテスティングフレームワークが入っていますが、「Rspec」の方がより凝ったテストができるほか、使用人口も多いみたいなので、Rspecを習得しておいた方が後々役に立つかなと個人的には思います。

ポートフォリオ

https://github.com/kazama1209/ramen-quest

 

自分が作ったポートフォリオはこちら。ラーメンに関するレビューサイトです。特に目新しい機能はありませんが、その分基本に忠実でこれまでに学んだ事を網羅的にアウトプットできたかなと思います。

一見地味でも、実はCircleCiと連携して自動テスト&デプロイできるようにしていたり、rubocopやbrakemanなどのgemを使ってコードの品質チェックを行っていたり、見えない部分で結構頑張りました。

 

 

とまぁ、学習内容についてはこんな感じですね。見ればわかるように、特に裏技的な方法があったわけではありません。エンジニアになるために必要とされている事を素直に勉強しただけです。

教材についても市販されているもので十分に足りたので、プログラミングスクールに通えず独学で何とかしたいという方は参考にしてみてください。

就職活動の戦績

お待たせしました。就職活動についてです。やっぱりここが一番気になるという方も多いのではないでしょうか。

というのも、実際に就活中の方であれば身に染みて感じると思いますが、未経験の状態からエンジニアになるというのは非常に難しい事なんですよね。

ネット上では「IT業界は人材不足だからエンジニアは引く手数多」なんて言われていますが、あれはあくまで「(経験のある)エンジニア」であって、「(未経験の)エンジニア」ではないのです。

 

SESみたいな働き方であれば未経験でも普通に行けるみたいですが、自社開発や受託開発といった最近人気の企業の場合、一気にハードルが高まります。

さらに言うと、RubyおよびRails学習者の場合はより厳しい戦いになると思われますね。プログラミングスクールブームの影響もあり、同じような未経験エンジニア志望がたくさんいるためです。

実際、僕も非常に苦労しまして、1月上旬に就活をスタートし、3月になってようやく内定をいただけたので、およそ2ヶ月間の長期戦となりました。

エントリーのために使った媒体

  • Wantedly
  • Green
  • doda
  • type
  • Indeed
  • 企業HP(直接応募)

 

自分の場合、上記のようなサイトから「Rails」などのキーワードで絞り込んで検索していきました。

複数挙げていますが、基本的にはWantedlyからの応募が一番多かったと思います。やっぱりワンクリックでエントリーできるというのは手軽でしたね。

 

GreenやdodaなどはSESの求人が多かったり、ベテランエンジニアのみの募集が目立ったり、あまり自分と条件が合わなそうなところもあったので時折チェックするくらいでした。

 

あと、意外に良いなと感じたのが企業HPから直接応募するという方法。求人サイトに載せていなくても実は人材募集している企業さんも中には割とあって、探すのには苦労しますが、Wantedlyのように応募者が殺到する事も無い分、返信率は高めな印象を受けました。

「Rails エンジニア 募集」などで検索をかけ、後ろの方のページまで隈なく探してみると各企業の採用ページに飛べたりします。

実際の戦績

  • エントリーした数:34件
  • 何かしらの返信をもらえた数:14件
  • 選考まで進めた数:7件
  • 内定の数:2件

 

就活の最終的な戦績はこんな感じでした。ね、厳しいでしょう?(´;ω;`)

 

先述のように僕はWantedlyでの応募が中心だったわけですが、手軽にエントリーできる分、返信をもらえる確率もやや低めで、何も音沙汰が無いなんて企業もザラにありました。

さらに厳しい現実として、もし仮に返信が来たとしても、それが選考へ進むための連絡であるとは限りません。

一応、プロフィール欄はしっかりと長文で埋めていたものの、「未経験」というワードのせいで「現在、未経験者の方にご案内できるポジションがございません」と門前払いを食らった事も多々あります。

 

結局、30社以上応募して実際に選考までこぎつけたのはたったの7件…。うち、内定をいただけたのは2社と非常に厳しい戦いとなりました。

 

ちなみに、選考方法としては

  • カジュアル面接→1次面接→2次面接→最終面接
  • カジュアル面接→インターンとして試用期間後に採用を決定
  • カジュアル面接→技術試験&行動特性診断→面接
  • カジュアル面談→自宅で技術試験→面接

 

など企業によって様々な形式がありましたね。

エンジニア転職を通じて思った事

ここからは、2020年1月~3月というタイムリーな時期に就職活動を行った自分だからこそわかる就活事情や今後未経験からエンジニア転職を狙う上で行うべき対策などについて書いていきたいと思います。

もっと早く就活を始めるべきだった

まず、何よりも強く感じたのがこちら。昨今におけるプログラミングブームもあってか、同じく未経験からエンジニア転職を狙うライバルの数がめちゃくちゃ増えてます。

当たり前ですが、母数が多くなれば競争率も上がるわけで、未経験エンジニアにとっては今後ますます厳しい戦いになるでしょう。

実際、僕は未経験エンジニアが集まるミートアップやイベントなどに何度か参加させていただいたのですが、そこで出会う方の多くが「想像以上に就活が上手くいかない」「早いところ勝ち逃げしたい」と嘆いていました。

 

時間が経てば経つほどこの流れが強まる事は間違いないので、もしエンジニア転職をしたいのであればなるべく早めに就活を始めた方が良いと思います。自分ももう少し早くから就活を始めるべきだったとめちゃくちゃ後悔しました。

他プログラミングスクール生との差別化を図る事が大事

これは実際に訪問した企業の面接官から直接聞いたお話なのですが、中には「プログラミングスクール生」と聞いただけで若干の拒絶反応を示してしまうような方もいるようです。

その理由としては、「ただ言われた通りに学んできた感が強く主体性に欠ける人が多い」「カリキュラムの一環で作っただけの似たようなポートフォリオばかり持ってくる」といったものが挙げられていました。

 

もちろん、全員が全員そうとは限らないでしょうが、全体で見た場合はやはりそういった人物像の方も多いのでしょう。単純にスクールが流行りすぎているというのも要因の一つですね。

エンジニアとして働く以上、高い自走能力が求められるでしょうから、自分の頭でしっかりと考え工夫のできる人間でなければ内定をいただくのは難しいと思います。

 

「毎日のようにメルカリやインスタグラムを模倣した同じアプリが送られてきてもうウンザリしている…」と言っていた面接官の顔はかなり印象的でした。

 

別にプログラミングスクールをディスりたいわけではないのですが、一部ではそんな見方もあるので注意という感じですね。

もし今現在プログラミングスクールに通われているのであれば、カリキュラムで学んだ事以外にも自分なりに工夫した技術をポートフォリオへ取り入れるなど、なるべく他との差別化を図るように心がけましょう。

Wantedlyはかなりの激戦区

僕自身、Wantedlyを使って内定を獲得した人間なのでこんな事を言うのもどうかと思うのですが、今後の流れとして、Wantedlyを主戦場にし続けるというのは賢明な選択と言えなくなるかもしれません。

先ほども少し触れたように、Wantedlyはワンクリックで手軽にエントリーできるという事もあり、エンジニア転職を目指す人たちの間で非常に多く利用されています。

 

昔はWantedlyといえば「穴場」的な位置付けだったみたいですが、最近だとテック系インフルエンサーがこぞって推奨している事もあり、Wantedlyメインで就活をしている人もたくさんいるでしょう。(自分もその一人でした。)

何度も繰り返しになりますが、同じ事を考える人間が増えればそれだけ競争は熾烈になります。実際、良さげだなと思ったページを開いてみるとすでに数十エントリーもされていたりする事もザラで、そんな中で確実に勝ち抜いていける自信はありませんでした。

 

「じゃあどの媒体を使えば良いの?」と聞かれたら現時点でコレと言って浮かびませんが、先述のような「企業HPから直接応募」も選択肢の一つに入れてみると良いかもしれません。

中には「Wantedlyに載せると質の悪い応募者ばかり来るから…」とあえて掲載していない企業もあるみたいですし。

確かに、未経験者が「とにかく数を打て!」と言わんばかりに乱れ打ちエントリーしている様は企業側から見るとあまり良い気分ではありませんよね。

 

あとは最近流行りの「Twitter転職」なども試してみると良いかも。

 

Wantedlyが依然として有効な場である事は間違いありませんが、長い目で見た場合、「皆がやっている方法」で戦うのが厳しくなるのは明らかなので、広くアンテナを張りつつ他の方法も模索していきましょう。

ただ単に作っただけのポートフォリオは評価されない

未経験の場合、ポートフォリオの存在がめちゃくちゃ大事になってきます。良質なポートフォリオを作ったからといって必ずしも内定を獲得できるとは限りませんが、ポートフォリオの出来が悪い場合は高確率で落ちるでしょう。だって、それしか技術的にアピールできるポイントが無いんですから。

エントリーの際にGithubアカウントの提出を求めている企業も多いので、しっかりと返信をもらって選考へ進むためにも、まずは面接官の目を引くようなポートフォリオを作る必要があります。

 

ここで一つ注意したいのが、ただ単にそれっぽいアプリを作るのでは不十分であるという点。たとえば、Railsチュートリアルで作れるようなTwitter風アプリなどはまさにそれですね。

「CRUD機能を実装しました」とか「ログイン機能を実装しました」とか、そんな当たり前の事をアピールしても残念ながら評価はしてもらえません。

 

じゃあどうすれば評価してもらえるのか。その答えは企業によって異なるでしょうが、重要なのは「ちゃんと自分の頭で考え抜いた上でコードを書いたかどうか」だと個人的には考えています。

 

少しフワッとしているのでもう少し具体的に。たとえば、僕の例で言えば、何よりも「運用」を意識したポートフォリオ作りを心がけました。

現実的にはあり得ない話ではありますが、面接時、もし仮に「このアプリ、めちゃくちゃ良いっすね!すぐにでも弊社でリリースしましょう!」と言われた場合でも即OKできる状態に仕上げておこうと思ったのです。

 

そのために、

  • admin状態のユーザーだけがアクセスできる管理画面
  • ユーザー登録時のメールアクティベーション機能
  • サイトマップやメタタグなどを用いたSEO対策
  • DoS攻撃などに備えたセキュリティ対策
  • 万が一例外が発生した場合の通知機能(Slackへ送信)
  • 各種APIを利用した便利機能(ソーシャルログインやGoogleマップなど)

 

といったより実戦的な機能を続々と追加していきました。

こういった機能って、なかなかチュートリアル系の教材には含まれていませんよね?でも、実際に一つのサービスを提供していくとなった場合はどれも必要なものだったりします。

 

ただ作って終わりでなく、しっかりとその先の運用まで見据えた姿勢はどの面接においても褒めていただけました。

特にベンチャー企業などの場合、人手不足のためどうしてもマルチに動ける人材が欲しいはずなので、広い視野を持っている事をアピールするというのは戦略として間違っていないと思います。

 

他に工夫した点を挙げるなら、

  • Git-flowに沿った開発(issueを確認 -> branchを切る -> 開発を行う -> pushする -> pull requestを送信する -> mergeする)
  • Rspecを用いたテスト
  • 自動ビルド&自動デプロイ(CircleCI)
  • コードの品質チェック(rubocop、rails_best_practices、bullet)
  • デプロイ先はHerokuではなくAWS
  • Docker環境の構築

などでしょうか。

いずれも最近流行りのモダンな開発環境では多く使用されている技術なので、頑張って取り入れるようにしました。

全てを取り入れるのが難しい場合、求人情報などを見ればその企業の技術スタック一覧のようなものが掲載されていたりするため、自分の志望に合わせて調整してみると良いでしょう。

 

あとはREADMEの作り込みも忘れずに。あそこにしっかりとアプリの説明がされているかどうかで見栄えはグッと変わります。

デフォルト状態のままポートフォリオを持ってくる人も多いそうなので、少し工夫するだけでも差別化につながるはず。

まとめ

以上、完全未経験の状態から6ヵ月間のプログラミング学習+2ヶ月間の就職活動を経てWeb系自社開発企業へ転職できたというお話をさせていただきました。

全てが順風満帆にいったというわけではなかったものの、結果として希望通りの道へと進む事ができたので良かったです。

 

未経験の場合、選考へ進む前から門前払いを受ける事も多く、非常に厳しい道のりではありますが、しっかりと戦略を持って挑めば必ずしも不可能というわけではありません。

実際、僕が内定をいただいた企業も求人情報には「1年以上の実務経験が条件」とハッキリ記載しているものの、それなりに完成度の高いポートフォリオを見せたところ選考を行ってくれました。

 

つまり、本音と建て前は別というわけですね。スクリーニングのためにあえてハードルを上げてはいるものの、ポテンシャルの高い人間であるなら別に未経験であっても採用してくれる可能性はあるという事。

もちろん、文字通り経験者のみの募集としているところもあるでしょうが、望みを捨てずに頑張っていただければと思います。

 

長文になってしまいましたが、この記事があなたにとって少しでも参考になれば幸いです。

おすすめの記事