未経験からITエンジニアになるのは難しいのか？

# はじめに
これは私がITエンジニアになるまでどんな感じで学んできたのかを共有するため作成するものです。

私みたいに未経験で全く関係ない仕事をしているが、エンジニアとして転職を考えている方、すでに勉強はしているが、どのようにすればいいのか分からない方向けです。


# どれくらい学んでエンジニアになりました？

私の場合は1年くらい独学してエンジニアとしてデビューすることができました。
結構早くデビューしたし、当時運が良く知り合いから現場を紹介され早めにデビュー出来たと思いますが、実際に1日中4時間以上は必ず勉強を行い、休日は24時間中10時間以上はプログラミングを勉強しました。

# どうやって勉強した？
未経験からITエンジニアとして転職した私に周りの人たちからよく聞く言葉です。
私の場合エンジニアになるため勉強に利用したものは以下になります。
```
1. youtube
2. 動画講座
3. 公式ドキュメント
4. 書籍
5. clone project
6. chat GPT 
```


### youtube
youtubeにはたくさんの動画が存在し、古い情報から最新情報まで載っております。
基礎がない場合youtubeの動画を見て、プログラミングが何であるのか、勉強したい言語に関して
どのような言語であり、何を勉強するのか、未経験の初心者は何をすればいいのかなどの情報が載っております。
なので勉強の入り口として最初のところではyoutubeを利用することも価値があると思います。
（私の場合はかなり役に立ちました。）

### 動画講座
私の場合youtubeでプログラミングについて少し情報を取得し、初心者レベルを勉強しながら
プログラミングの面白さを感じまして、ついに有料の動画講座を決済し学びました。
[Udemy](https://www.udemy.com/?utm_source=adwords-brand&utm_medium=udemyads&utm_campaign=Brand-Udemy_la.JA_cc.JP&campaigntype=Search&portfolio=BrandDirect&language=JP&product=Course&test=&audience=Keyword&topic=&priority=&utm_content=deal4584&utm_term=_._ag_103751308239_._ad_451175836549_._kw_udemy_._de_c_._dm__._pl__._ti_kwd-296956216253_._li_1009280_._pd__._&matchtype=b&gad_source=1&gclid=Cj0KCQjwsaqzBhDdARIsAK2gqnd5_HqSUI4Ugr_LZ-XMUyUj17baMCBi8veeadOWPPtJSAq1d2wGK1AaAiHEEALw_wcB&persist_locale=&locale=ja_JP)や、それ以外に個人が展開している講座などを決済して学びました。

動画講座の場合、講座を見る人が自分のレベルに合わせた講座を選んで学ぶことができ、一回購入すると（無料の講座も存在します。）同じ講座を何回も見ることができ、youtubeよりもっといい内容の講座が存在しております。
ただ、有料でありその値段も安くはないですが、youtubeよりいい内容の講座を見ることができるので個人的にはオススメでございます。

### 公式ドキュメント
プログラミングの世界ではこの世の中のようにたくさんの言語が存在しております。
java, javaScript, go, python, ruby以外もすごくたくさん存在しております。
他に何があるか気になる方は[こちら](https://www.sejuku.net/blog/144056)を確認してください。

各言語はまたそれぞれのドキュメントがあります。ドキュメントと言うものは簡単に話すとその言語の説明書的なものです。なのでその言語を利用するユーザーはドキュメントを見ながらその言語について深く学ぶことができます。

公式ドキュメントの場合は今現在エンジニアとして働いている時にも確認したりするので、エンジニアの目指している方だと必ず目を通すのをおすすめします。


### 書籍

書籍ではyoutubeや動画講座では説明してくれない部分（すごく細かい内容）とかを分かりやすく説明しており、エンジニアを目指して勉強をやり始めた方にはどの書籍でもいいので必ず書籍を購入してみて欲しい気持ちです。

各言語についてみんなからオススメされる書籍があるので最初はオススメの書籍から見るのもいいと思います。

（youtubeや動画講座などでは視聴する人が基礎知識があることを前提にしているのもあるので。上記でもお伝えしましたが、書籍で勉強を行うのはとっても大事だと思います。）


### clone project

ある程度言語を学んだ次、私が行ったのはすでに存在しているサービスをcloneしてみることでした。
言語の種類や、projectの中で利用するフレームワークなどの種類は気にせず、とにかく同じようにcloneすることを目標としてclone projectを行いました。

cloneをしながら最初から最後まで全ての部分に関して幅広く経験することができ、かなりいい勉強になりました。（もちろん全てを完璧には出来なかったんです😂）
私がcloneしたのは``` Netflix, LINE（こちらはweb上で実装し、CSS中心の勉強になりました。）, X(tiwtter), instagram, titok, youtube ```などをcloneしてました。

私の場合基本的に上記のcloneしたサービスの項目を可能であればバックエンド部分まで実装し、実際に簡単な動作までできるようにしました。（LINEはCSS中心）

全てはweb appであり、ローカルでの動作が出来るのを目標値にしてました。


clone projectを行いながら経験したのは今でもかなり役に立っているので皆様の是非行ってみてください。

### chat GPT

私はプログラミングの勉強をゼロから自分の力でやって来ました。
好きなものを好きなだけ、好きな内容を学ぶことができ費用的にも安かったのですごく良かったんですが、問題点として先生がいないため、質問ができる人も教えてくれる人も誰もいない状態でした。そこでchat GPTを利用して学びました。基本的に勉強中に気になる部分や解決できない部分、ソースコードのリファクタリングなどについて利用しました。

思ったより願ってる答えをしてくれない時もございますが、ちゃんとした質問をすると意外と正しい結果を出してくれたので役に立ちました。

書籍や他の講座では説明がない部分や業界のコンベンション、ただ問題を解決するだけではなくその問題の答えに関してなぜその答えが出たのかにつく説明など。
使える道がたくさんあったので今でもたまに利用するものでございます。

chat GPTを利用する前にはgoogleでの検索、[stackoverflow](https://stackoverflow.com/)などを利用して問題を解決したりしましたが、chat GPTを利用してからは問題を解決するまでの時間がかなり短くなりました。（ただ、以下でも記載はしておりますが、chat GPTが神様ではないのでちゃんとした答えをもらえない場合もあるし、基本的にはググってみるのが一番なのかな？とは思います。chat GPTの答えが全て正解でもないし間違っている情報を伝えてくる時も結構ありますので使用時には注意をしてもらった答えが本当であるのか確認する必要はあると思います。）

chat GPTを使うことに関して注意することがございます。
1. chat GPTの答えが100％正解ではない
2. chat GPTが書いたソースコードが絶対正しいものではない
3. chat GPTが教えてくる情報が間違っている場合もある
4. chat GPTにソースコードのリファクタリングをしてもらっても正しくない場合がある。これは自分の成長にもつながらない（逆にソースコードがおかしくなる時もある。）
5. chat GPTが持っている情報は古い情報の時もあるので最新情報に関する答えは難しい場合がある（最新情報が確認できる時もある。）

私は上記の理由でchat GPTは現在メインでは利用しなくなり、今はgoogleで検索か公式ドキュメントの確認などを行っております。

上手く使えばすごく役に立ちますが、すごく注意が必要と個人的には思っております。


# プログラミングって難しくないですか？
##### もちろん難しいです！
難しくないです！と言うのは全部ウソです。（それかその人が天才か。。）
ただ、私は性格的にエンジニアの仕事が合うのもあり、エンジニアになるために行った勉強も楽しかったんです。

解決出来ない問題や、理解できないソースコードの動き、ソースコードの作成はそもそも何をどうやってすればいいのであるのか。
などの悩みはもの凄くたくさんありましたが、好きなゲーム（勉強したい言語）をクリアするため情報を探し（公式ドキュメントやネット検索）、効率がいい装備などを集めたり（書籍や動画講座など）必要な基本的な攻撃速性（学ぶ言語の特性）、パーティメンバーの組み合わせ（プレームワークやライブラリなど）、ボスの攻撃パタン（エラー対応や自分の知識不足で解決出来ないもの）に対応しながら（勉強しながら）クリアする（自分の目標値に到達する）RPGゲームだと思いました。

もちろん今でも勉強を続いてるし、これからもエンジニアとして引退する日までにはエンジニアとしての勉強は終わらないと思います。

毎回新しい何かが現れるし、学べば学んだ程難しくなりますが、それでも面白いと思うのでもしエンジニアを目指している方がこの記事をお読みしていただいてるのなら、諦めず頑張って前に進んで欲しいと思います。


# まとめ

私の場合はデビューがすごく早かったので今でもまだまだ学ぶ生活をしております。もちろん私以外の他のエンジニアさんも同じように引き続き学んでいると思います。

確かにエンジニアってすごく魅力的なものであり、楽しいことでもあります。（私は性格的にもエンジニアの仕事がよく合ってることでもございます）

よくある話で、エンジニアは残業が多い、給料が安いと言う話も結構聞いたり、ブラック会社が多いみたいな話もあったりしますが。実際私が経験したITエンジニアとしての会社生活はそれとは距離が結構あります。なので私の場合はエンジニアの仕事についてすごく満足しております。（もちろん私の経験が全てではないのでもちろん悪い部分もあると思います。）

残業や、給料などはcase by caseなのでなんとも言えないです。（特にIT業界だけでの話でもないし残業や給料、ブラックであるのかは仕事の種類を区分する無意味だと思います。経験しないと分からない部分なので）


正直に今回の記事が役に立つか？と思いながら作成しましたが、昔の何も知らなかった自分を考えると本当少しは役に立つかな？と思いながら記事を作成いたしました。

なんかもっといいことをお伝えしたいと思いましたが、ただの私が歩んできた道を説明した感じなので

最後までお読みしていただきありがとうざいました。