データサイエンティストの為のGit入門勉強会#1を実施したので振り返る

私が所属しているデータラーニングギルドというオンラインコミュニティにおいて、「データ系職種の人が最低限知っておきたいGitのあれこれを学ぶこと」を目的として勉強会を開いた。

本エントリーでは、第一回の勉強会をKPT方式で振り返ろうと思う。

まず、第一回の勉強会をどのように実施したのかを説明し、その中で得た学び(Keep, Problem)と次のアクション(Try)を記述する。

1. 第一回勉強会の内容

どのようにやったか

  • 形式
    • 講義形式(筆者が説明)+実践(ハンズオン)
    • ※オンライン
  • 教材
  • 参加者のGitに関する前提知識
    • 触ったことがない〜業務外で個人的に使ったことがある
  • その他
    • 参加者には予め以下の準備を依頼
      • 教材のサイトをさらっと見ておくこと
      • Gitをインストールしておくこと
      • Githubアカウントを作成しておくこと

何を勉強したのか

  • Gitにまつわる概念的説明
    • バージョン管理とは
    • ローカルリポジトリ、リモートリポジトリとは
    • 分散バージョン管理とは(SVNの違いとか)
    • コミット、プッシュ、プル
    • インデックスとワーキングツリー
  • Gitの基本コマンド
    • git init
    • git status
    • git add
    • git commit (-m "comment")
    • git push
    • git clone
    • git pull

参加者からの講義に関する質問や意見など

  • 質問
    • コミットとプッシュの違いは何か?
    • プッシュとクローンの違いは何か?
    • ローカルで3回コミット後プッシュした場合、リモート側でも3回分の履歴が残るのか?
    • 他の人と競合したらどうするのか?
    • インデックスとワーキングツリーはどう違うのか?
  • 意見
    • SVNとGitの違いがわかってよかった
    • コミットとプッシュの違いがわかった
    • git statusした時のターミナルの出力からいろんな情報が読み取れることがわかった

など

2. Keep

  • 教材サイトの節目節目で質疑応答の時間をとったこと
    • 私の予想していないところで参加者の方から疑問が上がった。早い段階でその疑問点を払拭することができた。
  • ライブコーディングでGitの操作を行ったこと
    • 「今のその部分の作業は何をしたのですか?」のような質問があった
    • 口頭のみで説明した概念的ものを実際にGitの出力結果として見せることができた
  • Git初心者ではない参加者の方にサポートしていただいた(具体的には以下)
    • 私が口頭で説明仕切れなかった部分の補足解説をチャット上でしてくれた
    • 参考サイトのURLを貼ってくれた
  • 参加者の中から議事録作成者を募集したこと(そして、有難いことに立候補してくれる人がいたこと)。議事録を書く方が最も多くの質問をしてくれた

3. Problem

  • 本勉強会の為の説明スライドを用意しなかった
    • 教材サイトの中からピックアップして説明したので、あちらこちら行ったり来たりして、参加者の方は聞きづらかったのではないかと危惧している
  • 第一回勉強会のゴールが明確でなかった
    • この勉強会を終えてどのような状態になることが目標なのか?
    • この講義におけるスコープは何か?
    • など...
  • 実践する時間が少なかった為、ハンズオンでの質問を多く受けられなかった
    • 個人的には、実際に触ってから生まれる疑問に答える方が学びの手助けとして重要と考えている

4. Try

  • 本勉強会の為の説明スライドを作成する
    • 本勉強会のターゲット(データ系職種、Git初心者)向けとしてふさわしいトピックのみをまとめた資料を作成する
    • ただし、Git周辺の概念的な説明文や模式図などはすでに存在している素晴らしい資料を参考にして省エネする
  • いつでも質問大歓迎の雰囲気作り、場作り
    • データラーニングギルドのSlack内に本勉強会用チャンネルがあるが、
    • 勉強会の実施要領などを通知するだけの場になっている
    • 質問文を考えること自体コストがかかるし、それを勉強会の時間内で全員ができるかといえば難しい
    • したがって、非同期での質問受付の場を設けることとする。かつ初学者でも質問しやすい空気作りをする。(具体的にどうするかはまだ考え中)