ハンズオン勉強会の心がけ

最近、「ハンズオン勉強会ってどうやってやっています?」という質問を受けたりします。

自分自身ここ2年くらい、専門学校の授業、コミュニティの勉強会、イベントのトレーニング講座等でハンズオンを実施しています。

これまでやってきたことをベースに整理してみたいと思います。

もちろん、この記事の内容が全て正しいということもないので、 参考程度に留めていただければと思います。

よく受ける質問としては以下となります。

  • 受講者の対応について
  • ハンズオン環境はどうしている?
  • 資料ってどんな感じ?

1つずつ見ていきたいと思います。

受講者の対応について

受講者には、初心者、中級者、上級者というカテゴリーはあると思いますが、 自分はこれまで、初心者向けのハンズオンを中心にやってきました。

専門学校では、コマンド操作も初めてとなる学生に対してのLinux入門、 Linuxのコマンド操作やパブリッククラウドでIaaS操作が一通りできることを前提とした、 Docker,Kubernetes,Rancherの入門ハンズオンをやってきました。

人数については、以下となります。

  • 専門学校:20~25名
  • 勉強会:15名
  • レーニング講座:30名

ある程度の条件を前提に受講者を募ったとしても、 受講人数の大小に関係なく、進捗に差というものが生じることがあります。

もちろん誰もつまずくことなくスムーズに進む場合もあればその逆もあります。

つまずく方が2,3名位であれば、講師をしながら対応して、進行していくこともできます。 それ以上になると、厳しくなり進行に影響が出る可能性が高まります。

つまずいている方に対応しきりになってしまうと、 すでにタスクを完了している人を待たせることになったり、 講義の進行が遅れてしまいます。

有料の場合だと、時間内にカリキュラムを終えられず、 主催者、受講者に損害を被ることになり得るので注意が必要です。

解決策としては、以下となります。

  • チューターをアサイ
  • ハンズオン時間を多めに確保

チューターをアサインというのは、講師とは別にもう1名用意することです。 つまずいた方への対応をチューターにお願いして、講師は進行を先に進めることができます。

チューター人数も多いに越したことはありませんが経験上、受講者15名以内でチューター1名、 30名近くであれば2,3名位が目安かと思います。

ハンズオン時間を多めに確保というのは、つまずく方が多くなりそうだと思うところでは、 ハンズオンの時間を多めに想定して、進行に影響が出ないようにします。

受講者全員が、カリキュラムを全て完了できる最善を尽くすのが努めと思って頑張っています。

ハンズオン環境ってどうしてる?

ハンズオン環境は、受講者全員が同じ環境でカリキュラムを行うことが理想です。

受講者が使うPC、クラウド環境、VM環境、チューター等の全てを主催者側で準備できることに越したことはありません。 しかし、それを実現しようとするとそれなりの費用が必要となります。

有料の場合は、そのあたりの費用も加味して行うことはできますが、 無料を前提とした勉強会などでは難しいというのが現実です。

まずは、自分がこれまで無料前提で行ってきたハンズオン勉強会の話をしたいと思います。

Dockerのハンズオン勉強会では、参加条件として受講者にラップトップ持参の上、 ハンズオンで利用するCentOS7をVirtualBox仮想マシンまたはパブリッククラウドのIaaSなどの事前準備をお願いしています。

パブリッククラウドでの準備では基本問題ないのですが、 VirtualBoxだとやはり受講者のラップトップのスペックや個人の環境起因で仮想マシンからインターネットに出られない等不具合が生じてしまうケースが多いです。 事前環境準備の手順書を公開しても生じてしまうケースもあります。

環境準備でつまずいてしまうと、いきなり進行が遅れてしまいます。

解決策としては、以下となります。

受講者が既にパブリッククラウドに登録している場合は、有料無料問わず、ご自身で利用してもらうことを前提にお願いしています。

VirtualBoxの利用時は、環境準備の段階で主にネットワーク周りでうまく行かなくなるケースがよくありますが、パブリッククラウドの場合はそのあたりはたまにFWの設定問題は出てきますが、概ね良好です。

ハンズオンの内容によってはそれなりのスペックを必要とする場合があります。 どうしてもVirtualBoxなどの仮想マシンだと受講者のラップトップスペックにも限りがあるので、 高スペックを求める場合はパブリッククラウドを利用せざるを得なくなります。

クラウドベンダーも統一して行いたい場合は、募集時にクラウドベンダーを指定し、 アカウントを持っていない方に対しては無料期間利用を推奨しています。 教材もそのクラウドベンダー前提で作成して行います。

有料前提の場合だと、クラウドベンダーと提携して行ったりすることが多いので、 それを前提とした教材作りで進めることができます。

自分の場合は以前、パブリッククラウドのコミュニティとコラボレーションな形式(無料)で そのハンズオン勉強会の時間だけSSHログインを許可してもらって実施したこともあります。 受講者にSSHの接続パブリックIPアドレス、ユーザー名、パスワードを渡すだけとなり、 受講者もSSHログインできる環境の準備だけで済むので理想的です。 また、受講者のラップトップがMac/Windowsどちらでもよいという利点もあります。

他のコミュニティやクラウドベンダーとのコラボレーションを検討してみるのも良いと思います。

ハンズオン勉強会の会場ですが、Wifi、電源、プロジェクターは必須だと思うのでそれに見合う会場を選定しましょう。

Wifiは、人数が多くなると会場によっては遅延が発生しやすいのでそのあたりも考慮しておく必要があります。 電源は、会場によってはタップも完備のところもありますが、無いところが多いので事前に準備しておくとよいと思います。 プロジェクターは、広い会場だと後方の方が見えづらくなったりするのでラップトップでも見られる工夫が必要となります。(詳細は後半でお話します)

資料ってどんな感じ?

資料については、以下の2種類を利用しています。

  • スライド資料
  • ハンズオンテキスト(Webページ)

ハンズオン勉強会といっても当然座学はあるので、座学の部分はスライドを使用します。

スライドでは説明的なものは文字、図解、イラスト、画像など一般的なプレゼン資料を作るのと同じです。

ハンズオンに入る前に、全体像が分かる図があることが望ましいです。 全体像が分からずただコマンド操作だけになると、 うまく動いたけど理解できた気がしないという結果に陥る可能性が高まります。

実際にハンズオンで実行するコマンド部分も掲載します。コマンドの実行結果については、 短いもの(スライドのレイアウトやページ数に影響が出ない)については掲載しています。 この後お話するハンズオンテキストの方にはすべてコマンド結果は掲載しています。

コマンド結果をなぜ掲載するかというと、 やはり結果がどうなるか分からないと受講者がちゃんとできたかどうか分からず、戸惑ってしまう場合があります。

ハンズオンテキストについてですが、これは実際に実行するコマンドを記載したテキストになります。 これはテキストエディタで作成して当日配布でも良いですが、自分はこれまでWebページに用意して実施してきました。 専門学校ではローカルで実行できるWebデータを配布してブラウザで表示されるコマンドをコピーして、SSHコンソールでペーストして行っています。 勉強会などでは主にQiitaを使用しています。もちろんブログなどでも良いです。

コマンドを手打ちで行うとオペミスとかで思わぬ不具合やつまずきポイントになり、進行にも影響が出る可能性も高まります。

コピペだけ淡々と実行するだけとならないように、最初にスライドで説明したり、実行時に説明しながら実行するように心がけています。

テキスト内容では、定義ファイル等もvimでコピペできるようにしています。git cloneするでも良いですが、 手打ちまでいかなくとも少しでも定義ファイルの内容に触れられるようにしています。

ハンズオンテキストをWebで公開しておくことで、受講者がハンズオン勉強会後でも復習できるメリットもあります。 また、スライド資料も公開することで合わせて復習できます。 会場のプロジェクターで見ずらい問題も受講者の手元で見られるため、解決します。

資料を公開できない事情などある場合は、紙資料または電子資料で配布などで対応することもあります。

あくまでも自分の経験則であり、ケースバイケースもあります。 参考になれば幸いです。

良い方法などありましたら教えていただけると嬉しいです。