チュートリアルのすゝめ
チュートリアルの利点
オープンソースソフトウェアの公式サイトでは、API仕様書等のドキュメントに加えて、チュートリアルが提供されていることがあります。たとえば、JavaScriptのフロントエンドフレームワークであるReactの公式サイトには、三目並べゲームを題材としたチュートリアルのページがあります。
みなさんは、新しい技術を学ぶ際に、チュートリアルを実施しますか?
筆者は、チュートリアルは必ずやった方がいいと考えています。こういったチュートリアルは、ハンズオンで手を動かしながら、数時間程度でちょっとしたプログラムを完成できるように設計されています。
初学者は、ドキュメントを読んで得た知識を、チュートリアルの実践を通して強固なものにすることができます。あるいは先にチュートリアルで手を動かしてイメージを掴んだ後にドキュメントに目を通すことで理解がしやすくなります。
チュートリアルの効果の高さを考えると、業務や、自己学習において利用しない手はありません。
オンボーディングに
新しく加わったメンバーに、プロダクトやプロジェクトの概要や、作業の進め方を理解してもらい、早期に戦力となってもらうこと、すなわちオンボーディングは重要です。オンボーディングを円滑に行うために、様々なマテリアルを準備しているのではないでしょうか。
OJTで手取り足取り教えられるとよいのでしょうが、開発バックログも山積みになっている中、付きっきりというわけにもいかないでしょう。開発環境構築手順書や、開発規約類へのリファレンスなど、必要なもの一式を手渡して、「これ読んでね。わからないことがあったら聞いて!」というやり方も多いのではないでしょうか。
最初に手渡す一式の中に、チュートリアルを含めることをお勧めします。ただドキュメントを読むという作業は退屈なものです。手を動かしながら理解を深めるというやり方が効果が高いのではないかと思います。
たとえば、筆者が開発している汎用ワークフローのプロダクトでは、新規参画者がローカル環境を構築したら、以下のようなチュートリアルをやってもらうようにしています。(少し簡略化しています。実際にはもう少し応用的な使い方を含めて10数シナリオ程度、一日程度で消化する内容となっています)。
システムの初期セットアップを行う
基本的なマスタ登録を行う
ワークフロー申請書のフォーム作成や、承認ルート作成を行う
申請〜承認の操作を行う
これによって、開発するソフトウェアの基本機能や使い方、概念についてイメージを持ってもらいます。その上で、仕様書などのドキュメントを読んだ方が理解度が格段に上がります。
また、簡単なサンプル開発を通して、実際の開発フローを体験できるようなチュートリアルも別途用意しています。
チュートリアル作成のポイントとしては、半日から一日程度、長くても二、三日で消化できる程度のボリュームで設計することです。あまりボリュームが大きくなると、実施者の認知負荷が高くなり消化不良を引き起こす危険があります。また、チュートリアルの作成やメンテナンスも大変になってしまうでしょう。
自己学習のアウトプットに
チュートリアルによって、基本的な機能をまんべんなく理解することが可能です。逆に言うと、基本機能を一通りしっかり押さえた、中級以上の習熟者でないと良いチュートリアルを作ることはできません。
自己学習が進み、習熟度が一定レベルに達したことを確認する方法として、他者向けのチュートリアルを作るという方法をご紹介したいと思います。
本稿の冒頭で、Reactの三目並べのチュートリアルを紹介しました。このチュートリアルはとても良いものなのですが、三目並べという題材が少しピンと来ないというか、普段触れている業務アプリケーションの実装イメージにリンクしにくいという点が個人的に不満に感じました。
そこで、「とあるテーマパークの入場料計算を行うWebアプリケーション」という題材でオリジナルのチュートリアルを作成して、Qiitaに記事を投稿しました。(TypeScriptでReactに入門するチュートリアル)
投稿時点でReactを勉強し始めて2ヶ月くらいの脱初心者レベルが作ったものなので、熟達したフロントエンジニアから見たら、正直突っ込みどころも多いんじゃないかと思います。(ちなみにその後Hooks版も書きました:TypeScriptでReact Hooksに入門するチュートリアル)
それでも、他の初学者が参考にするかもしれないと考えると、間違った情報を書かないようにしようとか、初学者目線でわかりやすい説明をしようといった意識が生まれます。すると、自分の理解があやふやな箇所は改めて勉強し直すことになるので、結果として理解をより深めることができます。
技術習得にあたって、「人にちゃんと説明できるレベル」というのはまず目指す地点として妥当なのではないかと思います。基本をしっかり押さえられているということなので、そこから応用に進んでいくことが可能です。その段階に早く到達するテクニックとして、チュートリアルを作ってみるのはいかがでしょうか?
この記事が気に入ったらサポートをしてみませんか?