【ひきこもり脱却チャレンジ】p5.jsとの出会い。私の先生 Daniel Shiffman【プログラミング】

Daniel Shiffman プログラミング

p5.jsとの出会い。私の先生 Daniel Shiffman

プログラミングの勉強をしていたら、面白そうな動画を見つけたので見てみました。そこから、Daniel Shiffmanという男を知り、p5.jsという面白いライブラリを教わり、そしてプログラミングのいろはをも学ぶことになりました。

p5.jsとは

p5.js(サイト外リンク)とはjavascriptのライブラリの一つです。ちなみに、processingというJava用のフレームワークがありますが、それのjavascript版です。プラットフォームが違うだけでできることはほとんど同じと言っていいと思います。

p5.js公式の紹介分には以下のようにあります。

(…)
p5.js is a JavaScript library for creative coding, with a focus on making coding accessible and inclusive for artists, designers, educators, beginners, and anyone else!
(…)
Using the metaphor of a sketch, p5.js has a full set of drawing functionality. However, you’re not limited to your drawing canvas. You can think of your whole browser page as your sketch, including HTML5 objects for text, input, video, webcam, and sound.
(…)

キャッチフレーズ的には「アーティストや初学者でも使えるクリエイティブなライブラリ」といったかんじです。ウェブページ上のcanvas要素を(望めばそれ以外のDOMも)色々と操作できるメソッドが豊富に定義されているライブラリです。言葉で説明するのは難しいのですが、Webページをスケッチのように使えて、いろんな面白いものが描画できちゃいます

p5.jsとDaniel Shiffmanをyoutubeで知る

そしてこのライブラリを紹介する活動をしている人にDaniel Shiffmanと言う男がいます。彼はthe coding train(サイト外リンク)というyoutubeのチャンネルでプログラミング初心者向けの動画を作っています。その中でprocessing/p5.jsを頻繁に題材として使っています。

彼はこのライブラリを作る組織に関わっている一人みたいです。普段はニューヨーク大学かどっかで講師をしている人なのかな。動画で話を聞いているだけで知性は伝わってきます。Nature of codeというコースで一連の動画群がまとめられているんですが、「自然界の現象や存在をコードで再現する」という主題のコースです。同名の本も出版しているみたいです。

私の先生、Daniel Shiffmanから学ぶ

youtubeのコメント欄でとあるドイツの人がこうコメントしていました。

Nature of Codeという本を読んで筆者のDaniel Shiffmanという人物を勝手に想像していた。多分プログラミングの天才で、コンピュータのように精密な人なんだろうと。後日、なんとなくthe coding trainというチャンネルのyoutube動画を見ていると、動画の中の男はこう名乗った、”私がDaniel Shiffmanです”と。ん?どこかで聞いたことがあるような…。そこで私は気づいた、「え!?この人があのDaniel Shiffmanだったのか!」

そうなんです、彼は動画では結構ハチャメチャなハイテンションな感じでやってます。動画内でコードを書くわけですが、しょっちゅう人間臭いミスをします。彼はプログラミングを実践してみせて、間違えるところも堂々と見せてくれます。勇気のある行動だと思います。自分を良く見せたい人にはできませんよね。そしてそれが素晴らしいと思います。

プログラミングと問題解決

プログラミングは常に、「うまくいかないこと」と隣り合わせです。一文字書き間違えただけで機能しなくなります。なので、うまくいかなかったときにそれを修正する力、つまり問題解決能力が重要だとされます。彼は自分がミスをしてそれを修正するさまを公開することを通して、うまくいかなかったときの対処の仕方を教えてくれます。そういうメタ的な情報をも教えてくれるのです。本を読んでいるだけだとこのメタ的な情報は得られません。多くの場合、綺麗に整備された死んだコードが載せられているだけだからです。

メタ情報を吸収する

プログラムを作るときに何をどう捉えているのか、どこに着目して、何を考えているのか。そういったコードには直接現れないメタ的な考え方も彼から吸収しています。もちろんそういったメタ学習に加えて、p5.jsというライブラリの使い方、javascriptによるプログラミング全般もだいぶ彼から学習しました。

しかし何より彼の特筆すべきところはその情熱だと思います。情熱は伝染します。コメント欄でもそれを指摘する声が多いです。ほとんど人から断絶されているひきこもりにとって特に、彼のような人は重要です。消えかかった心の灯に、また火をつけてくれるからです。

Daniel Shiffmanは私の先生です。もちろん面識はないですけどね。だけど、色々なことを彼から学びました

まとめ

p5.jsについて書こうとしていたんですが、なんかDaniel Shiffmanの話になってしまいました。彼からは色々なことを学びましたが、内容としてはNature of codeにとても興味がわきました。自然界をアルゴリズム化するということは、私の野望の惑星を作ることの基礎になり得るからです。

【ブログコンセプト】私の究極目標【Part 2/2】
私の究極目標で書いたことは、なんというか表面上の目標です。長期的な究極目標はまた別のところにあるんです。一言でいえば、それは「もう一つの世界を創造する」ことです。その具体的な一つの方法がゲームを作ることです。ひきこもり宣言ひきこも...

特にgenetic algorithmに感動しました。そこから、GA RaceとかHunter*Gathererを作ることになるわけです。

404 NOT FOUND | Engine.Create()
ひきこもり歴10年の男が人生をかけてゲームを作ります。ひきこもり脱却チャレンジ体験記も書きます。
【Game A Week】GA Race【番外1】
【Game A Week】GA Race【番外1】GA Raceはカエルが周回数に応じて進化していくレースシミュレーションです。こちらから実際に見ていただけたら嬉しいです。webブラウザ上で見れます。Game A Weekを始める...
【Game A Week】Hunter*Gatherer 【番外2】
Hunter*GathererHunter*GathererはGA Raceに続いて私が作ったはじめてのゲームらしいゲームです。集中的に作り上げて3週間弱ほどで一応完成まで作りました。実装したいことはまだ山ほどありますが、とりあえずプレイ...

コメント

タイトルとURLをコピーしました