コメント飛び交う社内競プロ勉強会
Acompanyプロダクト部門DCRチームの坂本です.この記事は#アカンクリスマスアドベントカレンダー2023 28日目の記事となります.
最近社内で競プロ(競技プログラミング)勉強会を始めたので,その概要を紹介したいと思います.
また,勉強会中に参加者からの気軽なコメントが欲しいなと思い参加者がコメントしやすくなるシステムを新たに開発したので,後半ではそのシステムについて紹介します.
社内で勉強会などを開いているが参加者からの反応が薄くて寂しいと言った悩みを抱えている人の参考になれば幸いです.
勉強会の概要
日程は隔週火曜日の20:00~21:00で行っています.
隔週にしたのは現在発表者が筆者一人であり毎週だと資料作成やネタ探しが少し厳しいことと,競プロモチベがよっぽど高い人でないと毎週聞くのは少し疲れるかなと考えたからです.
宿題というわけでは無いですが,勉強会の最後には「今日の内容で解ける問題」を2~3問紹介しているので,それらを次回までに解いてくることを目標とした場合にも隔週はちょうどいいのかなと思っています.
また,時間が一時間なのは自分が聴く側になった時集中力が持つ限界がそれくらいかなと思ったからですが,絶対に厳守するというつもりはなく,内容によって10~20分程度伸びることはよくあります.
現在は筆者が社内 Notion で講義資料を作成し,Discord で画面共有しながら内容を話すと言う形式をとっています.
弊社はフルリモートが可能な企業であり北海道から沖縄まで社員が各地に散らばっている都合上,対面ではなく全てオンラインで行なっていると言うのは大きな特徴の一つかなと思います.
参加者は社内のエンジニアや R&D のメンバーなど大体10人弱です.
競プロ未経験の方から AtCoder 青や黄色の人など,幅広い層の方が参加してくれています.
特に参加義務などはなく内容も一回完結なため,都合が合って面白そうなら聴講するくらいのゆるい雰囲気でやっています.
講義資料と講義の録画は勉強会後も社内で公開されているため,参加出来なかった人も後から内容を確認することが出来ます.
開催場所は先述の通り社内 Discord なので,正社員だけでなく業務委託やアルバイトの方も参加することが可能で,実際参加者には R&D でアルバイトをしている大学生などもいます.
勉強会の内容はざっくり
僕がはちゃめちゃに面白いと思っている
一時間程度で話せる
AtCoder 緑〜水色の人が知らなさそう
AtCoder Beginner Contest である程度の頻度で見かける
あたりを意識していますが,下に行くほど優先度は低いです.
競技で勝てるようになるための会というよりかは僕が面白いと思っているアルゴリズム・データ構造を社員に聞いてもらう会みたいな感じです.
勉強会中の反応
ありませんでした...
第一回では形式的冪級数と言う概念の入門について喋ったのですが,都度質問タイムを挟んだにもかかわらず,ただの一つも反応がないまま一時間強僕が喋り続けて終わりました.
オンラインで参加者の顔も見えないので,みんながどれくらい理解出来ているのかが全く分からないまま虚空に向かって喋り続けなければならず非常に辛かったです.
しかしこれに関して参加者を責めるつもりは一切ありません.
僕は(会社とは関係ない)別のオンライン競プロ勉強会にも参加しているのですが,そちらでは僕が圧倒的に一番下の実力であり「分かっていないのは自分だけでは」「自分一人のために講義を止めるのが申し訳ない」と考えてしまい全然質問やコメントが出来ていないので,参加者がコメントしづらい気持ちはとてもよく分かるからです.
一応社内 Slack では times と呼ばれる各々の個人チャンネルでそれぞれ実況がなされており勉強会終了後に目を通しましたが,やはり勉強会中にコメントをリアルタイムで見たいなと思いました.
突然ですがここで問題です.
人が一番コメントしやすい場所とはどこでしょうか?
もちろんニコニコ動画ですね!(諸説あり)
ニコニコ動画を利用したことがある人はわかると思いますが,サイト内の動画や生放送では画面上をひっきりなしに視聴者のコメントが飛び交います.
したがって勉強会にニコニコ動画のコメントシステムを付ければ参加者がリアルタイムで気軽にコメントを出来るはずです.
...これを実装するのは少し頑張らないといけなさそうですね.
そこでとりあえず匿名でコメント出来る場を一つ設けることにしました.
名前が出ないだけでも少しハードルが下がるかな?と言う仮説です.
また,勉強会中にコメントする場を一つに絞ることで今まで個々の times に書かれていた内容を集約すると言う狙いもあります.
そこで Slack に匿名チャンネル #times-anonymous を作成しました.
times-anonymous
実は社内 Slack に匿名チャンネルを作成すると言う試みは各社で行われているらしく調べるとさまざまなやり方がヒットしますが,一番簡単に行えるのはワークフローを使うことかなと思います.
上の画像のように Slack 上でワークフローを作成すると,任意のチャンネルからワークフローを通して文章を入力するだけで Bot 経由で匿名チャンネルに書き込まれるようになります.
とりあえず勉強会関係なく社内共有すると,いい感じに荒れました.
なりすまし?なども発生.
こういう場で定番(?)の実名投稿してしまう人も.
社内にはきちんとした人しかいないため,今の所酷く荒れたり誹謗中傷の類が書かれたりと言ったことはありません.
おそらく Slack のワークフローを誰が叩いたのかは記録されているため社内 Slack 権限が強い人がきちんと調べれば実名が分かる(実質開示請求)というのもありこの先も荒れることはないと信じています.
コメント付き勉強会
第二回の勉強会では画像のように,画面の右側に匿名チャンネルを表示した状態で行ってみました(匿名チャンネルごと画面共有されます).
70分の勉強会中に40個程度のコメントが流れました.
「天才」とか「確かに」のような軽いコメントが流れるだけでも発表者としてはだいぶ救われました.
「これはこう言う意味ですか?」のような細かい質問なども適宜拾えたため,参加者からしても一回目より実りのあるものになったのではないかなと思います.
勉強会中見えるところにコメントが欲しいだけなので #times-anonymous に実名で書き込むのでもいいと伝えたはずなんですが,みなさん律儀に匿名で書き込んで下さっていますね.
終わりに
競プロ勉強会の紹介と匿名チャンネルの成果についてでした.
匿名チャンネルはまだ色々改善の余地があると思うので,これからも少しずつ調整しようと思います.
社内ツールでおもちゃを作って社員に遊んでもらうのは楽しいですね.
競プロ勉強会はこれからも飽きるまでは続ける予定で,資料も体裁を整えて社外公開しようかなと考えています.
興味のある方はぜひ入社の検討を.
おまけ
匿名投稿のワークフローは以下でした.
これを少し弄ると...?
一見匿名で投稿されているように見えるけど僕にだけ DM で誰が投稿したか通知されるようになります.
夢が広がりますね.
この記事が気に入ったらサポートをしてみませんか?