社内勉強会を開いたら、継続的なインプットだけでなく最先端まで学習できた話

# はじめに

勉強を続けられないエンジニアが社内勉強会を開いたら、継続的な勉強習慣を身に着けるだけでなく最先端まで学習する機会が訪れたので、社内勉強会を開催するコツ・社内勉強会によって得られたことについて記事にまとめました。

こんな方にオススメです！

- 身に着けたい技術・スキルがあるけど、一人だとなかなか勉強が続かない
- プログラミング言語やフレームワークの新機能を試したいけど時間が足りない
- 社内勉強会を開催したいけど、やり方がわからない

# 社内勉強会を開いたら、継続的なインプットだけでなく最先端まで学習できた話

この記事は以下の構成となっています。

- 社内勉強会を開催したきっかけ
- 社内勉強会を始めるまでの準備
- 社内勉強会を半年続けた結果、得られたもの

## 社内勉強会を開催したきっかけ

Qiita株式会社のエンジニアとして新卒入社した僕は、周りのエンジニアの技術力に追いつくために Qiita で使われている技術の勉強を始めました。しかし、なかなか習慣化ができずに伸び悩んでいました。そこで、ある先輩かこんなアドバイスをいただきました。

「勉強が続かないなら、勉強せざるを得ない状況を作るといいよ！」

そう、勉強が続かないなら、勉強を続けないといけない状況を作ってしまえばいいのです！

というわけで、勉強せざるを得ない状況を作ることにしました。「勉強せざるを得ない状況」といっても、やり方はいろいろあります。今回僕が選んだ方法は、「勉強会を開催する」という方法でした。勉強会の形式を当番制にして、毎週何人かが発表する、という流れにすれば必ず自分の番が回ってくるので勉強せざるを得ない状況になります。さらに、自分の当番の時以外も他のメンバーが勉強した内容を学ぶこともできるので一石二鳥です！

というわけで、勉強会を開催することになりました。

## 社内勉強会を開催までの準備

勉強会を開催するためには、準備が必要です。僕が社内勉強会を開催するまでも様々な準備を行いました。当時は過去にQiitaで行われた勉強会を参考に試行錯誤しましたが、今振り返ってみると重要なのは以下の3つだと思いました。

- 勉強会の内容・形式を決める
- メンバーを集める
- 承認を得る

それぞれについて、どんな風に行ったか説明していきます。

### 勉強会の内容・形式を決める

勉強会で勉強する内容は、まず自分が勉強したい技術を中心に考えました（自分が勉強を継続することが目的のため）。そのうえで、「みんなが興味を持ちそうな技術」「業務に役立つ技術」という観点も大事でした。

「みんなが興味を持ちそうな技術」である必要があるのは、後述のメンバー集めに関係します。簡単すぎる内容だと初心者しか集まらないし、難しすぎる内容だと自分がついていけなくなるので、できれば初心者から上級者まで、多くのメンバーが集まりそうな技術になるように心がけました。また、「業務に役立つ技術」という観点は後述の承認を得るために必要です。業務に役立つ技術の方が承認を得やすいですし、業務に役立つ技術なら、メンバーも集まりやすくなります。

勉強会の形式もできるだけ継続しやすいように工夫が必要です。勉強会が毎週2時間だと、参加をためらってしまいますよね？勉強会の準備が大変で、業務に影響が出たら問題ですよね？というわけで、開催時間や、準備にどのくらいの時間がかかるのか、それらが想像しやすく、参加するメンバーの負担にならないような形式を考える必要があります。

最終的に、僕が開催した社内勉強会は以下の内容・形式になりました。

- 内容
    - プログラミング言語 Ruby3 の新機能の勉強会
    - 各自 Ruby3 の新機能を予習して、紹介する
- 形式
    - 毎週月曜の夕方に30分
    - 1人15分 (10分発表、5分質問) x2

Qiita では Ruby を使用しており、ちょうど Ruby2 から Ruby3への移行途中でした。そのため Ruby3の新機能に興味を持つメンバーも多く、業務にも役立つ内容となりました。また、形式に関しても、1回30分、当番の人はRuby3 の新機能を約10分で発表する、といった形にしました。毎週2人ずつなので、自分の当番が来るまでに数週間の準備期間があり、その間に10分で新機能を説明できるように準備するので負担も少ない形式となりました。

### メンバーを集める

勉強会を行うためにはメンバーが必要です。自分の負担を減らすためにも、ある程度の人数を集める必要がありました。そのためメンバーの集め方も、工夫することで、より確実にメンバーを集めることができました。

いきなりSlackのチャンネルで「勉強会やります！参加者募集中！」と告知しても集まるか不安だったので、事前に仲の良いエンジニアや、勉強会で扱う技術に詳しいエンジニアに「こんな感じの勉強会を企画しているのですが、どうです？」「もし開催したら、参加したいですか？」など、事前に参加してくれそうなメンバーがいるか確認を行いました。それと同時に、勉強会の形式の相談もして、より参加したくなるような勉強会にしてから、全エンジニアが集まるSlackのチャンネルで募集をかけ、参加メンバーが決まりました。

### 承認を得る

社内勉強会特有のステップかもしれないですが、勤務時間内に勉強会を行う場合は上司や経営陣に勉強会の開催を承認してもらう必要があります。そこで、より説得力のある勉強会開催の目的や、勉強会によりどのような成果が得られるかなどをまとめる必要があります。そのため、「勉強会の内容・形式を決める」際の観点や、「メンバーを集める」ことができるかどうかなど、承認がもらいやすくなるように考えるとよいでしょう。

## 社内勉強会を開催した結果

勉強会を開催するまでは準備に時間がかかりましたが、勉強会が始まってからは順調に進んでいきました。自分が担当の回以外は他のメンバーが準備を行うので、勉強に掛ける時間を抑えつつ、効率よく勉強することができました。また、自分よりも技術力の高いメンバーも参加していたので、1人だけ勉強していたら知り得なかった知識まで身に着けることができました。

そして！さらなる学習の機会が舞い込んできました！当時、Qiita株式会社はプログラミング言語 Ruby の国際カンファレンス「RubyKaigi2023」へのスポンサーとして出展する準備を進めていました。エンジニアの中からも何人か参加して、Ruby の最先端を学ぶ予定だったのですが、なんと自分がそのメンバーの一人として推薦していただき、RubyKaigiに参加することができました！

https://zine.qiita.com/event/qiita-rubykaigi-2023-day1-report/

僕は Qiita に入社するまでほとんど Ruby を書いたことがありませんでしたが、社内勉強会がきっかけで最先端のRubyの知識まで身に着けることができました。また、自分以外のメンバーからも、社内勉強会で得た知識のおかげでよりRubyKaigiの理解が深まった等、多くの感謝の声をいただくことができました。

勉強会に参加したメンバーが投稿した Ruby の新機能の記事や、RubyKaigi の記事が Qiita にたくさんあります。このように、勉強した内容をアウトプットすることで、より深く技術を身に着けるだけでなく、社外へのアピールにもなります。

- Qiita社内 Ruby3新機能勉強会
    - [【Ruby1.8以前から】Rubyの処理系とJIT【Ruby3.2のYJITまで】 - Qiita](https://qiita.com/wataru86/items/ab2d1b507c8d67c73281)
    - [【Ruby3】rbs コマンド使い方【RBS】 - Qiita](https://qiita.com/wataru86/items/7de284484b7a1b376eb5)
    - [Ruby3の1行パターンマッチ（右代入）と一行メソッド定義（エンドレスメソッド）について - Qiita](https://qiita.com/kyntk/items/26cf1b43b85931ae6138)
    - [社内Ruby3新機能勉強会資料 ~RBSとは~ - Qiita](https://qiita.com/getty104/items/9a2a20a6e170ab53191c)
    - [ruby.wasmについて - Qiita](https://qiita.com/getty104/items/67245fb24ad101a6ec97)
    - [【Ruby3.1】error_highlight gem について - Qiita](https://qiita.com/wataru86/items/6153b22d210251365e09)
    - [RubyVM::AbstractSyntaxTreeについて調べてみた - Qiita](https://qiita.com/kyntk/items/4c0af75c0b6ea3571f8f)
    - [Ruby3.2の正規表現の高速化を、実際にオートマトンを作って体験してみる - Qiita](https://qiita.com/WakameSun/items/a54add23f2578a46ebed)
- RubyKaigi
    - [【RubyKaigi2023】型でIRBの補完がパワーアップ！【katakata_irb】 - Qiita](https://qiita.com/wataru86/items/574e290c2fafc7a3e0e6)
    - [RubyKaigi2023 "Ractor" reconsideredで分からなかった部分などを調べてみた - Qiita](https://qiita.com/kyntk/items/463b0a5f824d3dcd5644)
    - [RubyKaigi2023 Day1 視聴レポート - Qiita](https://qiita.com/kyntk/items/8483d78c419f7be53489)
    - [【RubyKaigi2023】debug.gem 1.8.0 で Ruby のデバッグをしてみる【VSCode】 - Qiita](https://qiita.com/wataru86/items/b3bf5a579c2b128982bb)
    - [【RubyKaigi2023】Ruby対応されたDebug Visualizerを試してみた - Qiita](https://qiita.com/fussy113/items/6e1c487d169bc2fa0f69)
    - [RubyKaigi 2023 参加レポート「Revisiting TypeProf - IDE support as a primary feature」 - Qiita](https://qiita.com/ohakutsu/items/e4aca79fbf4eff72a981)
    - [RubyKaigi 2023 参加レポート「Load gem from browser」 - Qiita](https://qiita.com/ohakutsu/items/3038986f187d7ae6c5aa)
    - [RedAmberを触ってみた - Qiita](https://qiita.com/WakameSun/items/614f4c6ddc42bccc1680)
    - 上記以外にもたくさんの記事があります！
        - [「org:qiita-inc RubyKaigi」の検索結果 - Qiita](https://qiita.com/search?sort=rel&q=org%3Aqiita-inc+RubyKaigi)

# さいごに

簡単にまとめると、以下のようになります。

- 勉強が続かないなら、勉強をせざるを得ない状況を作ろう！勉強会がオススメ！
- 社内勉強会は「勉強会の内容・形式」「メンバー募集」「承認を得る」ことが大事！
- 勉強会を主催すると、それがきっかけでさらに勉強する機会が得られるかも！

最初に勉強会をやろうと考えていた時には、まさか自分が RubyKaigi に参加するとは思いもしていませんでした。Qiita 株式会社での Ruby新機能勉強会は終わりましたが、現在は同様の形式で React 新機能勉強会を開催しています。できれば今後も勉強会を続けていきたいです！