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

2022-04-24

ツール製作日誌:三ヶ月で劇的ビフォーアフター② 生き方改革編

 前回の続き。JavaScriptを勉強して情報管理ツールをいくつか作ってみたというのを前提に、何を得たのかをまとめておこうと思う。

ツール製作日誌:三ヶ月で劇的ビフォーアフター① 自作ツール紹介編


 まずプログラミング周りの自分の到達段階はこんな感じ。

  • (HTML、CSSは2021年中におおよそ習得)
  • (SCSS、mermaid.jsを1月中に大体理解)
  • JavaScriptのDOM操作をある程度理解
    • TypeScriptをちょっとやったけど結局直接JavaScriptで書いている
  • Node.jsとElectronを少しやった(作ったツールを移植して動かせるようにはなった)
  • Pythonの基本的な操作を学習


 ツールを作れたというのはつまりデータを扱うということができるようになったということだが、そのことによって世界が劇的に広がったように思う。プログラミングの勉強を始めてすぐは、何かが「動く」というだけでデータのセーブ・ロードはできないので、自力でコードを書けることのありがたみをなかなか感じられない。

 データの扱いは以下の順番で学習していった。

  1. ローカルファイルのCSVを読み込んでJSONにする(というコードを拝借して使う)ことに成功
  2. localStorageへのオブジェクトの保存・呼び出しを理解
  3. localStorageにHTMLをそのまま保存する手があるのを理解
  4. GitHub Pagesで公開状態にしたデータをfetchすることに成功
  5. Electronを使ってローカルファイルを読み書きすることに成功
  6. データの保存・読込時にHTMLとOPMLを行き来するやり方を習得
  7. Promiseで確実にデータの読み込みが完了してから次の処理をする構造を理解(サイズの大きいデータを扱えるようになった)

 つまり、「ブラウザにデータを保存できる」「ローカルファイルを直接読み書きするという手もある」「ネット上に公開されているファイルを読み込める」「独自ツールでもOPMLにして種々のアウトライナーと互換性を持たせられる」ということができる状態である。ここまでのことならそんなに高度な技術は必要なく実装できることがわかった。クラウドが扱えたらスマホでもアクセスできるのになあと思うのだが、まだそこまでのスキルは得ていない。

 しかし、ここまでできたならDropboxかGoogleドライブか何かしらの何かでいけるのではないかという気がしてくる。実際どうかはまだよくわからないが、「できるのかもしれない」と考えられるようになった。三ヶ月前はそういう可能性など僅かにもなかった。


 プログラミングを勉強し始めて、気持ちや考え方の面でかなりの変化があった。

 一言で言えば、生活がとても豊かになった。物的経済的には別に何も変わっていないが、想像力と創造力が飛躍的に高まったような感じがある。

 他のツールに対して不満を抱くことも減った。そもそも自作ツールのことばかり考えて他のツールのことはほとんど意識を向けてもいなかったということはあるが、何かに不足を感じても基本的に「その要素を足したツールはどうやったら実装できるかな」と考えるようになった。

 もちろんできることには限りがあるが、私がやりたいことというのは基本的に「テキストデータを良い感じに表示する」ということだけなので、必要なスキルは初歩的なものだけで済む。やろうと思えばどうにか実現できる。プログラミングの経験がない人の目にはもしかしたら何かすごいことをやっているように映ったりするかもしれないが、数学にたとえると、三角関数でも微分積分でも行列でもなく、四則演算とせいぜい平方根を使う程度のことをやっているようなものである。その組み合わせを工夫しているというだけだ。

 元々日曜大工的なことは好きで、特定の用途に合う容れ物や何かの位置を固定するものなど「あると便利だが名前をつけがたい何か」の類を色々作っていた。自分が得意なのはそういうアナログな工作であって、デジタルなものはちょっと苦手だなという意識がずっとあったのだが、今は日曜大工と同じ感覚でコードを書いている。家は建てられないが棚は作れる、という感じだ。


 ツール作りに取り組むにあたって、「痒いところは自分で掻く」を合言葉にしている。

 頑張れば作れると思えるようになったことにより、デジタルツールに対して自分が本当に求めていることは何かを細かく考えるようになった。思いつくのは空想ではなく実現可能性のあるアイデアである。以前ならただ「こうだったらいいなあ」と思うに留まるほかなかったが、今は「無いなら作ればいいじゃん」と思う。

 誰かがやってくれるのを待つしかなかった生活から、頑張れば自力でなんとかできる生活へとデジタルライフが転換したのである。何が何だかさっぱり分からなかった世界で主体性を手に入れたことは、精神的に劇的な変革をもたらしたと感じている。ますますデジタル化が進む中でも自分の生活をコントロールしていられるかもしれないという希望がある。

 だからみんなもやろう、と簡単に勧められるわけではないが、しかし未経験者が思っているほどプログラミングは遠い世界のものではないというのは確かである。

 「alert("Hello World!");」の一行から人生は変わるかもしれない。