【永久保存版】0からGo言語を勉強するならこのロードマップに従え！

![bandicam 2023-11-14 18-39-01-453.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/0372d1bc-04dc-e94f-e5ff-4a3f721667dd.jpeg)

# はじめに

<h3>こんにちは！！@Sicut_studyです！</h3>

今回は**Go言語**の個人的に良かったと思った学習方法を<font color="red">**Go言語を学ぶための最速ロードマップ**</font>として記事にまとめていきます！

つい先日**技術書典**があり、改めて**Go言語**が注目されているというのを再実感しましたので記事を書くなら<font color="red">**今だ！！**</font>と思いました

過去にも**0からロードマップシリーズ**は書いていますので参考にしてみてください

https://qiita.com/Sicut_study/items/78910cd8d103b8d45a73

https://qiita.com/Sicut_study/items/6238413b66e274bccd7b

# この記事の対象者
- Go言語を勉強しよと考えている人
- バックエンドの学習方法について知りたい
- 新しい技術を学びたい方

# ロードマップ

このロードマップでは0から学習をして

#### Go言語でWebアプリの基本的なバックエンドが作れるようになる

ここをゴールとして紹介しています
私の記事では何度も行っている通り、**最低限のインプット**にとどめてとにか<font color="red">**実践で学習していく**</font>方針で説明していきます

今回は以下の3ステップで学習していきます

1. **書籍でインプットする**
2. **TODOアプリを作成する**
3. **個人開発で利用する**

# 1. 書籍でインプットする

まず最初はGo言語の基本的な内容について学習します。
またAPI作成やDB接続などWebアプリを作る際に必要なことも学んでいきます。

書籍は以下を手を実際に動かして実装をしながら<font color="red">**理解することを意識して**</font>学習してください

https://techbookfest.org/product/jXDAEU1dR53kbZkgtDm9zx

私のチームのメンバーもこの書籍からGo言語を学び実際のプロジェクトで実装をしました。アーキテクチャ含め何度も参考にした素晴らしい本です。

同人誌ではありますが、商業本や動画講座などを2022年10月時点でほぼすべてやった中で最も参考になりました (後述)

後半が<font color="red">**中級者向け**</font>になっているため<font color="red">**8章**</font>までをこの段階で理解して実装できればこのステップとしては完了となります。

# 2. TODOアプリを作成する

個人的に<font color="red">**新しい言語を学ぶならまずはTODOアプリを作る**</font>が習得の近道だと思っています

https://qiita.com/Sicut_study/items/a5ecc4fb656cc1f56bf6

(この考えについてはこちらの記事に詳しく書いています)

ということで最低限のインプットを終えた段階でTODOアプリに利用できるAPIを作成していきます。基本的なCRUDで完成するため、<font color="red">**1で学習したものを実際に自分のアプリに落とし込んで使っていきより理解を深めます**</font>

ここで以下のライブラリを使って実装することに挑戦しました
- gin (Webフレームワーク)
- gorm (ORM)

とくに<font color="red">**gin**</font>を使うことはWebアプリを簡単に作れるようになるためぜひこのタイミングで導入してみてください

私が実際に学習したときのリポジトリは以下になります

https://github.com/jinwatanabe/go-todo-clean-app

- ToDoの一覧を取得する
- ToDoをidで取得する
- ToDoを登録する
- ToDoを更新する
- ToDoを削除する

この5つを作成しますが、**一覧取得**と**登録**ができればあとは同じように作れるので1週間程度で作ることが可能かと思います。


# 3. 個人開発で利用する

#### <font color="red">このタイミングで実際に個人開発のバックエンドAPIにGo言語を利用します

2でほとんど必要な知識は取得しているのでサクサク実装が可能かと思います
ここでは応用的な使い方であったり、よりアプリに特化して必要なことを必要なタイミングで学んでいきます

実際に私が教えていたときは**1日開発合宿**を開いて個人開発をするきっかけを作ってこのステップを実践しました

https://qiita.com/Sicut_study/items/babc9c5aa13d983312a8

ポイントは<font color="blue">**複雑すぎないAPIにGo言語を利用して最後まで作りきること**</font>だと思っています。
難しいのを作るのも素晴らしいですが、それよりも簡単なものでもいいから<font color="red">**最後まで作り上げた経験を積む**</font>ことのほうが大切だと思っています。

そのことを意識して是非挑戦してみてください🎉

# 4. そこから先..

**1から3のステップ**を達成した頃には言語をある程度使い越せるようになっているかと思います
そんな方にぜひ読んでもらいたい書籍がでましたので最後に紹介します

https://techbookfest.org/product/9a3U54LBdKDE30ewPS6Ugn

こちらの書籍ですが、Go言語でクリーンアーキテクチャを学ぶことができるので良いなと思いました

Go言語がある程度わかっている状態、かつクリーンアーキテクチャをなんとなくわかるというレベル感ならスラスラ読める難易度の書籍となっています

クリーンアーキテクチャがあまりわからない場合はぜひ書籍を1週読んでみて、<font color="red">**実際のコードを参考にしながらステップ1で作成したTODOのAPIを作り直してみてください**</font>

Go言語らしいコードがかけるようになるかと思いますし、ここでの経験が実力になっていくかと思います。

私はこの本をやってDBの接続設定などは特に参考になりました！
(クリーンアーキテクチャは普段から使っているため、そこに学びがありました)

Go言語をすでにかける方にもおすすめです！

# おわりに

1年前の私は<font color="blue">**Go言語を学習するにこの教材がよい**</font>などの情報がなかったので手当たりしだいすべての教材をやりました

https://qiita.com/Sicut_study/items/645409dba2322a3204a0

そんな過去があったからこそ<font color="red">**この学習が効果的だった**</font>というのがわかったので今回まとめてみました

Go言語はとても人気な言語だと思いますので気になった方はこのロードマップでぜひ学習してみてください！

ここまで読んでいただけた方はぜひ**いいね**と**ストック**よろしくお願いします。

また @Sicut_study をフォローいただけるととてもうれしく思います。

<h5>少し宣伝します🔥🔥🔥🔥🔥</h5>

これからエンジニアになろうとしている人を本気でコーチングして3か月の期間で立派なエンジニアにするようなチャレンジをしてみたいなと考えております。

もし、本気でエンジニアを目指してコーチングを受けてみたいという方がいれば、[Twitter](https://twitter.com/Sicut_study)に「プログラミング教えてほしいです」みたいなリプライ送っていただけたらなと思います！！

以上です。
今週もプログラミング頑張りましょう！

![bandicam 2023-10-04 20-58-54-525.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/f41a0065-b23e-1895-da22-66bf0e48c5fb.jpeg)

# おすすめの記事

https://qiita.com/Sicut_study/items/1723379221bd966b36aa

# 参考

https://techbookfest.org/product/jXDAEU1dR53kbZkgtDm9zx?productVariantID=dvjtgpjw8VDTXNqKaanTVi

https://techbookfest.org/product/9a3U54LBdKDE30ewPS6Ugn?productVariantID=itEzQN5gKZX8gXMmLTEXAB