こんにちは、フリーランス開発者の谷沢 @yacchin1205 といいます。元産技高専の実験担当の非常勤講師という特殊な立場ではあるのですが Teacher 面してつらつらとKosen Advent Calendar By Teachersの流れで書かせていただきたいと思います。
まずはかるく自己紹介を。自分は東京高専情報工学科を出て静岡大学情報学部に編入学、電通大の情報システム学研究科で修士をとってから、博士後期課程在学中にベンチャー企業活動にハマってそのまま満期退学、という、お世話になった先生方には大変なご迷惑をおかけするようなタイプの人間です。(もし読んでおられる先生がおられましたらほんとうにすみません。)
お仕事的には、学部時代に学生ベンチャーで企業システム開発の勉強をさせていただいたり、修士時代にオンラインゲーム開発会社に参加させていただいたり、それ以降は次世代DVD開発にかなりどっぷり入らせていただいたりしました。今はフリーランスとして、とある研究所でクラウドの基盤をメンテナンスしたり大学で研究開発活動に参加させていただいたりしています。フリーランスなので開発以外にも本を書くお手伝いをさせていただいたり、講師などさせていただく機会もあったりで、周りの方のお世話になりつつ興味のあることをさせていただいていたりします。
まあそんな流れで本能の赴くままに生きている感じの人間ですが、おととし、去年と産技高専の実験担当の人手が足りないということで少しお手伝いさせていただく機会がありました。それなりに現在進行で仕事で技術を使っている人間が、技術を学ぶひとたちにさてどんなことを伝えられるかな?ということで色々考える機会になりました。
在学中のみなさんには伝えたいことは山ほどあるわけですが(ちゃんと期限内にレポートを出してとか。)、今回は、あえてあそぼうなどというキーワードでつらつらと記事を書こうと思います。
あそびが勉強への入り口
わりと雑多に仕事させていただいている自分ですが、信条は「働いたら負け」です。アイドルマスターシンデレラガールズ双葉杏さんで有名ですね。実践はできていないわけですけれども。
お金をいただくのに最低限の仕事をしている片手間で、こんなあそびをやっていたりします。
- MikuMikuDance on GWT実験場 (Chromeでみてね)
- GCS2012 LT資料 (↑をネタにしたプレゼン)
簡単に説明させていただくと、WebGL(ブラウザで3D関連表示を行う技術)に対応しているブラウザで開くと、今をときめく電子の歌姫初音ミクさんが表示されるという、まあそれだけのものです。
ここ数年MikuMikuDanceというソフトウェアから3Dコンテンツの生態系がより身近になり、見慣れた感があるネタです。もともとHTML5あたりの界隈をうろうろしていたこと、ミクさんは俺の嫁なのに近くにいないのはおかしいのでつくったというそれだけの話なのですが、思いつきでそんなことを始めるとこんなことを勉強する(しなおす)羽目になります。
行列に関する計算
物理的な特性に関する計算
- 3D関係のライブラリのさわり方
この界隈はネットを探せば色々情報が見つかって、簡単に作れるだろうと高をくくってはじめた作業ですが、いざはじめてみると情報を読み解けない。語彙や思考のモデルが自分の中にないため、いっぱい情報があってもそれが意味するところをすぐに把握できないわけです。
で、結局、久しぶりに高専時代の教科書を引っ張りだしてきて、それなりにおじさんになった脳みそでいっしょうけんめい勉強しながらこういったものを作る。といったことが自分のあそびです。あれやこれや考えながら実装してはミクさんがうまく表示できたりできなかったりして一喜一憂するのはなかなかよいものだったりします。
他には、Arduinoのようなマイコンで動くおもちゃを作るときには電子回路の勉強が、ネットワークから得た情報をあれやこれや料理してあそぶときには統計の勉強が使えたりします。個人差はあるかもしれませんが、自身も高専でそれなりに横断的に勉強をしたり実験をしてきたことで、こういったあそびに対してあまりハードルなくはじめられているのかもしれません。
おもちゃはたくさんある
あそびというのはおもちゃがあるとなお楽しいものです。
情報であそぶ人たちにとってのおもちゃは、入力データと計算能力です。
入力データとなるのはネット上の情報あたりが面白そうです。ネット上の情報は、収集の仕方にもよりますがもろもろ情報源の規約の範囲でならば無償で入手することができます。また、身近なものとしてはセンサーなどはどんどん安価になっていますし、USB経由でアクセスできたり以前と比べると数段お手軽に扱うことができるのでよいかもしれません。
計算能力はAmazon EC2のようなクラウド上でほしい時にほしいだけ(お金を払わなければならないですが)確保することができます。社会人的には月々1000円以内くらいで計算機が確保できればまあそれなりに万々歳です。自分は一度お金まわりがよいときにAmazon EC2に仮想マシンを100台ほど確保して一日ぶん回してあそんで1万~2万くらい払った記憶がありますが、本来100台物理的なマシンを確保して面倒を見るコストを考えれば、まったく問題ありません。財布にはそれなりにダメージがありますが。
ここまで説明したのは仮想世界(ネット)であそぶ場合ですが、現実世界(物理世界)であそぶ場合はまた少し違ってきます。
入力データとなるのはセンサーが楽しいです。温度センサーなどは簡単に取り扱えるようパッケージされてるものでも1000円くらいで買えます。加速度センサーやGPSであそんでみるのも楽しいかもしれません。
また、計算能力はArduinoのようなお手軽マイコンを買ってくるのがよいかもしれません。数千円で、簡単な文法のプログラミング言語でプログラムしてセンサーから値を拾ってきてシリアルで母艦PCに送って処理、みたいなことができそうです。温度センサーの値を時間軸にプロットしていくだけでも、部屋のエアコンがどのようなポリシーで温度制御をしているのかが見えて面白かったりします。
現実世界の場合は出力方法もバリエーションがあります。LEDマトリックスにドット絵を表示するおもちゃをつくったり、サーボモーターでスカートをめくるのもよいですね。
あそぼう
どうしても、仕事だと、取り組む前にその物事を分析して、利益やコストを考えてどうやるかみたいなことを考えなければなりません。お金をいただくのだし、周りの人を巻き込むことになるので、それは当然のことなわけですが。仕事ははじめのほうほどいっしょうけんめいやって、あとはどんどん楽になるのがもっともよい形だと思っています。(できるかどうかは置いておいて。)
一方、あそびは何も考えずに思いつきではじめるのがよいと思っています。で、壁にぶつかったあとで思いっきり考える。とりあえず死なずに生傷程度ならばまあ自己責任で笑ってすみますし、死にそうだったらはじめから思いつきなのでやめればよいです。「嫁を表示するまでは寝ない」とかやってしんどい思いをするのもまあありです。止めません。
そうやってあそんでいると、失敗や成功のデータベースが頭の中に蓄積されていくような気がします。それが仕事に役立つかもしれません。これはほとんど自分の希望なわけですが。いや本当あそんでばっかりで関係者各位ほんとうにすみません。
とまあ、そんなことをつらつら思いまして、講師のときにも授業が終わったあとに少しあそびのネタを披露させていただいたりしていたわけです。少しでもあそんでくれる学生さんが増えるといいなと思いつつ。
フリーランスなぞという身分でやらせていただいているわけですが、世の中をみると、自分の時代は文句なしの超大手企業だったはずの企業が軒並み大変な目に遭っています。自分もお仕事を一緒にさせていただいた会社は何社かあるのですが、彼らは決して怠けていたわけではなく、むしろ非常に勤勉にやってきたはずです。自分もリーマンショックという巨大イベントをベンチャー企業役員(なんちゃって)という形で見ておそろしい思いをしたわけですが、まだまだ色々なイベントが目白押しのような気がしてなりません。
そんな中で、あそびで多様性を保ちつつ、何がきてもそれなりに対応できちゃうよ、という生き方を目指すのもそれなりにありかもしれません。修羅の道のような気がしなくもないですが。
あっ。あと、あそんだらまわりの人に見せて自慢するのもいいですね。こんな感じで。