<GoLearn/>
ブラウザだけで学習できる

Goを学ぼう

Goの基礎からWeb開発、並行処理まで。 ブラウザ上でコードを書きながら学びましょう。

学習ロードマップ

あなたの目標に合わせて学習パスを選ぼう

🐹

Go基礎

プログラミングの基礎を学ぶ

変数、データ型、制御構文、関数、配列・スライス、構造体とメソッドなど、Goプログラミングの基礎をしっかりと身につけましょう。

学べること

  • 変数とデータ型
  • 制御構文
  • 関数
  • 配列・スライス
  • 構造体とメソッド
  • 文字列操作

コード例

// Goの基本
package main

import "fmt"

func main() {
    name := "太郎"
    age := 25
    hobbies := []string{"読書", "ゲーム", "料理"}

    fmt.Printf("%sさん(%d歳)\n", name, age)
    for _, hobby := range hobbies {
        fmt.Print(hobby + " ")
    }
}
🌐

Web開発

net/httpでWebアプリケーション開発

HTTPサーバー、REST API、ミドルウェア、JSON処理、テンプレート、データベース連携などWebアプリケーション開発を学びましょう。

学べること

  • HTTPサーバー
  • REST API
  • ミドルウェア
  • JSON処理
  • テンプレート
  • データベース

コード例

// Go HTTP サーバー
package main

import (
    "encoding/json"
    "net/http"
)

type User struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

func main() {
    http.HandleFunc("/api/users", func(w http.ResponseWriter, r *http.Request) {
        users := []User{
            {Name: "太郎", Age: 25},
            {Name: "花子", Age: 30},
        }
        json.NewEncoder(w).Encode(users)
    })
    http.ListenAndServe(":8080", nil)
}
🚀

並行処理

ゴルーチンとチャネルを使いこなす

ゴルーチン、チャネル、select文、並行パターン、コンテキスト、syncパッケージなど、Goの強力な並行処理を学びましょう。

学べること

  • ゴルーチン
  • チャネル
  • select文
  • 並行パターン
  • コンテキスト
  • sync

コード例

// ゴルーチンとチャネル
package main

import "fmt"

func producer(ch chan<- int) {
    for i := 1; i <= 5; i++ {
        ch <- i * i
    }
    close(ch)
}

func main() {
    ch := make(chan int)
    go producer(ch)

    for val := range ch {
        fmt.Printf("受信: %d\n", val)
    }
}

準備はできた?

まずはGo基礎から始めて、着実にスキルを積み上げていきましょう。

Go基礎から始める

他の言語も学ぼう

同じシリーズの学習アプリで他の言語もマスターしよう