Gitという道具箱について: 勉強会前資料 + コラム
主催している勉強会グループ「カウチトーク」でGitの勉強会をやるので、事前の資料をnoteで書いておきたいと思います(「事前資料をnoteで公開します」とも言える)。
告知文(抜粋)
最初はなかなか価値がわからないけど、ちょっと経験値が上がってくると必要性がわかるものの代表格、Git。
Gitはバージョン管理をするためのツールです。
また、Gitで管理しているプロジェクトを上手に公開すると、それがそのままポートフォリオにもなります。
こんな感じの告知を打って勉強会を企画しました。カウチトークのメンバーでない方も、この投稿をお読みになって興味が湧いたら是非お声がけいただければと思います。オンライン勉強会とか企画します・しましょう!
参加に際して
今回のカウチトーク勉強会では以下のような連絡を事前にしました。
● 手持ちの環境にGitのインストールが完了していれば嬉しいですが、よくわからなければそのままでOKです。
● GitHubのアカウントはどうせ作ることになると思いますのでこの機会に作っておいてください。
● 当日は「Gitってなに?」というテーマの話と、僕が実際どんなふうに使っているかのデモを中心に話を始めます。
● みなさんそれぞれの環境も違いますし、課題としている対象も違うと思います。なので、どうGitを使っていくかは、またそれぞれで話していければと思います。
最後の部分にカウチトークの特色が出ています。カウチトークは個人レッスン・1on1コーチングの集合体のようなグループなので、個々人で取り組んでいる内容も、課題への取り組み方も違います。
この勉強会内で何を目指すか
Gitを日常的に使えるようにするためのスタートラインに立つことを目指します。
ややこしいことや細かいこと、また応用的な使用法などはとりあえず置いといて、次のことを議題にしたいと思います。
(1) 何のためにGitを使うのかを知る
(2) Gitを使うことを了承する = 使い始めるという意思決定をする
(3) 最低限の使い方に触れる
(1)は主にトークです。僕やGit使用経験のあるメンバーからGitについての話をしますが、それだけではなく、Git未経験のメンバーの素朴な疑問をぶつけてもらっておしゃべりしましょう。
(2)の意思決定とはどういうことかと言うと、(1)のトーク中に吟味していただいて「ああ、自分には今のところGitは要らないな」とか「ちょっと抵抗感が強すぎるのでまたの機会にします」などの場合、この(2)の段階で離脱することが可能となります。無理して勉強に取り組む必要はありません。自分の意思を明確にすることのほうが大事です。自分が何をどういう道筋・ペースで勉強するかを自分で決めるのがカウチトークの精神です。
Gitを使ってみようというモチベーションに達したメンバーは、(3)で本当に最低限のGitを体験してみましょう。百聞は一見にしかず。
ーーーー
以下は勉強会前に僕の頭の中を吐き出しておきたいと思って書いたコラムと参考リンクです。
【コラム】Gitについて語りたいこと
Gitについて技術的なことやハウツー的なことはWebで検索すればわんさか出てくるので、調べ物で困ることはほとんどないと言っていいです。情報量という点では安心して構いません。
また、Gitが(例えばセキュリティソフトのように)パソコンの中で何かの処理を勝手なタイミングで実行することはありません。Gitはユーザーの意志で能動的に使うものです。
Gitはその使い方で本が書けるくらい奥が深いものですが、ユーザーが知っている範囲の使い方をユーザー自身の作業の範囲に適用することから始めることができます。全体を知り尽くすまで使い始められない、ということはありません。むしろ、まずはわかるところから使ってみて、徐々にノーハウを身に着けていく姿勢が大事です。
Gitはバージョン管理を手助けしてくれるツール郡です。上に書いたように「自分の知っている範囲から自分の使い方で」手を付けていくのが吉です。知らない道具で無茶な使い方をすると怪我の元です。しかし、少しずつ各道具の使い方、そして組み合わせ方を習慣の中で身につけていくなら、Gitはとても頼りになる友達になってくれると思います。僕はこのような感覚で日々Gitと接しています。Gitは一見複雑そうに見えますが、中身の見えないロボットのような比喩はイメージに合いません。どちらかというと、ドライバーやペンチのようにシンプルで昔からある工具が整然と詰めてある道具箱のようなイメージです。Gitはたしかにややこしい手順を請け負ってくれるという側面もあります。でも、全自動の万能機械ではありません。なんでもお任せではないところがGitらしさです。Gitは考える人の見方です。Gitは作業する人のための道具です。Gitは創意工夫をサポートする習慣の一部です。
さて、Gitがサポートしてくれるバージョン管理とは一体なんでしょう?
僕が思うに、バージョン管理とは冒険のことです。やらなければいけないことの詳細が全部わかっていてコードを書き始めるなんてことはまずないのです。だいたいのケースは、
・大雑把な目標があって
・なんとなく必要な要素がわかっていて
・活かせる経験値があったりなかったり
…という状態からプロジェクトが始まります。今、プログラミングやWebデザインを勉強中で、これからGitを使ってみようという方なら、その今のあなたの状態がまさにこのケースに当てはまります。あなたは今、冒険中なのです。その冒険が成功するかどうかはやり遂げてみないとわからないかも知れません。でも、楽しく、気楽に、落ち着いた気分で冒険することは、冒険の最中からできるはずです。
たどってきた道順を記録したり、少し前まで戻ってやり直したり、または、一度他の道順を試してみて比較してみたり…そうやって少なくとも今の時点で俯瞰できる範囲を把握し行ったり来たりできれば、冒険につきまとう余計な心配を脇に避けて、冒険の核心的な部分に集中力を使えるようになるでしょう。Gitがまさしくそのための道具箱なのです。
Gitとは習慣です。Gitを使いながら作業を進めていくのは、最初はただただ面倒だと感じると思います。それに、Gitの概念をすっと飲み込むことも案外たいへんかも知れません。また、意外に強敵なのがGitを使っていく中で出会うエラーや警告への対処です。Gitは親切にも我々の不注意や認識不足を指摘してくれるのですが、その指摘に対して「どうにも腹が立つ」「解せない」「もう嫌だ!」と思ってしまう人はすごく多いようです。だからGitを習慣として身につけていくのは、半ば自分との闘いとも言えます。
コラムの最後に、自分との闘いをうまくやり遂げる方法について少し。
■ 今取り組んでいることが自分にとって必要かどうかは、ある程度やってみないとわからない。だから「必要かどうか」という判断は少し脇において進めてみること。これは必要性を鵜呑みにせよということではない。むしろ逆で、必要性を慎重に吟味するためにまずはある程度その過程をマスターせよ、ということである。
■ 先が見えない不安の中にいるとき、あっちへ行ったりこっちへ行ったりと、無節操に動き回っても体力・気力を消耗するだけだ。それに、その場で止まっていてもいけない。なにも変わらないのなら不安も解消されない。当座、妥当と思われる方向で良いから、「こっち」と決めた方向に無理のないペースで歩き続けること。歩き続ければ、どこかには出る。また、元にいた場所よりは、たいていマシである。
■ 目標を達成できなかった、自分に打ち勝てなかった、…としても大丈夫。元に戻るだけである。また、どんなことでもトライしたからにはなんらかの経験値が残る。そういう意味では失敗というものは存在しない。どう転んでも、人間は必ず、勝手に、成長する。ものごとがうまく行って、目標が達成できたらそれは単純に喜べば良い。しかし、ひとつ肝に銘じておかなければいけないことがある。目標を達成できたとしても、その地点から見える景色は、そこにたどり着く前に想像していたものと一致するとは限らないということ。つまり、成功でも失敗でも、なんらかの結果が得られたときにその結果が期待通りのものかどうかは別問題だ。結果への期待は偏見が反映されたものであることが多い。だから「こうならなければ」という堅苦しい気持ちではなく「こうなったらどうなるんだろう?(楽しみ!)」という、ワクワク多めの気持ちで取り組むと良い。
参考サイト、文献
Git公式 ー https://git-scm.com/
GitHub ー https://github.co.jp/
ポケリですが、Gitの考え方についても前半にきっちりページが割かれていおり、基本から勉強できる作りになっています。
著者の湊川 あいさんのGit講座を見学させていただいたことがあり、とてもわかり易かったので書籍もおすすめしておきます。
ーーー 番外編 ーーー
コラム中に出てきた「自分との闘いをうまくやり遂げる方法」では、かなりの部分をデカルトの『方法序説』に書かれている考え方を参考にしています。人が試行錯誤の上なんとなく会得しているメソッドを、デカルトは明快な文章で言語化し『方法序説』に残してくれています。タイトルはいかついですが、薄い本ですし、中身はエッセイぽい感じで読みやすいので一読をおすすめします。(デカルトはモンテーニュの『エセー』の読者であったとか。)
SN