3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Go Conference 2025: Go Quiz Workshopに参加してきた

Last updated at Posted at 2025-11-30

本記事でやること

Go Conference 2025のDay1で開催された「Go Quiz Workshop」に参加してきました。Go初心者の私としては、とても満足度が高いワークショップだったので簡単に内容や感想をまとめたいと思います。

対象読者

  • Go初学者の方
  • Go Quiz Workshopに参加したかったけど参加できなかった方

使用言語

  • Go 1.25

はじめに

image.png

先日大盛況に終わったGo Conference 2025へ参加してきました。久しぶりに数百人規模のカンファレンスにオフラインで参加するということもあり、せっかくならセッションを聴講するだけではなくて実際に手を動かしながら学べるワークショップに参加したいと思いました。

魅力的なワークショップが沢山ありとても迷ってしまったのですが、聴講したいセッションのスケジュールの兼ね合いやtenntennさんを一目見てみたいという思いから、「Go Quiz Workshop」に参加することを決めました。

結論、とても学びが多く、もっとGoの言語仕様を知りたいと思った満足度が高いワークショップで参加して本当に良かったなと思いました!!

Go Quiz Workshopとは

簡単にいうと「言語仕様の絶妙に間違えそうなポイントを問うようなクイズを作成する」というワークショップです。

クイズを作成するというのも面白いのですが、クイズを作成する過程で曖昧だった言語仕様への理解が深められる、さらに他者に解答を説明することで頭の中で漠然とした理解が整理されより深い理解に繋がるというのがとても魅力的に思いました。

公式ホームページの概要を以下引用させてもらいます。

公式ドキュメントや言語仕様を読み込むことで、面白くて学べるGo Quizをつくるワークショップです。
まずは講師からQuizづくりのコツを学びます。短時間で答えられて、シンプルでかつやりがいがあり、回答から楽しく学べる問題の作り方を説明します。
次にClaude CodeやChatGPT、DeepWikiなどの力を使い、公式ドキュメントや言語仕様、ソートコードからQuizで使えるネタを見つけます。
参加者は回答者に学んで欲しい知識をクイズに込めて作問してもらいます。作った問題は参加者同士で回答しあったり、Xにポストすることで色んな方に回答してもらえます。
シンプルな問題にすれば、回答者は日本語話者に限りません。Gophers Slackなどで共有することで国外のGopherにも回答してもらえるでしょう。
参加後に問題の解説をブログに書くことで、参加者自身のアウトプットにつなげることもできます。

当日の流れ

ワークショップで共有してもらった資料の公開の許可を得ていないので、箇条書き程度で当日の内容を以下に記載します。

  1. 良いクイズを作成するポイント・テクニックの紹介
  2. クイズのネタの仕入れ先の紹介
    Release Note / The Programing Language Specification
  3. 生成AIを活用したクイズの作成方法の紹介
    プロンプトの例の紹介・事前に読み込ませる資料の紹介
  4. 良いクイズのチェックリストの紹介
  5. 参加者各自で生成AIを使ってクイズを作成
  6. 作成したクイズの紹介・解説

プロンプトの例

生成AIの指定はなかったのでClaudeを使うことにしました。私がクイズを作成する過程で入力したプロンプト例です。

なぜか、「Go1.23」が最新の安定版とされていて、Go1.25でリリースされた時事ネタをクイズにすることは諦めましたww

スクリーンショット 2025-11-28 23.51.23.png

私が作成したGo Quiz

Q1. iotaや定数の仕様を問う問題

image.png

Q1解答

答え: 2

解説

  1. iotaはconstブロック内で0から始まる
  2. 各定数宣言(改行)ごとに1ずつ増加
  3. 値を明示的に指定しても、iotaのカウンタは増え続ける
  4. 値を省略した定数は、前の定数と同じ式を使う

この問題は、iotaは連番を作るというよくある誤解と定数の仕様を問うクイズになっています。

iotaは定数宣言の位置を示すカウンタです。
https://go.dev/wiki/Iota にも紹介がありますが、以下のように_ ブランク識別子を使った行でもカウントは進みます。

https://go.dev/play/p/NrqcfsIsSSp

package main

import "fmt"

const (
	a = iota
	_
	b
	c
	d
)

func main() {
	fmt.Println(a, b, c, d) // 0 2 3 4
}

Q2. deferの仕様を問う問題

image.png

Q2解答

答え: 2

解説

  1. deferはlast in first out(最後に追加sれたものを最初に出力する)

Deferred function calls are executed in Last In First Out order after the surrounding function returns.

https://go.dev/blog/defer-panic-and-recover

まとめ

Go Quiz Workshopに参加して、「クイズを作る」という一見変わったアプローチが、言語仕様を深く学ぶ上で非常に効果的であることを実感しました。
普段コードを書いているだけでは見過ごしてしまいがちな言語仕様の細かい部分や、なんとなく理解していたつもりの挙動について、クイズとして他者に問いかける形にまとめることで、自分の理解の曖昧さに気づくことができました。昨今、生成AIがそれっぽいコードを書いてくれるので、言語仕様を深く理解しなくてもある程度のコードは書けてしまいます。なので、「なぜこのコードが動くのか」「このコードの挙動は正しいのか」を判断できる力がより重要になってきていると感じます。

また、生成AIを活用しながら公式ドキュメントや言語仕様を読み込むという学習方法も新鮮で、効率的にネタを探せる点が良かったです。

最後に、素晴らしいワークショップを企画・運営してくださったtenntennさんをはじめとする関係者の皆様ありがとうございました!!

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?