2021-12-24 とあるエンジニアの記録についての考え

### 自己紹介

7of9 (せぶんおぶないん) というQiitaでひっそり生息しているエンジニアの一人です。

正式名称は「Seven of Nine,Tertiary Adjunct of Unimatrix Zero One」ですが、気になさらず。。。


### 対象読者

- あまり記録をしていない人へ
- 記録なんて無駄と思っている人へのfood for thought (考える糧)

すでに自分の素晴らしい検索ルールが確立している方にはお役に立てないと思われます。


### 主な記録

2021年現在の記録について箇条書きしてみます。

- Qiita記事 : 公開記事は6188記事
    - 誰でも見れる記録として利用
- esa.io記事 : 非公開記事が14,100記事 (Qiitaがガイドラインを変更したあたりに使用開始. [2017/05/08](https://blog.qiita.com/160423117339-2/)だったか)
    - 非公開の記録は主にこちらに残している
- Scrapbox : 非公開記事が900記事 (2021-08-31使用開始)
    - FPGA関連の要素技術をまとめることで、検索性能を高める目的で
- MindMup2 : 1500くらいだろうか (2015-01-06使用開始)
    - time-till-understandingを減らす情報のつながりをマインドマップにする
    - 自分の考えの整理や同僚への資料
- draw.io(diagrams.net) : 1000くらいだろうか (使用開始時期については忘れました)
    - きちんとした図として残したいものをこちらで作成
- 電子メモパッド x 2 : 短期の記録として使用。すぐに消せるのが良い
    - 関連図などのデザインの素案を書いたり
    - ビット演算の計算に使ったり
    - すぐに処理する事項の言葉だけ書いたり
    - 英語、中国語、漢字など記憶のリフレッシュに使ったり
    - メモをすべてPCですると画面切替が頻発するため、それを緩和する意図もある
- Google Keep
    - TODOリスト (プライベート、FPGAの学習、の二種類だけ）
    - (過去にこちらで記録しようとしたけど、UIが合わずに使用頻度を減らした)

OneNoteやTeamsなども使えることは使えるが、自分の用途には合わないので使っていない。


### 記録の使い方

esa.ioを情報のエントリーポイントとして、draw.ioやMindMup2記事へのリンクを張る。
何か検索したい時はesa.ioで検索をかける。

Scrapboxについては最近学習を続けているFPGA関連の情報のみにしている。
自分で試作した情報はesa.ioに非公開記事として整理しているが、WebやPDFなどで見つかる資料についてはScrapboxに記録している。
Scrapboxで検索をかければFPGAの要素技術がすぐに見つかる。
esa.ioに整理しなかった理由としては「細かい情報を多くesa.ioに記録すると、esa.io上での検索ノイズになる」ため。

Qiitaは最近あまり記載していないのは、Qiita自身が検索性が良くないというのが一つの理由。
(不特定多数の記事を含めて検索することになるので、その点は仕方がないこともある）


### 記録の理由

記録をすることで当然「記録のコスト」がかかる。
一方で、「検索しやすい記録」をしておくと、将来の作業時に関連情報をすぐに見つけることができ、仕事をスムーズに進めることができる。
（実際にここ一年はすごく忙しい日々を送ってはいるが、記録とその検索で自分の希望のペースで仕事をできている）

自分はこれを「知識のクリスタル化」と勝手に呼んでいる。
検索しやすいクリスタル、作りましょう。


### 「ググって解決しづらかったこと」

- A. 情報を見つけた段階で（簡易的にでも）記録する
    - => 「あれはどこかで見たな」-> 記録を検索して見ることができる
- B. 情報を見つけた段階で記録しない
    - =>「あれはどこかで見たな」-> 検索するけど、なかなか見つからない
- C. そもそも見たことがない
    - => 検索で頑張ることに。周囲に知っている人がいれば聞くのが吉


### difficultToSearchタグ

そもそも検索しにくい情報を記録しても検索しにくいのでは？
というのは当然で、そういう記事には「difficultToSearch」タグをつけて検索時の一助としています(Qiita, esa.io, Scrapboxにて）。


### クイズ(と答え)

- クイズ: C#の「`bool?`」の意味を述べよ
    - 答え: NULL許容型 ([記事](https://qiita.com/7of9/items/00cee629026501ad4b79))
- クイズ:  C++ Builderで`std::unique_ptr<TStringList> slread(new TStringList);`で得られたslreadのアドレスを渡す方法 (関数コールなどで必要)を述べよ
    - 答え: `slread.get()`
- クイズ: Verilog HDLで`my_design #(.USE_CASE(1)) u0 ( .a(a), .b(b), .sel(sel), .out(out));`の`#(.USE_CASE(1))`の意味を述べよ
    - 答え: [記事](https://qiita.com/7of9/items/674ceadeef9326a1a3d2)
- クイズ: Zynqで高位合成時に作成される`out4_V_V_TDATA`の_V_Vの意味
    - 答え: (まだ見つかってない)

全問検索出来た人はその検索方法をQiita記事にしてくださいね(ぜひ！)。

こういうのはそもそも知らないと検索で見つけるのは困難かと思われます。
検索できたとしても検索に時間がかかって、本来の作業から長く外れてしまうことになりそうです。

こういうのは「見つけた時に記録」が最善かと考えています。検索しやすい形で記録。

### 記録についてのもろもろ

- 検索で頑張るのでなく、見つけたときに記録をする
- 検索しやすい記録をする (知識のクリスタル化)
- 忙しくないときに記録を残すことで、忙しい時に情報を見つける時間を減らす (仕事の平準化)
- 記録しても使われないものは当然ある
    - 記録すると何度も使われることもある
    - トータルで効率化していれば良い
- 言葉に気を付ける
    - 失敗: 「インターフェイス」「インタフェイス」「インターフェース」「インタフェース」などのバラバラな記載
    - 改善例: interface
    - 検索の成功、失敗に大きく影響する
- 実際に記録を検索する過程で良い方法が見つかればルールを改善していく、というのも
    - 一方で、ルールを変え続けると検索効率が下がるので、あえてルールを変えないという考えも
- ツールを変更し続けると記録の分断が起きて検索効率が落ちるため、変更しすぎない
- 作成済の記録を同僚に見せることで、非同期で情報を伝達できる
    - 教える側と、読む側が、それぞれの都合で情報をやり取り可能
    - 読む側が全部をその時に読まなくてもいい (必要になった時に思い出して検索)
- 記録する時間がほとんど取れない時は、後で記録できるメモだけを残す
    - 後で時間ができた時に記録の精度を上げる
- 記録に時間をかけすぎない（自戒もこめて）
- self-containedまたは関連情報のリンクを付けておく
- the simplest thing that could possibly work
- 記録の日付を付ける
    - 作成日と更新日
    - 新しい情報を先に見ることができるように

書き出すとすごく増えそうなので、ここまで。


### 終わりに

それぞれ良い方法で記録してみてください。

### 関連

- [2018-03-21 技術情報およびデータを失う技術 + 2019-04-07追記](https://qiita.com/7of9/items/75c0e5b94eeb605197b5)