大学中退して崖っぷちから一年間フリータしつつ独学でアプリエンジニアになった話

## 初めに

はじめまして。
今回の記事では、未経験からエンジニア転職をしたい方などに向けて、自分の経験がモチベーション向上など何か役に立てばいいなと思っている次第です。
またそうでない方にも読み物として楽しんでいただけるように書いたつもりですので、
是非ご覧いただければと思います。
具体的には、どのような内容を勉強していたか、苦労した点など、わかりやすく共有出来たらと思います。
少し長い記事になるかと思いますが、最後まで読んでいただけるとありがたいです。
ちなみに筆者はswiftなどのアプリ開発の勉強をしていましたが、
特に言語に関わらず、どなたでも参考になるように書いているつもりですので、
ご安心ください。
少しでもいいと思ったらいいねやストックして頂けるととても嬉しいです！

## 筆者

* flutterなどで、モバイルアプリの開発エンジニアをしている24歳、実務経験1年半。
* 独学で勉強しながら、1年くらいフリータしてた。
* 後、アプリをAppStoreにリリースして、それをポートフォリオにして無事就職決まる。
* 餃子が好き
* 阪神ファン🐯🐯🐯


## 当時の状況と決断

なんやかんやあって大学三年の時に中退をしました。
その後のキャリアプランなども明確に決まっていたわけでもなく、
将来に対する漠然とした不安と、
まあなんとかなるだあろという根拠のない自信の間で彷徨っていました。

そこで色々情報収集している中でどうやらエンジニアはうまくいけば稼げるらしい、
良質な経験さえ積めれば学歴はあまり関係ないということを何かの媒体で耳にした。

（少なくとも当時はエンジニアバブルだったのもあると思う、多少時代は変わったかも？？）

この情報を耳にした際に**これしかない**と思いました。

大学の時に若干プログラミングを齧っていたので、
当時もエンジニアいいかもくらいの温度感はありました。

ただ当時の自分は、新卒カードもなくし、碌な実績もないやつが、
この状態で就職しても良質な経験は詰めないだろうというのは感じていました。
こうして僕は、**フリータで生計を立てつつ独学でスキルを身につけて就活する決断**をしました。

ですが結果的にこの決断が自分の人生がいい方向に変わっていったと思います。



## フリーターとしての生活

当時の自分は、実家暮らしをしていましたが、
いつまでも実家に甘えているのは良くないと思い、一人暮らしを始めた。
金銭的に余裕はなかったので、地元は東京ですが、九州の地方の方の家賃2万円台のマンションに引っ越しをしました。
田舎で暮らしてみたかったのと、少しでも誘惑を減らすためという目的もありました。
またこのとき、
**納得できるスキルを身につけて、納得できる会社に就職するまで東京には帰らない**と決心しました。

そうして心機一転、新しい生活を始めたのであった。

なるべく、日常をルーチン化させたかったのと、生活リズムを見出したくないという理由から朝６〜10時までアルバイトをしていました。

当時の収入は、10万円前後でしたが、意外と人間そのくらいの金額でも普通に豊かな生活ができるのに驚きました。（業務スーパーには死ぬほどお世話になりました笑）
確かそれでも１〜２万くらいは月々貯金できてたと思います。

バイト終わりからは契約していたコワーキングスペースに向かい、夕方か夜くらいまでは引きこもってました。
どんなことを勉強していたかは後述します。


![office_interior_eyecatch (1).jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3158219/a42e0443-0af0-9b98-de57-efb722f3045b.jpeg)




## 独学して良かったこと。

実際にエンジニアとしてお仕事して1年半くらい経過しましたが、
独学していた時期の経験は本当に役立っています。

* ググる能力があがる。
* 転職時などに採用担当者から「自走能力の高いエンジニアになれる」認定をされやすい。
* 実際のエンジニア業務を擬似的に体験できる。
* シンプルにコーディング能力があがる。
* スクールに通うのと比較するとほぼコストゼロ。

正直、独学でアプリを開発していた時と実際にエンジニアになってからの業務は、
もちろん細かい違いはありますが、開発に限った話をすると、基本は同じだと思います。

分からないことやバグをググって、実装する。この流れは個人開発も実務も同じです。
そういう意味では、自分にエンジニア適正があるか、
確かめることができるのでそういう意味でもメリットが多いと思います。

## 独学編（どのようにして勉強したか）

自分は、若干、javascriptを齧ったことがあるくらいでほとんどプログラミング初心者でした。
なので、まずはとにかく基礎を固めることに注力しました。

自分の場合はひたすらudemyで動画を見ながら学習していました。
動画の方が直感的に内容を理解しやすく、初心者の方にはおすすめかもしれません。
以下は自分が使用していたudemyの動画です。

https://www.udemy.com/course/ios-13-app-development-bootcamp/


エラーやバグが起きた時は、基本的にはググって解決することが多かったです。
当時はググり方など含め要領悪かったので、一週間同じエラーについてひたすら調べるみたいなこともざらにあった気がします。(~~やめた方がいい.~~)
ググってもどうしても解決しない場合は、teratailなどで質問して回答を頂き、解決したこともありました。

初学者がプログラミング自体を勉強する際に大事なことは、**ほどほどを意識する**ということだと思います。

プログラムだったり、言語自体を完璧に理解しようとすると、時間が無限にあっても足りません。
五条悟の六眼とかないと無理だと思います、知らんけど。🤞

一通り基礎をおさえた後はすぐに、ポートフォリオの為の個人開発やらに移行するのが正しいと思います。
自分の場合は3ヶ月くらいは勉強してましたが。

## 個人開発（アプリ作成編）


![IMG_2360 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3158219/6750ec2d-0f0a-55e4-695b-3db52e7b7ae4.png)


上記のようなアプリを個人開発で作成しました。
生活習慣を管理するようなアプリで、作成期間は4~5ヶ月といったところだと思います。

設計や機能を先に決めてその通りに作成したというよりは、コンセプトのみを先に決めて、後からこんな機能もあったらいいな〜みたいにどんどん追加していった感じです。

この個人開発を通して、gitの使い方やアプリのリリース作業などプログラミング以外の業務について学ぶことができました。

今見るとUIもコードも見るに堪えないくらい酷いです。笑（ちゃんと改修したい。）
ですが、まずはきちんとやり遂げるという経験を積むことが大事だと思います。
実際、未経験でサービスを自分でリリースしているか否かで評価がかなり変わる印象があります。

アプリを自作している時間は本当に楽しかった記憶があります。
自分が思い描いたものがコツコツ出来上がっていくワクワク感はとても新鮮で充実感を感じることが出来ました。

## 就活編（大部分の人にとっては転職編）

自分は大学を中退して社会人経験がない中で、フリーターをやりつつ独学してっていう感じで過ごしていたので、自分にとって、アルバイト以外の就活は初めての経験でした。

結論から言うと、自分の場合は２週間くらいで就活を終えることが出来ました。

正直、転職に関してはあんまりしゃべれることがありませんが、就活自体のテクニックもありますが結局**どのくらい準備するかが重要**なんだと思います。

開発したアプリを元にポートフォリオを作成し、
またそれに付随し、以下のようないわゆる面接で聞かれそうなことをリストアップして追記しました。
採用担当者からのリアクションは軒並み良好だったと思います。

##### ポートフォリオに記載した事リスト

* どのようなことを意識して開発したか。
* なぜこのアプリを開発したのか
* 苦戦した時にどうやって乗り越えたのか。
* 将来どんなエンジニアになりたいか（スペシャリスト/マネジメント）
* etc..



## 独学する上で大切にした心構え

#### 楽しんで勉強する

当たり前のことですが、何事も楽しむことが一番大切だと思います。
最初の方は特に、エラーやバグが解決せずイライラしちゃうこともあると思います。
ですが、そんなことエンジニアになれば、もはや日常です。
（特に今はChatGPTがあるので比較的楽かもしれませんが。。）
ですが、エラーに悩めば悩むほど、解決した時の達成感は最高です。


#### 成長を実感しながら、勉強する。

始めたての頃は右も左も分からなかった自分でも、２、３ヶ月も勉強すればなんとなくこんな感じで書けばいいのかな？と言うのが分かってきました。
何か、開発に詰まったときでもでも俺この前classって何？printって何？みたいな感じだったのにこんな高度な事で躓けてるんだ、成長。。自分きゅん。。みたいな！

#### 環境を整える。

自分は家で勉強するのがすごく苦手でした。
何かと誘惑が多いし、何より人の目線が無いとダラちゃうんですよね。。
なので、家の近くのコワーキングスペースを契約していました。
基本的にそこに引きこもってましたね！
自分が集中できる環境を整えることで生産性が上がった感はあります。


## 最後に

他の業種でもそうなのかもしれませんが、エンジニアの界隈は特に、スキルさえあれば学歴は考慮しない文化が浸透しているように感じます。
そのような文化が、ある種僕みたいな人たちにとってセーフティネットのようになっているんだと思います。
今の僕がいるのも、エンジニアコミュニティーのおかげだと感じていますし、
今後は初学者のためになれる活動もしていけたらいいなとか思ってます。
なんらかの形で少しずつ還元していけたらと思います。



最後までお読みいただきありがとうございました。
この記事がどなたかの支えやお役に立てれば幸いです。
もし少しでもいいと思ったらいいねして頂けると喜びます。
ありがとうございました。






## 番外編（なぜアプリ開発swiftを選んだのか）

* 一つの言語で全て完結するから（バックエンド除く）
* アプリ開発の方が、需要に対して供給が追いついてないと思ったから。
* iphoneユーザーだから。
* なんかかっこいいから。

もし、今の自分がもう一度独学するのであればflutterあたりをやるか、バックエンドの言語とかチャレンジするかもしれません。
最初は自分が気になる言語から始めてみるのがいいと思います。
以上雑談でした。バイバイ