Edited at

実務未経験からRuby on Railsを独学して自社開発企業のエンジニアに転職するまでの半年間

こんにちは、けんぞうです。先日Web系自社開発企業様から内定をいただき、実務未経験から独学でエンジニアに転身することができました。

せっかくなので、僕が実務未経験からエンジニアに転身するまでに半年間を振り返ろうと思います。

この記事では転職活動をメインで書いています。勉強方法については、以下の記事で詳細に書いていますので、よければ合わせてご覧ください。

未経験から独学でエンジニア転職したので、プログラミング独学方法の全てを語ります。| けんぞうの知識メモ


筆者について



  • 年齢:現在24歳


  • 職歴:前職はソフトウェアベンダーで営業に近い仕事


  • プログラミング経験:学生の頃にProgateと、某大手プログラミングスクールに通った経験あり

上記の通り、学生の頃にプログラミングスクールに一度通った経験がありますので、「完全独学」とは言い切れないのですが、今回の転職活動にあたっての学習期間は独学でやってきました。

またプログラミングについては、学生の頃にProgateでHTMLを学んだり、ブログのカスタマイズをやってみたりしていたので、割と身近に感じていました。

こういった前提のもと読み進めてもらればと思います。


エンジニアになろうと決意するまでの紆余曲折

僕は前職を退職してすぐにエンジニアを目指そうと決めた訳でなくて、色々と紆余曲折を経てエンジニアへの転向を決めました。


新卒入社した会社を1年未満で退職

2019/01


  • 得られる知識・経験が汎用性が低く「その会社でのみ通用するもの」という印象を持っていたこと

  • ライティング、プログラミングなど自分が興味のある分野が明確に見えていて、これらに関連する仕事が前職では実現できなかったこと

こういった理由から、新卒で入社したソフトウェアベンダーを退職することにしました。

ソフトウェアを開発している企業でしたのでもちろん開発チームはあったのですが、同僚から聞く限り開発は海外支社に投げていて、日本ではコードを書く仕事ができない状況だったので、社内でエンジニアに転身したとしても手を動かすエンジニアとしての成長は見込めないだろうと、判断しました。

また退職を決めた段階では、明確に「エンジニアになる」と決意していた訳ではなく、「ライター業をやりつつ、プログラミングを勉強して、サイト制作の仕事などを個人で請け負えたらいいかなー」みたいなかなりゆるふわな考えを持っていました。

当時僕が考えていた「退職後の生活設計」は以下の通りです。


  • とりあえず家賃が安い家に住み、生活コストを極限まで下げる

  • ライティングの仕事をクラウドソーシングで下請けして最低限の生活コストを稼ぐ

  • 同時進行でプログラミングの勉強をして、サイト制作とかの仕事もできるようになる

これらを実行すべく家賃2万円の神奈川県の物件にわざわざ引っ越したりしていました(笑) 勘のいい人は僕が当時誰に影響されていたか分かるかもしれないですね、、(笑)

admin-ajax.jpeg

👆実際に住んでいた神奈川の家の前の景色


ライターやりながらプログラミング学習が無理と気づく

2019/01

ライター業をやりつつ、プログラミングを勉強して、サイト制作の仕事などを個人で請け負えたらいいかなー」の考えのまま、クラウドソーシングでライティングの案件を取ってきて、片手間でHTML/CSSの勉強をはじめました。

結論をいうと、1週間で挫折しました。

受注先の企業とコミュニケーションを取りながら、記事の構成を考えて執筆するだけで丸一日は余裕で持っていかれますし、定職についていないのでお金の心配がハンパないのです。

そもそも将来のキャリアなどを考慮して「汎用性のあるスキルを身につけること」を目的に退職したにも関わらず、クラウドソーシングで目先のお金を稼いでいる状況に大きな矛盾も感じていました。

という訳で、1週間でライティングの仕事の下請けはストップし、プログラミングの勉強に専念することに決めました。


サイト制作のための勉強を開始する

2019/02

プログラミングに専念すると決めた頃は、「サイト制作のための勉強」からはじめました。具体的には、以下のような学習をしていました。


  • HTML/CSS

  • jQuery

  • WordPress

結論をいうと、「サイト制作のための勉強」は2週間でやめました。

2週間でWordPressのあっさりとオリジナルテーマが作れてしまい、よくよく考えると、「WPほぼ無知の自分でも2週間である程度習得できるというのは、参入障壁の低さ、差別化の難しさを意味してるんじゃないか..」みたいなことを考えたわけです。

勝俣さん(@poly_soft )が動画でがっつり言語化されていたことを、当時うっすらと勘づいた感じです。


WordPressのカスタマイズ案件というのは「エンジニアとして低スキルな人でも十分対応可能な仕事」がほとんどなので参入している人が非常に多く、需要と供給のバランスによって価格低下圧力がとても強くなってしまう

参照元:マナブさんの12万円の情報商材の価値に関する考察


こういった流れから「WordPressを独学してサイト制作の仕事を請けるより、サーバーサイドの言語の勉強もしっかりやってポートフォリオを作り、企業でエンジニアとして経験を積む方が飛躍的に成長できるのでは」という結論に至り、Ruby on Railsの学習及びポートフォリオの作成を開始しました。


実家に戻り、Rails学習にフルコミットする

2019/03〜2019/07

そのあとは神奈川の物件も退去し実家に戻って、お金の心配もしなくて良い状態を作って、フルスイングでRailsを独学を開始しました。

退職してすぐは無駄なプライドで「実家には戻らない」みたいなことを考えていたのですが、尽きゆく貯金を眺めているとそんなことも言っていられなくなり、関西の実家に戻ることにしました。転職活動を支えてくれた両親には感謝が尽きません。

ちなみにRailsを選んだ理由は以下の3点です。


  • 学生の頃にデプロイまで一通り経験したことがあったので、実装イメージがつきやすかった

  • モダンな開発をしている企業で採用されているケースが多い

  • 日本語のドキュメント、記事も多数あり挫折する可能性も低い

この独学期間でポートフォリオをいくつか作り、転職活動に挑んでいきました。最終的にメインでポートフォリオとして活用していたのは、以下のサービスです。


なぜスクールに通わなかったか?

スクールに通わなかった理由は2つあります。


  • 学生時代に通った大手スクールの教材と、Progateの教材をコスパ面で比較すると圧倒的にProgateが勝利しており、スクール教材のコスパの悪さに気づいていたから

  • スクールに通って転職活動を始める人が多数な中で、独学でものを作ってきた経験が1つの差別化要素として作用するだろうと考えたから

後述しますが、2点目の「差別化要素としての独学経験」は十分に作用しましたし、ProgateやRailsチュートリアル、その他書籍などを活用すれば独学は十分に可能だと思っています。


具体的にどうやって勉強したか?

基本的には上記を参考にしながら、学習を進めました。詳しい学習方法などは、ブログにまとめているので、良かったらこちらをご覧下さい。

未経験から独学でエンジニア転職したので、プログラミング独学方法の全てを語ります。| けんぞうの知識メモ


具体的にどのように転職活動を進めたか?

多くの未経験転職組がそうであるように、Watendlyを活用して企業さんに会いに行き、選考に進むという形で転職活動を行いました。おそらく、現時点ではWantedlyが企業さんと最もカジュアルに面談でき、採用にも繋がりやすいツールだと思います。



  • Wantedly: 月額掲載費なので、企業としてはカジュアルに採用を行いやすい


  • Green:エージェントと比較すると安価だが成果報酬型なので、採用ハードルは高い


  • 転職エージェント:採用時に年収の数十%を手数料として支払う必要があるので、採用ハードルはかなり高い

僕は一応エージェントにも話をしに行きましたが、どうしても「こちらの希望ベースではなく、エージェントの都合ベースで企業を紹介される」という印象を拭えなかったですし、エージェント経由では選考前に断られた企業さんにWantedly経由では面談してもらえたことなどもあったので、未経験転職組はエージェントではなくWantedlyなどで企業をさがすことをおすすめします。


転職活動で評価されたポイント

転職活動では以下の3つの点が評価されやすかったと思います。


  • スクールではなく、独学でものを作っていること

  • 実務を想定した知識のキャッチアップ、実践を行なっていたこと

  • SEOについても少し知識があったこと


スクールではなく、独学でものを作っている

Qiitaでの未経験転職系エントリを見る限りでは、スクールに通ってから転職活動をされる方が多いと感じたため、1つの差別化要素として独学を売りにしていました。

スクールではなく独学で動くものを作ってきた経験は、「自分で問題を解決する能力」として少なからず評価されていたかと思います。

また余談ですが、僕の場合SNSでの発信もコツコツやっていたので、「プログラミングを独学する人」というポジションを定められたのは影響力拡充の点では有効だったと思います。


実務を想定した知識のキャッチアップと実践

ポートフォリオ作成にあたっては、以下のような技術も使用して実装しました。


  • Docker

  • CircleCI

  • CloudFront

  • fastly

どれも付け焼刃的になってしまった感は否めないのですが、それでも「実務を想定して技術を学んでいる姿勢」は転職活動ではプラス評価だったかと思います。

上記のような技術を学んだのも転職系エントリを読み、「未経験から転職活動をしているライバルたちが、おそらく手が届いていないところまで手をつけておこう」という考えに基づいた差別化目的だったので、狙い通りではあったかなと思います。

転職系のエントリとしては、以下の投稿を参考にさせていただきました。

また同時期に就職活動をされていたKei Fujikawa(@kei_f_1996 )さんの投稿やTwitterなどからも刺激を頂きました。本当にありがとうございます。


SEOの知識も少しあったこと

けんぞうの知識メモというブログを運営しておりまして、こちらが3.8万PVまでアクセスを伸ばしていたことから、SEOに関する知識もプラス評価となりました。

特にWebメディア、サービスを運営する企業さんの選考では、SEOに関する知識のことは話題にのぼりやすかったです。逆にSEO対策不要のサービスを開発している企業さんでは、全触れられませんでした。

実際今回内定をいただいた企業さんにも、SEO対策の役割も与えてもらっていることから、ブログ運営で培った知見が評価されているのだろうと思います。


転職活動で「こうすればよかった」と思うこと


  • ポートフォリオの質を一定以上に引き上げてから転職活動を開始する

  • 面接では学習意欲、熱意を全力で売り込む

  • 最初から東京で転職活動をする


ポートフォリオの質を一定以上に引き上げてから転職活動を開始する

Railsを学び始めて1か月も経たないくらいで作ったポートフォリオで転職活動を開始したのは、少し後悔です。

この頃のポートフォリオは「Railsチュートリアルの完成物とほぼ同等、もしくはそれ以下」みたいなレベルだったので、独学で作ってきたとはいえ評価されにくく、志望度が高い企業さんの選考で落ちてしまうということも経験しました。

そのため、転職用ポートフォリオは一定レベルまで引き上げてから転職活動を開始した方がよくて、具体的な基準としては以下の3点をチェックしておくと良いと思います。


  • 5つ以上のモデルを関連付けし、一定の複雑性のあるアプリケーションにする

  • レスポンス速度の改善を行い、面接官が必ず見てくれるようにする

  • 実務で使う技術をできるだけ盛り込む

僕の場合は、途中でポートフォリオの見直しを行い、その際に上記の点を考慮して「DOYA」実装しました。


面接では学習意欲、熱意を全力で売り込む

面接では「〇〇について知っていますか?〇〇について経験はありますか?」などをよく聞かれるのですが、僕の場合「いえ、知らないです」と簡潔な返答しかしていませんでした。

しかし、「知らないです」と答えるだけでは「この人の教育コストが膨らむなあ」というネガティブな印象しか残せないので「現時点では知識はありませんが、プライベートも含めてキャッチアップしていきます!」くらいは言えた方が印象が良いかと思います。

最近 @poly_soft さんが上げていらっしゃった動画で、より詳しく解説されていたので、未経験転職をされる方は観ておくといいかもしれません。

業務未経験のWeb系エンジニア志望者が面接で聞かれる頻出質問とその対策


最初から東京で転職活動をする

僕は実家が関西だったこともあり、関西で転職活動を開始しました。

しかし、やはりモダンな環境で開発をしている企業さんは東京に集中しており、関西では本当に数社しかないという状況です。

またエンジニア向け勉強会なども東京の方がより高頻度で開催されているので、最初から東京で転職活動をすればよかったかなと思います。

関西にいながら東京での転職活動では、オフィスへの訪問を誘ってくださっている企業さんに対してオンライン面談をお願いする形をとっていたのですが、場合によってはそれだけで心象が悪くなる可能性も十分考えられるので、やはり東京に拠点を置き転職活動をする方が無難な気がします。

OYOというサービスを使えば、家賃こそ高いものの、家具付き・光熱水費なしで東京に住むことができます。手続きも簡単なので、こういったサービスを活用するのも1つの手だったなと思います。


独学期間で「こうすればよかった」と思うこと


  • 勉強会にも参加すること

  • Railsチュートリアルもちゃんとやること

  • 素のRubyについても学ぶこと


勉強会にも参加すること

僕は5月頃になって初めて勉強会に参加するようになったのですが、シンプルに楽しいですし、自分と同じような境遇の人にも会えたりしてモチベーションアップにも繋がるので、息抜き兼情報収拾のために勉強会には積極的に参加しておくと良かったかなと思います。

connpass | エンジニアをつなぐ IT勉強会支援プラットフォーム


Railsチュートリアルもちゃんとやること

僕はProgateのRailsコースと書籍による学習で満足してしまっていましたが、Railsチュートリアルで基礎にしっかり触れる機会も作っておくべきだったと思います。

Progateはオンライン教材として非常にわかりやすいのですが、非推奨の記述(form_tagとか)で解説されていたりします。Progateだけやっていると、そういったことに気が付けないので、他の教材特に公式の教材に触れておくのは大事だなと思います。


素のRubyについても学ぶこと

インターンとして実務に入り先輩からご指導いただく中で、素のRubyの文法を知っているかどうかで可読性の高いコードを書けるかどうかが決まってくると感じました。

Rubyの基礎については、Junichi Ito(@jnchito )さんの「プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)」が非常に読みやすくて良かったです。


最後に:お礼

独学期間はネット上や書籍等で有益な情報発信をされている方々、また同様に未経験からエンジニアに転身された方々から知識とモチベーションを頂いてきました。

本当にありがとうございました。

満足せず今後も自分のペースで自己改善を続きていきます。最後まで読んでくださり、ありがとうございました。

フォロー・ご購読いただけると、大変嬉しいです。