スパルタSQL【SQL勉強会】を続けている話



はじめまして、CampfireCommunity事業部のmoriです。

本日はコミュニティ事業部で2019年5月から１年半ほど続けているSQL勉強会について書きたいと思います！
といっても、実は一年ほど私は参加していないので、資料を漁りつつ、まとめています。


#きっかけ
[カンム社員全員でSQL勉強会をやっている話](https://akirachiku.com/post/2019-02-23-spartan-sql/)

この記事をコミュニティ事業部でもやってみようとなったのがきっかけでした。
やり方も初期は大変参考にさせていただきました。

#どういう目的で行っているか

|![スクリーンショット 2020-12-08 15.07.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15563/3168aba2-a69c-ac6f-e4cb-dda94f9a993a.png)|
|:--|

こちらはnotionのスクショ
上の通り。
始めるときに指標になる、何故やるのかが分かりやすい場所にあるって大事ですね。

ちなみに今2020年12月時点では固定参加メンバーが9名ほどになっています。


#対象者
勉強会の対象者は、コミュニティ事業部のメンバー全員で参加は任意となっています。

実際に参加している・していた職種としては、

* ディレクター
* セールス
* カスタマーサポート
* エンジニア
* デザイナー
* etc...

と、いろんな方に参加いただきました。

#使用しているサービス

* notion
    * その日ごとにnotionのページを作成して、運用しています。
* [プロゲート](https://prog-8.com/languages/sql)
    * 全くSQLを知らないところから始めるので、導入しました。
* redash
    * 個人情報がマスクされている状態で利用しています。
* GoogleMeet
    * 東京・宮崎・福岡と拠点が別れているコミュニティ事業部。通話をつなげて開催しています。


#実施している内容

## 時間配分
現在は金曜日の13:30より1時間、45分を自習、15分をそれぞれ今日やったことのまとめ時間としています。

まとめ時間では以下の項目を記入し、他の参加者に共有してもらいます。

|![スクリーンショット 2020-12-11 15.41.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15563/bcc4bc58-f992-49b2-7e9c-147403b9731f.png)|
|:--|

気をつけている事は以下の3点

- 必ず目標/調べることを最初に決める
- DBで質問したいことができたらどんどん質問してもらう
- 余裕があれば、SQLをレビューする

ちなみにタイムキーパー兼質問の回答役としてエンジニア1名は参加してもらっています。

## 内容
上記にあるように、自習がメインなのですが、ただやってくださいと放置しても戸惑うと思うので、
３つのステップに分けて自習ができるように準備しています。

###ステップ1: プロゲートの攻略

最初は、SQLの基礎を[プロゲート](https://prog-8.com/languages/sql)で学びます。
経験者もいい復習になるので、是非一周はしてみてください！
プロゲートを選んだ理由は、SQLの基礎の中でもSelect文を中心に解説付きで何度も練習ができることが魅力でした。
調査だけならInsert系やテーブル作成・編集関連の知識は殆ど必要ないので、そういった部分が省いてあることも大きかったです。

基礎をひとりひとりに教えることは、回を重ねるごとに教える側の負担になるのでとても助かっています。

###ステップ2: データベースを読むために、データベース設計を学んでみる

データベースのセオリーがわかってないと、実際に稼働しているデータベースでSQLを書くのは難しいと思っているので、最初に設計、特に正規化を学んでもらいました。
どういった意図でテーブルを分けていくのかを理解してもらってから実際のデータベースを扱ってもらうようにしています。

ここでは、自分でまとめる事が大変だったので、参考になる記事を集めたりしました。

|![スクリーンショット 2020-12-11 16.03.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15563/d7b5a950-fef5-df30-bb89-71bc1bae7b1b.png)|
|:--|

参考リンク:
[4ステップで作成する、DB論理設計の手順とチェックポイントまとめ](https://qiita.com/nishina555/items/a79ece1b54faf7240fac)
[データベースの正規形について考える - Qiita](https://qiita.com/nomunomu0504/items/0ff1329dce297c8bd5c9#%E4%B8%BB%E3%82%AD%E3%83%BC%E3%81%A8%E9%9D%9E%E4%B8%BB%E3%82%AD%E3%83%BC)
[かけだしSEのためのデータベース設計入門](https://proengineer.internous.co.jp/content/columnfeature/6499)
[若手プログラマー必読！５分で理解できるER図の書き方５ステップ](https://it-koala.com/entity-relationship-diagram-1897)


そろそろ社内用にまとめても良さそう…

また、次は実際にSQLを触ってもらうので、社内の個人情報の取扱いについてや、なにかインシデントが発生した時の手順についてなどをここで確認してもらいます。

|![スクリーンショット 2020-12-11 16.07.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15563/e58869da-7651-e243-fa00-60ae3f954d33.png)|
|:--|


###ステップ3: 要望集からSQLを書き出してみよう
実際にredashでSQLを書いていくステップに入ります。

といっても、どういった事がSQLで調べられるのか、どのテーブルを使うのかなどは最初は全く分からないと思うので、勉強会内で調べた課題を共有できる場をつくりました。

|![スクリーンショット 2020-12-11 16.29.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15563/43c11727-c293-4515-4126-c2d8e0497f84.png)|
|:--|

内容はこんな感じ↓

|![スクリーンショット 2020-12-11 16.41.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15563/2c969d6b-fed6-699f-1ec4-2e1bdbbe2881.png)|
|:--|


工夫としては、複数のテーブルがまたがる程に難しく感じる人が多かったため、Table数で難易度をつけてみました。


セールスやカスタマーサポートの参加メンバーは実務に直接つながるデータを取る傾向が強かったので、新しい目線で面白かったです。


この辺りを確認中に見たことのないページが…

|![スクリーンショット 2020-12-11 16.43.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15563/b38b31e8-dfdb-0a14-1730-1281e8fb7a86.png)|
|:--|

いつの間にかに路上教習が増えてました！



こんな感じで各々自発的にやってもらっています。

# 折角なので参加メンバーに感想を聞いてみました

**参加期間**　多分半年くらい
**役職**　デザイナー
**満足度**　最高
**最近SQLで調べたこと・勉強したこと**
- ユーザーインタビュー相手の選出
- UI策定
- 新機能の利用者確認

- - -


**参加期間** 1年くらい？
**役職** セールス
**満足度** 最高です
**最近SQLで調べたこと・勉強したこと**
- 担当案件の詳細を知るために作成、ダッシュボードで一覧化
- 掲載カテゴリ毎の流通、会員属性など抽出し、セールスの戦略立案に活用

- - -


**参加期間** 教わる1~2ヶ月/説明するがわ6ヶ月/また教わる側2ヶ月
**役職** エンジニア
**満足度**  大満足です。
**最近SQLで調べたこと・勉強したこと**
- 一人目のメンバー獲得までの期間
- 公開中のコミュニティはメンバー数によって継続期間が変わるのか

- - -

**参加期間** 1年月
**役職**（なんだろう）
**満足度** とても良かった
**最近SQLで調べたこと・勉強したこと**
 最初は何をしてるかさっぱりだったのですが、参加するにつれどうやって調べれば良いのかの流れを考えれるようになり自分が欲しいと思うデータを取得できるようになりました。カスタマーサポート対応などでとても助かっています。

- - -

**参加期間** 1年くらい
**役職** カスタマーサポート
**満足度**
 勉強の時間を作れて、普段数値に触れる機会があまり作れていないので、数値に触れることのできる時間はとても幸福でした
**最近SQLで調べたこと・勉強したこと**
- コミュニティの規模の分布
- オーナーのコミュニティの所属率
- その他、CSチームの行うコミュニティの閉鎖やメンバーの退会に関する数値などをとったりしておりました。

---


ご協力ありがとうございました！


# まとめ
初期メンバーの何人かは勉強会は卒業して、各々で業務の中でSQLを使っていくようになりました。
また、勉強会の時間をSQLを使った調べ物の時間としているメンバーもいます。

開始から1年半たちましたが、継続して実施されているのは嬉しいですね。

今回この記事を書いていて、勉強会自体はうまく運用できているけど、ステップ3以降のスキルアップの方法がないことに気づきました。
次のステップも何か考えたいです！


最後まで読んで頂きありがとうございました！