これは「コードを書いていて困ったときに、suinがチャットで質問に答えたり相談に乗るsuinのプログラミング相談室(仮)」で頂いた質問と僕の回答の要約です。
質問
入門者にGitとGitHubを教えるとき、どのように教えたらいいですか?対象はプログラミング経験半年ほど。主にRuby on Railsを学んだ人で、VCSの利用経験がありません。suinさんならどう教えますか?
suinの回答
git教える、github教えるの順で別々に教えていって良いと考えてます。
バージョン管理システム未経験者はそもそも、そのメリットを感じてないので、メリットを知ってもらうとこから入るように僕は教えてます。使えるツールだなと、思ってもらえると自主学習も進むので。
たとえば、今までどうやって古いコードを復元していたか、その人の習慣を聞きます。「コードを前のバージョンに戻せるようにどうやってましたか?」「前のバージョンに戻したいことって今までありませんでしたか?そのときはどうやってましたか?」などと質問します。
僕の経験上では「フォルダをコピーして取っておく」「Ctrl-Z(戻す)を押しまくる」といった答えが返ってくるので、その作業はGitを使うと簡単だよと説明します。
メリットを納得してもらったら、あとはどういう仕組みで動いてるとか、他にどういうメリットが付随してあるとか説明していくと良いですね。
GitHubについては、「ソースコード共有するにはどうしたらいいと思いますか?」と質問してから入るといいと思います。ソースコードを共有する体験自体ないことがあるからです。git pushするだけで、簡単にコードを共有できるメリットを体験してもらってから、仕組みやコラボレーションする際においての利便性について解説すると良いと考えます。
回答に対して頂いた反応
過去の経験をベースにすると納得感増しますね。Gitに限らず、ツールの説明時には広く使える手法ですね。