葬送のフリーレン、面白いですよね。もうなんの説明もいらないくらい人気です。ゴールデンウィークに視聴した人も多いのではないでしょうか。
内容を簡単にいうと、魔法使いのエルフが魔王を倒したあとの世界を旅する物語です。そんな葬送のフリーレンで、「魔法」について面白い説明がされています。
魔法はイメージの世界であり、完全にイメージできない魔法は使えない。
作中では、「水をあやつる魔法使いに、雨の中で勝てるイメージができる?」などのように、イメージできるかできないかが、それを実現することができるかできないかを決定づけることが強く表現されています。
で、この「イメージできないことはうまくできない」ということ、現実の世界でもそうで、なんならエンジニアは特に実感しているんじゃないかと思ったわけです。
--
現実の世界に魔法はあるでしょうか?
例えば、スマートフォンは「魔法」です。こいつはマジでスゲェです。だって世界中のスマートフォンがちゃんと電波をひろってWebに接続できているのですから…これはもう魔法以外の言葉では説明できないでしょう。
しかし、その仕組みを完全にイメージできる人にとって、それは魔法でもなんでもありません。ただの技術です。
例えば、私は仕事でWebアプリにユーザー認証機能を付けようとしているのですが、マジでなにも分かりません。そういうとき、私は上司にこう相談してしまいます。
「構成のイメージができなくて…」
そう、なぜ何も分からないかというと、認証フローのイメージができないからです。どういう構成、どういう仕組みで、どういう登場人物たちが、何をしているのか。これが分からないために実現するイメージができないのです。
現実の世界に魔法はあるでしょうか?
残念ながら、現実の世界に魔法はありません。ただ、”魔法だと感じることができるもの”は山ほどあります。
さて、私がいいたいこと、それは「エンジニアは魔法を魔法のままにしておくべきではない」ということです。また、これは「エンジニアはどこまで勉強するべきか?」という問題の、ひとつの解答にもなると思っています。
Webアプリを作るため、JavaScriptのコーディングについて20時間勉強した人がいたとします。では、その人はWebアプリを作って公開することができるでしょうか。私はできないと思います。Webアプリを作るイメージができないからです。
実際は、フロントエンドとバックエンドの設計、データベースは何にするか、APIはどうするか、どこに公開するか(ホスティング)など、複数の要素の知識が必要です。
なので、アプリの機能や処理をプログラムで書けたとしても、書いたプログラムがどこでどのように動くか分からなければ、プログラムは魔法によって動くことにするしかありません。
そんなわけで「イメージができるように勉強する」ということが、結構大事なんじゃないかな、と思ったわけです。
以上です。