2留したクズが1年でweb系上場企業から内定を貰えた話。


初めまして[satoshi](https://twitter.com/gigig826)です。少しでも同じ境遇にいる人のモチベーションの手助けとなればいいかなと思い記事を書いています。
僕は大学2年生の時に2回留年しました。
大学に入ってから何もやりたいことが見つからなく、毎日をグーたらグーたら過ごしていました。
こんなクズ文系大学生がある時プログラミングに出会い、エンジニアを目指し始めて独学1年でWeb系企業から内定を貰えた話を書いて行きます。

#プログラミングとの出会い
大学2年の時(2留済み)渋谷のカフェで週4,5アルバイトしていたのですが、同じアルバイトの友達の紹介でスタートアップの会社でSEOのインターンを始めました。(就活もやばいし、何かインターンしとこみたいな軽いノリでした笑）
そこで働いて数週間後に、社長からエンジニアになってみない？と言われたのがプログラミングとの出会いでした。
最初は社長に言われた通りProgateでHTML,CSS,Javascriptとかをやりましたが、無給だったのとエンジニアになりたかった訳でもないのですぐ辞めてしまいました。(当時ただ就活で話す内容が欲しかっただけだったのでw)

#本気でエンジニアを目指す
そんな中、大学3年の5月に急に何か始めないとやばい！という焦りを感じ、以前途中でやめたプログラミングに対して心残りがあったのもあり、秋葉原までMacBookProを購入しに行ってプログラミングの勉強を再開しました。

この頃の計画では6月までにポートフォリオを完成させて、それを提げてインターンを応募しようと考えていました。

そこからは以前少しやったProgateを最初からやり直しました。やったのはHTML,CSS,Ruby,Ruby on Railsです。
そのあとは[Railsチュートリアル](https://railstutorial.jp/)を無理やり?完走して(難しかった)->testは途中から飛ばしましたw

ここまでが1カ月くらい。
その後2週間でRuby on Railsでポートフォリオを完成させました。
この頃はプログラミングが楽しくて仕方なかったのを覚えています。一から何かを作るのはこれが初めてだったのでスキルとしてはこれが一番伸びたと感じています。

#インターン探し(大学3年秋)
そして6月の半ばからWantedlyで**「Rails インターン 初心者」**と検索してひたすら応募していました。
実際に面接までして頂いたのが5社くらいで全部断られました。。

今となってわかるのですが、初心者でRailsの長期インターンを獲得するのはなかなか厳しいのが現実です。
理由としては2つあって

1. Railsを扱ってる企業はスタートアップ企業が多い。
2. スタートアップは即戦力を求めているので、初学者を育成している余裕がない(人手的にも、コスト的にも)

ここをものすごく後悔しています。言語やスタートアップに拘らずに、死ぬほど熱意とコミット力を伝えてめげずに応募し続けていればよかったと思います。
結局初心者が一人でいくら勉強していても、トップレベルのエンジニアの人たちには追いつけません。
戦ってるフィールドが全く違うし、実際の開発現場でしか学べないことが山ほどあるはずなので。。



実務経験を積めるインターン先は見つかりませんでしたが、
まだまだ自分の中で勉強するべきことを把握していたので、悔しさをバネに独学での勉強を続行しました。

夏はRailsで何個も何個もアプリを開発していました。
Rails以外のことも勉強しなくちゃと思い、
JavaScriptやReact、Git、AWSを勉強していました。
周りにプログラミングをやってる友達もいないのでよくここまで続けられたなと思います。
当時はすぎけんさん(@kent_ear)というRailsの初学者向けのメンターをしてくれていた人のSlackグループに入っていて、かなりの量を質問していました。
就活のことや、プログラミングのことを親身に相談に乗ってくれてとても感謝しています。
モチベーションとしては誰かを見返したい！というのが強かったです。
モチベーションが下がる時期みたいなのはもちろんありました。
Twiiterでエンジニアアカウントを作っていたのも初学者の皆さんと繋がれて、すごくよかったなと今では思います。
初心者の方はたまに勉強会に参加して横のつながりを作っとくのも良いと思います。

#多方向に技術を触るようになる(大学3年冬)
大学ではプログラミング系のゼミに入りました。
そこで出会ったチームで大学の最寄駅から、あと何分でバスが来るかを確認できる[バスタイマーアプリ](https://apps.apple.com/jp/app/sfc-bustimer/id1457801427)をSwiftで開発しました。
同時に新しく自分の核となる言語を学びたいと思い、JavaScriptの基本から学び直してその後かねてから興味を持っていたVue.jsを学び始めました。
これがめちゃくちゃ楽しかったです。
ハッカソンに参加して就活ができるWebサービスを開発し始めました。バックエンドをRailsでAPI立てて、フロントをNuxt.jsで作りました(VueとNuxtを学びながらだったので2カ月くらいやっていたかな。。)



#大学4年春
4年春になって、ちょうどTwiiterで知り合った同じ大学の友達から、起業するにあたってエンジニアを探してると連絡がきました。就活用のポートフォリオ制作の題材をちょうど探していたので、それに使って良いならという交渉のもと開発を受けることに決まりました。
この頃は前のハッカソンのアプリの開発も終わっていて、何か作るものないかなーと模索している時期だったので、タイミングがよかったです。


##内定
結果、エンジニアとしてWeb系企業2社から内定をもらえました
戦うのは一流大学に通う理系の子達。彼らは大学1年からプログラミングを始めて、在学中にバリバリインターンで実務経験を積んできた強者達です。
そこで彼らとどう戦うか。僕には実務経験も、大学時代頑張ってきたことも特にないので、エンジニアとしての自走力とポテンシャルの高さしかアピール材料はありません。
評価されたポイントとしては、自走力と技術への好奇心と 探求力だったと思います。

そんな僕が4年春から就活用ポートフォリオ制作の一貫として開発していたプロダクトの詳細に関して、別の記事にまとめたのでそちらも見ていただけると嬉しいです！

FirebaseとNuxt.jsによるSPA x PWA x サーバーレスアプリケーションの開発
https://qiita.com/saongtx7/items/d65f4daab97ebe84fa7e


## 1年間を振り返って
・反省点
**1.学習する手順**
Railsを学ぶ前に「Webを支える技術」などWebの基本,SQL, Linuxなどを最初に学んでおけばよかったなと。
技術やフレームワークは時代によって目まぐるしく変化していきますが、核となる部分は変わらないので。
でもこればっかりは難しいところでプログミングが楽しい！と感じなければ成長は止まってしまうので、入りはWebアプリケーションをとりあえず簡単に作れちゃうRailsは初心者にはありかなとも。。

**2.実務経験を積む**
途中でも書きましたが、ここが一番の反省点です。
自分は学びたい技術が無限にあったので、一人でいつまででも勉強できましたが、独学での勉強は早めに切り上げて実務経験を積むことをおすすめします。成長スピードが段違いだと耳をタコにするほど聞きます。。
エンジニアにとって実務経験は一番の「資格」です。どこに行っても実務経験がないと初心者のレッテルを貼られ続けます。当たり前ですが。。

##モチベーション維持の仕方
今では周りに小学生からプログラミングをしている激強エンジニアの友達もいますが、どれだけやっても追いつけないって毎日思います。
プログラミングに触れてても全く成長を感じないなんてザラです。そんな時どうやってモチベーション維持していくかはすごく大事なことだと思います。

この1年間独学を続けてきてモチベーションがあったときは
・**何か作りたいものがあるとき（何かを開発しているとき)**
・**新しい技術・言語を学んでいるとき**
の二つだったと思います。
モチベーションが下がる時でも、どうやって維持していくかなんですが、先述した通りたまに勉強会に参加したり、Twiiterでプログラミングを勉強している人をフォローしていると自然に自分もやらなきゃと思うようになります。
あとはモチベーションを上げるため作るものを見つける(模写でも可)、新しい技術や言語を勉強してみるってのはおすすめです。
半年過ぎたあたりからはコード書いてないと気持ち悪いみたいな感覚を覚えるようになったので、どれだけ好きになれるかも大事なのかなと思います笑



#最後に
人生は逆転できます。僕は大学に入ってから何も目標が見つかりませんでした。
ただプログラミングに出会って、1年間マラソンのような感覚で成果が出なくても走り続けてきました。
毎日頭の中はプログラミングのことで一杯で、友達と旅行や派手に遊ぶみたいなことはこの1年一回もしませんでした。いつの日か、移動中は技術ブログや公式ドキュメントを読んだり、ご飯を食べながら海外のエンジニアのyoutubeを見るのが当たり前になっていました。
もちろん今やっとスタート地点に立っただけで、今もなお実務経験ゼロのエンジニアの僕は初心者エンジニアです。
プログラミングに出会ってなければ、僕は今頃抜け殻のような毎日を今でも過ごしていたでしょう。。笑
プログラミングを始めていなければ出会えなかった人たちとの出会い、感じることのできない興奮や好奇心。
本当にプログラミングって最高です。