NoiminのNoise

競技プログラミング (多め) とWeb (たまに) ,自然言語処理 (ブログではまだ)。数式の書き方を一気に KaTeX に変えようとして記事を全削除してインポートし直すなどしたので,過去にブックマークされた記事は URL が変わってしまっている可能性があります…….

Scrapboxでお手軽解法メモ

この記事はCompetitive Programming (2) Advent Calendar 2018 14日目の記事です. adventar.org

お急ぎの方はこの目次だけ読んでいただければOKです.

この記事の対象読者

  • 解説記事を書こうとは思うが,続かなくて困っている人
  • 競プロは好きだし強くなりたいが,人生を競プロに捧げるところまでは振り切れない人
  • Scrapboxなるツールが気になっている人

解説を書くのは有意義

解いた問題を定着させるための工夫として,「解説を書く」ということをしている方も多いかと思います.ただ他の人の解答を写経しただけでは解説記事は書けませんし,解説記事を書こうとする過程で理解が浅い部分を自覚して,勉強して,分かったことを言葉にして,という行為が必要になるので,すごく勉強になります.

もちろん解説記事を読む側の方も,「公式解説を読んでもわからなかった部分が他の人の解説記事で理解できた」という経験をした方も多いと思います.同じ問題の解説記事でも記事によって重点的に説明されている内容が少しずつ違うので,複数の解説記事で理解を深めるということもできます.

このあたりの「解説記事を書くことの意義」はCompetitive Programming (1) Advent Calendar 2018のアルメリアさんの記事(解説記事のはなし - ARMERIA)でも詳しく説明されていますので,ぜひ読んでみてください.

解説を書くのは大変

しかし,解説を書くのにはとにかく労力と時間がかかります.もちろんその苦労はレートやコンテスト結果という形で報われるのかもしれませんが,我々 (の多く) には (競プロ以外の) 人生というものがあります.時には問題を解くことはなんとかできても,解説を書く気力と時間はちょっと……というときもあるでしょう.最近の私がまさにその状態で,この記事はその言い訳を兼ねています.

Scrapboxで解法メモを取ろう

そこで最近は,問題を解きながらScrapboxで解法メモを取るようにしています.Scrapboxはメモの間にリンクを張ってアイディア等の整理ができるメモ共有ツールで,個人であれば google アカウントでログインして無料で使うことができます.はじめはラボの先輩から研究のアイディアを整理するツールとして教えてもらったのですが,私は主に競プロの解法メモを書くのに使っています.

おすすめする理由1: ディレクトリ構成に悩まされる必要がない

Scrapboxにはディレクトリのような階層構造がありません.これがメリットなのかどうかは人と場合によりますが,「どこのディレクトリに保存するか」を考えず手軽に解法メモを残せるという意味ではメリットかなーと思っています.

おすすめする理由2: タグ機能で類題をまとめて復習できる

f:id:noimin:20181214150316p:plain
タグ機能

語句の前に#をつけるか,[]で語句を囲むかすると,タグを作ることができます.Scrapboxでは,このタグを使ってリンクが作られます.私は解くときに使ったアルゴリズムやデータ構造をタグにして,同じタグが付いている問題の解法メモをまとめて見直すことで,類題の復習をしやすくしています.

おすすめする理由3: 数式を書くのも楽

f:id:noimin:20181214150704p:plain
数式もらくらく

問題によっては数式で表現した方が楽ということもあるでしょう.もちろん数式も書けます.[$]で数式を囲むだけ. はてなブログで数式を書いているとtex記法で書いている数式の表示が遅いと感じることがありますが,Scrapboxではそのように感じたことは今のところありません.

おすすめする理由4: 友人・仲間との共有が簡単

本来はアイディアを共有するためのツールなので,友人・仲間間でプロジェクトを作って,様々なメモを共有することも可能です.メモを複数人で同時編集もできるので,オンラインチャットのような使い方もできるかもしれません.私はぼっちで精進しているのでこのへんのいいお話があればぜひ教えてください.競プロとは違いますが,私の所属している研究室では論文まとめをScrapboxで共有していたりしますね.

でもやっぱり解説も書きたい

というわけで,最近はあまりブログも書かず Scrapbox に解法メモを書いていたわけですが,やはり他人に見せる前提のブログで解説を書く方がしっかり考えて書くのでより強く定着する感じはします.なのでこれからは,時間を作ってブログでの解説も書くようにしていきたいものです.ですが一昨日の解説記事を書いて「Scrapboxのメモを元にすれば解説記事を書くときの負担も軽減できるのでは……?」という気持ちになったので,Scrapboxでの解法メモはどっちみち続けてみようと思います.

明日はblue_jamさんです.コメントを見る限りでは,オンサイトコンテストのお手伝いのことを書くのでしょうか? 私も一度コンテストのお手伝いはしてみたいと思っているので,楽しみです.