このブログは更新を終了しました。移転先はこちらです。

2023-03-13

NTA-DIY:余談①~ScrapboxとGitの貢献~

 最初の一ヶ月について十本かけて書いてきました。(もう一本書くつもりでいたので締め的なことを書きませんでしたが、一ヶ月目については前回で終わりです。)

 一年も前のことですが、比較的解像度高く書けたのではないかと思います。もう少し細かく書きたい気持ちもありましたが、費やせるリソースはこれが限界と思いちょっと駆け足になりました。


 一年前のことを書けるのは、簡単ながら記録を残していたからです。何がわからなくて何に感動したのか、Scrapboxの個人プロジェクト(非公開)に書き込んでいました。

 こう書くとその都度きちんと整理していたかのようですが、実際には「○○って~~ってこと?」とか「なるほどね!!」とかいう感じの記述があるだけです。後々のために残そうとかいう意識はなく、何もしていなかったかのような気分になるのを防ぐために書いていったらそれなりの記録になった感じです。

 ページの粒度としては、「次のステージに進んだ」と感じたらページを改めていき、期間にして1ページあたり数日から一週間程度の記録になっています。実際のページ名を並べるとこんな感じです。

  • TS/JS日誌vol.1 基本~配列・関数・オブジェクト
  • TS/JS日誌vol.2 ブックマークレット実作
  • TS/JS日誌vol.3 「TypeScriptで学ぶJavaScript入門」復習/ブックマークレット進化
  • TS/JS日誌vol.4 ScrapboxのPageMenu作成
  • TS/JS日誌vol.5 bookmarks.htmlの自動生成実装&cards.html開発
  • TS/JS日誌vol.6 card.htmlのlocalStorage化、メモアプリに進化
  • TS/JS日誌vol.7 outline.html開発

 これらのページの中に、日付を書き、参照したURLと疑問や感想、作ったコードへのリンクを日付の下に箇条書きでずらっと並べていきます。実のところ八割がたURLの列挙で、日記的な記述はそんなにはありませんが、何に取り組んでいたかがわかりさえすればその時どうだったかはある程度思い出せます。また、いちいち細かく書いていないことによって、逆に「わざわざ書いた」部分の困り具合や感動具合、その他正直な心境が目立ちました。これは思わぬ収穫です。この一連に関してはズボラ日記で正解でした。

 見返すために書いたのではなく書くために書いていたものなので、今回このシリーズ記事を書くにあたって見直すまで、一年近くこれらのページを開くことはなかったように思います。たまたま記事を書こうと思ったので役に立つ日が来ました。

 Scrapboxでなければこうはできなかった、というようなものではなく、Obsidianでもアウトライナーでもtxtファイルでもなんでもいいのですが、Scrapboxは気軽に書ける雰囲気があり、他のことにも使っているのでScrapboxを選択しました。


 じゃあずっとこれを書いていたのかというと、実際は上記の七ページだけです。ちょうど一ヶ月分しか時系列に沿った日記はありません。JavaScriptの習得スピードが速くなるといちいちメモしていられず、また疑問点も比較的すぐ解決できるようになり、ノートを取る必要性が薄くなっていきました。書くために書いていたので、書く必要がなくなると途絶えてしまったわけです。

 代わりに、一ヶ月が過ぎた頃からはツール開発を始めていたので、書いたコードは頻繁にGitでコミットするようになりました。勉強したことは実際に動かすコードとして反映され、その記録がGitに全て残っています。コードを書き、また別に日誌を書く、となると二度手間になってしまいますが、Gitを使えばその時点の状態が記録されていくので、コードをこまめにコミットするだけで日誌を書いているのとおおよそ同じことになります。

 ただ、漫然とコミットしているとそのコミットが前回のコミットとの間でどう違うのかひと目ではわからず、資料として使いづらくなります。そこでコード内のコメントやコミットメッセージを工夫する必要がありますが、これがまた結構難しいです。いずれもその時点の文脈に基づいて書き残すことになりますが、後から難点になるのが、知識・スキルの状態の変化です。


 知識が乏しく経験が浅い時点で書いたメモは、その時の感覚で「こう書けばわかるはず」と思っているのですが、もっと先に進んでから戻ってくると何のことを言っているのかびっくりするほどわかりません。書き方自体が下手だったのも大きいと思いますが、能力不足で的確な表現ができないことによって、結局コードを細かく見ないと何がなんだかわからない記録になってしまいました。その時点ですごく頑張って記録をつけても、言葉にする労力があまり活きない可能性があるのです。

 このことを解決する術はわかりません。まあ、プログラミングを勉強し始めた最初期しか起こらないこととも思うので、「最初に学ぶ言語の学習記録はどんなに頑張っても読めるものにならない」と思った方がいいのかもしれません。Gitのコミットは如何にも「後から確認できるようにするための記録」然としているので、あまり意味をなさない記述が気になってしまいましたが、最初の一ヶ月にScrapboxに書いていたもののように、「見返すために書いたのではなく書くために書いた」と思って見れば十分な記録だと思えます。他の人に読んでもらうものではないので、何かしら残っていればそれでいいでしょう。

 その意味で、うまく記録を作る力がなくとも、「そのもの」を残しておけるGitというのは本当に素晴らしい仕組みです。見たままを撮れる写真ですら写真の撮り方の上手い下手が後々問題になりますが、Gitのコミットログはどこからでも見れる3Dモデルを全ての段階で残しておけるようなものです。威力を遺憾なく発揮できるのはプレーンテキストの記録に限られはしますが、今やっていることを言語化すること自体が困難な状況の中で「とりあえずそのまま残す」が可能というのは大変ありがたいことです。(うまくやれていないものを前にして素朴に喜んでいられるのは趣味の独学者の特権ですね。)


 そんな感じで、ScrapboxとGitに残した記録を元に、一年間の書き起こしに取り組んでいます。一ヶ月以上かけてやっと一ヶ月目が終わったところですが、二ヶ月目以降はもう少しサクサクいけると思います。



このシリーズ記事の概要はこちら→ノートテイキングアプリDIY体験記