研修コースのつくりかた
新人研修の詳細を詰める時期ですね。トレーナーとして開発現場からアサインされる方も増えてくる時期です。
そこで、普段は開発をされていて、これからはじめて研修コースを開発しようとする方に向けて、どうすると研修コースが作れるのか、記事にまとめました。
もくじ
研修もプログラム
プログラムを考えるとき、Input/Outputから処理を考えるように、研修も同じように考えられます。
- Input: 受講者のスキル・知識の前提
- Output: 受講したあとの到達目標・ゴール
- 処理: 研修プログラム
(個人的にはカリキュラムやアジェンダというより、プログラムという表現が合っているように思います)
また、プログラムにおける制約条件(マシンスペックやOS etc.)も、研修では下のように置き換えられます。
- 期間
- 時間/日数/月数/年数
- 場所
- リモート/オンサイト etc.
- 環境
- ネットワーク環境や電源、受講者のPCスペック etc.
- お金
- 予算, テキスト, トレーナー etc.
プログラミング同様、研修プログラムも制約条件から考えたほうがアイデアは出てきやすいです。
サンプルプログラム
より具体的につかめるよう、プログラミング同様に、サンプルプログラムで考えてみます。
お題
初心者向けJavaプログラミングの習得
IOを考えましょう
まずはIOを整理します。
かなり重要な工程で、自分の思い込みが入りやすく、周りの思惑と異なっていた場合、大きな手戻りが発生します。なので、周りの人が多い場合、必ず確かめましょう。
- Input: コンピュータの中身を知らない人と定義
- “初心者” や “初級者” の定義は本当に難しいので決めが必要です
- ex. プログラミング未経験を指すのか、本で学んだことがあるレベルを指すのか
- Output: サンプルプログラムをマネしてオリジナルのプログラムが作れるレベルと定義
- 初心者という表現と同じように “習得” という言葉も曖昧性を生みます
- ex. Webアプリを開発できるまでを指すのか、あるシステムの1つのクラスを開発できるまでなのか
処理のステップを考えましょう
IOがわかったところで、処理 (研修プログラム) をステップに分けて考えます。
- コンピュータを知る
- OSを知る
- 開発環境を整える
- Javaプログラミングをやってみる
- Javaプログラミング演習
こうすると所要期間や時間もだいたい見えてきますね。
段階的詳細化で中身を考えましょう
ステップを分割したところで、詳細を掘り下げます。
- コンピュータを知る
- プログラムが動く仕組み
- バイトコードとソースコード
- OSを知る
- OSの仕組み
- Linux / Windows のコマンド操作
- 開発環境を整える
- エディタやIDE
- 環境構築
- Javaプログラミングをやってみる
- プログラミング言語の歴史とJava
- 変数と型と演算
- 制御構造
- ・・・
ここから、さらに段階的詳細化を行い、1日単位のプログラムまで作ります。
- プログラムが動く仕組み
- Input
- とくに前提となる知識はなし
- Output
- プログラムが起動して命令が実行されるまでコンピュータの5大装置を使って説明できる
- Program
- サーバやモバイルなどコンピュータのアレコレ
- コンピュータの5大装置
- プログラムが実行されるまでの流れ
- Webで座席を予約するまでの流れ
- Input
このようにして研修コースをつくりますが、いかがでしょうか? このサンプルプログラムで雰囲気がわかれば幸いです。
なお、新人研修やマネジメント研修などのような長期のコースもこれを繰り返すだけですが、長期の場合、 Output 到達目標が曖昧になりがち (ex. 自律的に成長できる新人など) なので、この仕様を固めるのにだいぶ苦労します。。
研修プログラムにおけるアルゴリズム
さて、ここからはオプションです。
研修もプログラミングと同じように考えられるということは、アルゴリズムのようにある程度、パターン化できます。
ちなみに、定量化して効果を計測していないので、以下は完全に私の主観です。
個人的にはクイックソートなどの名前がないので、名前付けが得意なエンジニアのアイデアを聞いてみたいです。
演習は講義の2倍のコスト
講義で聞いても使えるレベルには至らないので、手を動かすものであれば、必ず演習をすることになります。
その演習時間には、講義に使った時間の少なくとも倍以上の時間を割くと良いよというものです。
もちろん、理想論なので、あとは宿題でやってね、ということで切り上げるのが常道です。
まとめて演習は危険
バッチ処理のように全部講義をしてから、まとめて一気に演習をやることもありますが、だいたい朝にやった講義は、その日の終わりには忘れているケースが多く、出来る限り、しょっちゅう演習するほうがよいです。
なお記憶の定着には、失敗が一番です。(失敗すると人間の心が一番動くので脳が必死になります)
講義だけでは失敗できないので、演習して失敗させましょう。
事前学習をやるのは2割が前提
期間等の制約から本やWebなどで事前学習をするケースがあります。
ただし、事前学習を完全にこなしてくるような意識高い人は、受講者の中で2割いれば良い方だよ、というものです。
受講前提がマストになる場合は、事前のテストをやってクリアした人だけが参加できる、というように厳密にしたほうが良いです。
(だから入試は必要なんですね)
内容をわからない人に合わせるか、分かる人に合わせるか問題
これは完全に、その研修コースのオーナー (担当者というより部長など決定権者) の考え方によりますが、特に企業の研修は “わからない人に合わせる” ケースが多いです。
なぜなら研修で落第者が増えてしまうと 負債 になるためです。
ちなみに、オーナーから「分かる人にあわせてくれ」と言われても、トレーナーは、わからない人が多いとそれに合わせることが多いです。
(アンケート結果が悪いと、トレーナーにとっては次の機会に差し支えが出るのと、精神衛生上もやりづらいのです)
スコープは広めに取ると死ぬ
研修プログラムとは完全に別な話ですが、これもあるあるなので入れておきました。
これはコースを企画する人で、参加人数がお金や目標になる人が特にハマりやすいものです。
コースを企画する人はどうしても、いい感じのタイトルと参加制約(場所や拘束時間)を下げるなどして、スコープを広く取って参加者を多く集めたいので、初心者層も中級者も狙いたくなります。
が、だいたいアンケート結果がズタズタになり、そのコースは二度と開催できないだけでなく、研修制度そのものも信用を失われることがあるので注意が必要です。
(これは書籍でも同じようなことが起こりがちです)
- 例
- コース名: マスタリング Java入門
- 概要: 入門から現場の必須ワザまでマスターできます
- 時間: 2時間
まとめ
研修コースもプログラムとして考えると、整理しやすいということを中心に、オプションとして研修プログラムにも定番アルゴリズムがあることを書きました。
もし、他に研修プログラムの定番アルゴリズムがあれば、ぜひぜひ教えてくださいませ。
この記事を通じて、よりよい研修コースが開発できるとうれしいです。
この記事は3年前に書いたものを、筆者自身が再編集したものです。
SEプラスにしかないコンテンツや、研修サービスの運営情報を発信しています。