見出し画像

iOSDC登壇とQiita記事投稿で考えるアウトプットという名のインプット

今更ながら8月30日にiOSDCにて『ARKitのための3D算数』の発表をしたときのことを振り返って、その前後で自分の知識がどう変化したと実感したかを書いていきたい。

分からないけどとりあえず応募

iOSDCのCfP募集が始まったのが6月で、その時はまだ3D数学についてやっと分かってきたくらいだった。

だけどそれまでに説明できるように学習しようというモチベーションで、あえて『ARKitのための3D算数』というタイトルで応募したのである。

結果は思惑通り、この発表に向けて本を読みまくり、知識を分厚くすることができた。2冊を横断して自分の認識があってるか何回も確認した。

アウトプットは最大のインプット

これが、最近読んだ本でも書いてあった「アウトプットは最大のインプット」という話だと思う。

実際、発表当日で自分の目標とする知識レベルまで達していたかというと怪しい。そのレベルにはやっと最近達した。(iOSDC発表の1ヶ月後)

本当は『ARKitのための3D算数』でも行列の話を突っ込みたかったのだが、15分しかなかったことと、ぶっちゃけ自信がまだなかったため盛り込まずに、Qiita記事だけにすることにした。

Qiita記事では行列の表記をミスっていた

Qiita記事にしても当初は完璧じゃなかった。一応数学としては間違ってなかったものの、SceneKitで考える時に使うべきな列ベクトルの表記ではなく、自分が読んだ本の表記法の行ベクトルで書かれていた。これでは過去の自分のような浅い知識の読者が混乱するだろう。

なぜならSceneKitでよくtransformのcolumn3(3行目)の上から3つをx, y, zとして取得するということをするが、これは完全に列ベクトルで考えているものである。(上図)

もし列ベクトルだったらcolumn3のx, y, zは0, 0 , 0のはずなので、これが移動を意味するベクトルであることを意味しなくなってしまう。

細かい部分だが、初心者はこういうところでつまづいてしまうのでちゃんと正しく書かないとダメだなと思う。

まとめ

- CfPを出した6月は人に説明できるほどには3D算数や行列についてわかっていなかった。
- Qiita記事で少しミスをしたけど何回も読み直したりPlaygoroundで試してみたりして修正していった。

人前で発表したり、人目に触れる記事を書くことは、緊張感があるのでとても頑張れる。時にはミスをしてしまうけど、それを経て知識が厚くなるので、どんどんミスしてアウトプットしていけば良いと思う。

もちろん間違った情報が世に溢れるのは良くないので、間違ったものは間違っていると指摘できるようにしたいし、自分が間違った時は謙虚に訂正していきたい。

プロテイン代にさせていただきます💪