プログラミングは誰かのために(または遊び心・下心から)


 
 もっと早くアップしたかったが、なんだかんだでバタバタして、きょうになってしまった。

 2018年3月14日、「秋葉原プログラミング教室」のプレス向け公開が行われた。この教室、清水亮さん率いるUEIが運営するもので、2年ほど前からUEI のオフィスを利用して行われていようだが、この春から教室を独立させ、会社として立ち上げ、教室を常設することになり、そのお披露目のイベントだったわけだ。

 会場には多くの、なんというか、おそらくプログラミングやAIや教育事業関係の人など(タブレットで学習できる教材を提供している会社のかたもいた)が集まっていたようで、清水亮さんが前で話し始める頃には、会場に並べられた数十席はほぼ埋まり、立っている人もいるほどだった。

 
 
 で、ここからは、清水亮さんのトークを抜粋する。そのほうがわかりやすいと思うからだ。

「2015年11月にプログラミング教室をやりたいということで、(UEIの)会議捨を使って試験的にスタートしました。最初、生徒さんは2、3人というか、最初の最初は社員の子どもなどに対し、とりあえず『教えられるのか」ということでやってみました。

 で、次に、翌年の4月から本格的に開始しましょう、ということになりました。プログラミング教室で黒字が出ているのは、おそらく弊社だけで、おかげさまでFC(フランチャイズ)というか、地方展開も続々と決まりつつあって、ついに、ことし念願の教室が独立するということで、このタイミングで会社を分けました。

 UEIエデュケーションズという会社をつくって、代表というか社長に福岡俊弘さん(初代「週刊アスキー」編集長)をお迎えしてやっていくと。本当はKADOKAWAからどこかの学校の校長をやれって言われたらしいんですけど、
やりたくないって言ってKADOKAWAを辞めた人。でまあ、結局、うちの校長するんかい、と(笑)。ていうのはあったんですけど、

 で、「なぜ、そこまでしてやるの?」っていうと、いくつか原因があって、絶対誰もが言うのが「2020年プログラミング教育必修化」。ただ、別に僕らは役人じゃないので、アクションを起こす義務はまったくありません。

 やっぱり、僕がいちばん危惧しているのは、「プログラミング教育必修化だ!」というキャッチフレーズのもと、お金のことしか考えてない人たちがプログラミングをガキに教えます、とか言って、すごく質が低い授業、質が低い教材、そそして心がこもっていない先生みたいなのが、プログラミングというすごく楽しいものを、つまらないものにしようとしているんじゃないか、と。

 で、僕がいちばん恐れているのは、子どもがプログラミングを嫌いになっちゃうこと。質が低い人が、質が低い教材を使って、志のない人が子どもにプログラミングを適当に教えることが、いかに良くないか。

 これを外から文句を言っているだけだと、かっこわるいので、多少、身銭を切ってでもやりたいと思ったのです。

 僕自身の経験を言っちゃうと、6歳のときにコンピュータにはプログラミングというものがあるのを知るわけです。で、7歳でプログラミングを書いて、8歳のときに「ベクトルってすげえな」みたいな。

 で、9歳くらいになると初めて3Dプログラムを書いて、10歳になって初めて行列の意味が分かって、行列面白いじゃんと…(清水さんの話はまだ続き、な内容も面白いのがこのあたりは省略させていただく。すいません)。

(中略)

 いかにAIを使って遊べるのか。こないだとある電機メーカーのエンジニアが来て、彼らが「今、どういうことをやっていますか」と聞くから「こういうことやって、こういうことやって」と話をしたんです。

 すると「えっ、これだけのたくさんの人口知能の事例を誰が考えて、どんなチームが…」などと聞くので、「こんなにたくさんの」。今年、30コの人口知能をつくったんですね。「30コの人工知能をつくるチーム、何人いるんですか」って聞かれて。うちの社員20人しかいないから、手を動かす人は15人くらいいるけど、考えるのは僕とあともう1人くらいですよ。

 結局、アイデアなんだよね。それをなんでそれだけ働けているかというと、人工知能で遊んでいるから。だから、やれと言われなくてもやってるから。それは別に、楽しいからやっているのであって、あの、あまりにも楽しくて、会社のコンピュータ、勝手に家に持って帰って、家で人工知能をつくってるんですけど、そういう考え方が大事だと。結局、よく、AIが人の仕事を奪うとかなんとかっている話があるんですけど、いちばん重要なのは、人間の最も素晴らしい能力は想像力なんですよ。

 僕らが思っているのは難しい理論を理解することも楽しいんだけど、楽しみとしてやればいいだけであって、必要なことじゃない。むしろ、いかにAIを使って遊べるのか。で、それは楽しいからやっているわけで。どんなことができるのかっていう、想像力を使う能力のほうが絶対重要になります。

 で、結局よく、AIが人の仕事を奪うとかなんとかって話があるんですけど、いちばん大事なのは、人間の持つ最も素晴らしい力は想像力だから。これだけはですね、人工知能がなかなか獲得できない。いろいろ考えた結果、わかったのはそれがいちばん難しいってこと。想像力を持つ人工知能をつくるのが、最も難しいんだと。だから、これから先、人工知能とうまくやっていくために、人間が持たなきゃいけないのは想像力なんです。

 で、実際、AIプログラミング講座をやっていて、最先端お動画教材と実技で学習。あと、GPUっていうね、部品だけで10万円オーバーの、しかも今、仮想通貨の採掘で秋葉原では1人1枚までみたいな制限がついて買えないみたいな。最近はみんな、中国まで買いに行くんですよね。もう、これすごいですもん、奪い合いですもん。ま、現代のオイルといわれている。工場で生産されて、出てきたそばから強盗団が持っていくみたいな。そんなGPUマシンを、うちのプログラミング教室では使うことができます。

 月に1回、僕が1時間半くらい、その月までにあった新しい人工知能の話題をオーガナイズして説明するという座学があったりとか、みんなでSlackを使っていろいろ情報交換したりとかやっていて、これが実は大人には人気があって。こんなことができるプログラミング教室はうちだけですから。

(中略)

 あの、AIのIQって25,000くらいあるんです。これは嘘じゃなくて、計算方法があってIQって、「生活年齢」割る「精神年齢」なんで、そうすると25歳の人が満点をとれる問題を10 歳で解いたら、IQ250なんですよ。それを1年しか学習していない人工知能が解いたら、それ1歳児が25歳なので、2,500。36日で解ける、学習できるAIがあったら、それはその10倍だから25,000と。そんな変な話じゃない。だから、IQの高さってもはや、人間の能力を測る指標としては使えないですね。

 学校教育は、同じことをする人をたくさんつくろう。それはそれで意味があったんです、20世紀までは。ここには想像力ってほとんどいらないです。再現性だけが必必要。でも、これから先って、そうじゃなくてもっとスパイク型の、好きなことだけやってください。だから、僕がよく言ってるのはYouTuberしか残らない。YouTuberみたいな生き方。好きなことだけやろう、っていう生き方しか残らないと思う。

 もう1つ大事なのは、アルファシリーズ。アルファGo、アルファゼロみたいなのがあって、これって何が教えてくれるんですかっていうと、僕はもともと囲碁のゲームをつくってましたから、20年くらい前に囲碁のゲームをつくるときに、囲碁って勝敗判定じたいがものすごい難しいんです。にも関わらず、ゼロから勉強して囲碁、将棋、チェス、ポーカー、なんでもかんでもアルファゼロシリーズが解いちゃうと。これってどういうことかというと、今まではこうしたら勝てるっていう理屈が大事だったんだけど」

 などと清水亮さんの熱く、濃く、面白い話がたっぷり聴くことができた。途中、1台20数万円のディープランニングマシンを用い、デモンストレーションのようなものが行われた。そのなか、人工知能対人工知能が3目並べ(マルやバツを3つ並べるゲームみたいなの)をやるとどうなるか、というのを見せてくれたがそれがまた面白かった。人工知能どうしだと、おたがいに負けない方法お探り出すというか、覚えるからから、100回やって100回引き分けのような結果になっていた。

 
 
 で、そのあと、古川享さん(慶應大学大学院メディアデザイン研究科教授、日本法人マイクロソフト初代社長)と遠藤諭さん(角川アスキー総合研究所取締役兼主席研究員)をゲストに迎え、清水さんが司会のような立場でトークセッションが行われた。

 そこで特に印象深かったのは、こんな発言。「僕が知っているエンジニアで成功している人には2つ共通点があって、1つはテレビやラジオなど、子どもの頃からなんでも分解していたことと、もう1つは百科事典を端から端まで読んでいたこと」といったことを古川さんが口にしていた。

 また、古川さんは「何をきっかけにプログラミングを始めるかなんだけど。まずプログラミングじゃなくて、自分のつくりたい世界を自分が実現するっていう、そういうところからスタートしてっていう想像力が。たんに何行書いて、コンパイルして何が出るって話じゃなくて、想像することが楽しい。そこからスタートしたほうが、すごく深いところまで行けるんじゃないかな」が言い、清水さんは「想像力と怠け心なんですよね」と返すと、遠藤さんが「プログラマーの3大美徳ですね」と口にした。

 すると「あとの2つは何ですか」と聞く清水さんに「忘れちゃった」と答えた遠藤さんが、これまた良かった。3大美徳を忘れてしまう、それこそ怠け心かもしれない。

 続けて、古川さんはこんな話をした。「自分の母親が、ワシントン・ユニバーシティの理事とかやっていて、寄付にも携わっていて(担当としてということか)、お母さんがいろんな数字にまみれて大変そうだから、なんか手伝ってあげたいと。身近にいる人の問題解決をしたいってところからスタートしている人がけっこう多いんですよね」(これ、ビル・ゲイツの話だったのかなぁ)

 それに対し、遠藤さんが「これ、ほんとにいい話だと思って、実はパスカルの計算機ってあるじゃないですか。パスカルもお父さんがなんか徴税官で、大変なんで。実はパスカルで有名な真空に実験はなかったらしいんですけど、って長くなるんでこの話はやめますけど、パスカルも(きっかけは)お父さんだったんです。

 実はプログラミングのイベントをうちでやらせていただいたときに、古川さんに来ていただいて、そのときに古川さんがまさにいま言ったことをおっしゃって。それ、すごいじゃないですか。たとえば、会社の同じシマの女子にちょっと近づきたいからExcelのマクロ教えるみたいなのでもいいです。

 とにかく誰かのためになるってのがすごく重要で、今のプログラミング教育、そういう人もいると思うんだけど、やっぱりIT人材だとか、お金が稼げるからからというのもそれもいいんだけど、下手するとお国ためみたいなのでもいいんだけど、いまどき、人のためになれって、そんなにないですよ。これ、ちょっとしたことでなれちゃう。すごくないですか」

 と、遠藤さんが言うと、古川さんが「ザッカーバーグって最初に、大学の授業を受けるときね、すべての授業で自分の好きな子が隣に座るように組んでたみたいで。座席が決まってたのかどうかわからないけど、下ごころ万作みたいな状態でプログラムを始めるっていうのは、生きる糧の中で重要な欲の部分だからね」

 プレス公開イベントのことを全部書くともっと長くなるんだけど、まずはこのくらいで。AIもプログラミングも面白そうだし、めちゃくちゃ気になるけど(僕が教室に通いたいくいらい)、それよりもなによりも、この3人のように遊びごころ万作の人間になりたいなぁ、とそう思った。プログラミングよりもAIよりも(というのもなんだけど)、魅力的な大人たち(いい意味で子どもたち(?)かもしれないけど)だなぁ、とこの文章を書きながら、あらためてそう感じている。
 
 

このブログのテーマを変更

 かなりしばらくぶりに、このブログのテーマを変更してみることにした。それはこれ。というか、画像を見てもらえばわかると思うが、日本の入江隆さんという方がつくったテンプレートで「Twenty Fifteen」と命名されているものだ。ちなみに入江隆さんについては、こちらでも紹介されている。
 
 このテンプレートはレスポンシブデザイン対応で、上の画像がPC向け、下の画像はスマートフォン向け。スマホのほうはiPhone 8 Plusで表示し、スクショ(スクリーンショット)したもの。ピンクやクリーム色の背景色は、カスタマイズしたものだ(もともとはうすいグレーだったかな)。

 今さらながらだが、やはりレスポンシブ対応のほうがほとんどの場合、スマホでは見やすいように思う。また、時間を見つけて、いろいろカスタマイズしてみよう。
 
 

 
 

 
 

プログラミングについてわかりやすく書くのはむずかしい

 
 プログラミングについて多少なりとも学習(学習というのはなんかイヤな言葉だな)してきたつもりだが、プログラミングのことをプログラミングの知識がほとんどない人に説明するのはむずかしい。
 私の知識が中途半端で、実際の技術も半端だから容易でないということも理由のひとつだが、プログラミングの専門用語をほとんど使わずに、プログラミングの魅力やプログラミングの簡単さや困難さなどを説明するのは、それほど楽なことではないだろう。
 と、こう書いただけでも、記述内容に具体性がほとんどない。はて、どう書くのがいいのか。すぐに答えは出せそうにないので、ちょっとずつ考えながら、ときどき(思い出したように)書いていくことにしようと今、考えている。
 
 
 

PHPはサーバにアップして確認

 
 プログラミング言語のPHPをさわる。JavaScriptはエディタなどでコードを書いてブラウザで開けば表示や動作などを確認できるが、PHPはサーバにファイルをアップしてから確認する必要がある。
 
 JavaScriptにくらべて少し手間がかかるが、その分、期待通りに表示されたとき、余計にうれしい気がする。いいぞ、PHP。
 
 
 

Pythonのエンジニアは引っ張りだこ!?

 
 きょうもMacのターミナルを立ち上げ、 irbと入力し、enterキーを叩き、プログラミング言語のRubyを少しさわる。簡単な計算(引き算)をしただけなのに、なんだか楽しい。

 立ち寄った人形町の文教堂書店のコンピュータ書籍コーナーでは、Python(パイソン)の関連本がまた増えていた気がする。AI(人工知能)絡みということもあって、(プログラミング言語の)Pythonにこれまで以上に注目が集まっているのだろうか。並んでいた本の1冊(Pythonの入門書)に、「Pythonのエンジニアは引っ張りだこ」といったことが書かれていたが、本当に本当なのだろうか。
 
 
 

Macのターミナルで「Ruby」ことはじめ

 MacのTerminal(ターミナル)を立ち上げて、Rubyを試してみる。うん、いい感じ。

 そうか、そうか。

Hello World.

 と表示させるのに、printでなく、putsを用いて

puts “Hello World.” と書いて(Terminal上で)改行すればいいんだな。なるほど、なるほど。
 
 
 
と、参考にしたのは、この「20分ではじめるRuby」。
 
 
 

空飛ぶプログラミング言語「Phython」

 
 このところ大いに盛り上がっているように思える、AI(人工知能)。そのAIのプログラミングにPhython(パイソン)というプログラミング言語が向いているようだ。PhythonでないとAIのプログラミングができないわけではないものの、AIのプログラミングに適した言語のひとつであるらしい。

 株式会社UEIの代表取締役・清水亮さんはPhythonについてブログでそのように書いていたし、同社が開催しているAIプログラミング教室(講座というべきか)でもPhthonなどによる深層学習プログラミングに取り組んでいるようだ。

 ところでこのPhython、私はその存在を知っていたという程度で、Phythonについて特に詳しいわけではないが、その名称は前々から気にならないではなかった。パイソン。そう、英国のあのコメディ集団をご存知の方も少なくないだろう。

 モンティ・パイソン

 私はモンティ・パイソンの活躍をタイムリーに、つまり同時代的に感じながら少年期を過ごしたわけではないが、大学時代以降くらいにモンティ・パイソンにふれるようになった。
 
 以前、下北沢に住んでいた頃に「ドラマ」という名のレンタルビデオ店で何本も借りて見始めたように思う。見始めることになったのには、劇作家・演出家の宮沢章夫さんによる影響があるのは間違いないだろう。
 
 1990年代前半から後半にかけて、私は宮沢章夫さんが主宰する「遊園地再生事業団」の公演に何度も足を運び、池袋西武のコミュニティカレッジで開催されていた宮沢さんによる演劇のワークショップにも通っていたことがある。

 そのワークショップで宮沢さんは、モンティ・パイソンの映像を流したりしていて、変な歩き方をするコントの「シリーウォーク」(という回といっていいのだろうか、妙な歩き方を大真面目な表情でする男たちが登場する)などを目にした。いま、コントと書いたが、モンティ・パイソンのなかでは「スケッチ」という表現が使われていたはずだ。

 このPhythonという言葉はもともと「ニシキヘビ」という意味の英語で、Wikipediaには「Phyhonは、オランダ人のグイド・ヴァンロッサムが開発した。名前の由来は、イギリスのテレビ局BBCが製作したコメディ番組『空飛ぶモンティ・パイソン』と記述されている(2017年10月2日現在)。
 

 
 
 

HTML5のセクション名はシンプルでいい感じ

プログラミングをできると言ってみたものの、ほぼ独学で、大したレベルでないことは自覚している。

で、そんなレベルの私にとって、気になっていることのひとつが、ウェブサイトのデザインにおけるCSSの指定だ。で、そのCSSの指定をするために、HTMLの各要素にどのような名前をつけておくといいのか、というのが気にかかっている。CSSのクラスだ、やれIDだ、というのも気になるが、その前に整理しておくことがあるよねと思いつつ、ネットで調べていたら、「HTMLクイックリファレンス」に行き着いた。

いや、行き着いたというのは違うな。これまでの何度も見たことがあるウェブサイトなのだが、今回、私が注目したのは下記の内容である。「HTMLクイックリファレンス」中の「HTML5リファレンス」のうち、紺色の帯に白抜き文字で「セクション Sections」と書かれている部分がわかりやすい。

セクション Sections
<body>…… 文書の本体を表す
<section>…… 一つのセクションであることを示すHTML5から追加
<nav>…… ナビゲーションであることを示すHTML5から追加
<article>…… 記事であることを示すHTML5から追加
<aside>…… 余談・補足情報のセクションであることを示すHTML5から追加
<h1><h6> …… 見出しを付ける
<hgroup> …… セクションの見出しを表す、見出しをまとめる【廃止予定】
<header> ……ヘッダであることを示すHTML5から追加
<footer> …… フッタであることを示すHTML5から追加
<address> …… 連絡先・問合せ先を表す

※本当は( )でなく、< >というヤマカッコでくくりたかったのだが、このブログが表示された画面を確認すると、うまく表示できていなかったので、( )で表示させていただいた。まあ、きょうのところはお許しください。

(この部分、あとから書き込んだ)ヤマカッコが表示できなくて困っていたのだが、『HTML5&CSS3 デザインレシピ集』(狩野祐東 著、技術評論社)という書籍のP.100(042 HTMLで使用できない記号を表示したい)を見て方法がわかったので修正した。他にもいろいろ役立ちそうなので、同書については下記にリンクを貼っておこうと思う。

簡単な個人のサイトなら、まずはというか、立ち上げ時期くらいなら、上のセクション名を使えば、各セクションの名前はほぼ、ことたりるのではないだろうか。「HTMLクイックリファレンス」のここ(HTML5のページ)に出ているので、私のようなレベル、つまりウェブサイトのアップロードの手順くらいはわかっていても、初心者のレベルから中級者のレベルになかなか進めない人は見てみてもいいだろう。

ウェブサイトのトップページということに限定するなら、作りにもよるけど、プライベートなウェブサイトのようなもので、最低限のシンプルな構成でよし、とするなら

・ヘッダ(header)
・ナビゲータ(nav)
・セクション(section)
・アーティクル(article)
・アサイド(aside)
・フッタ(footer)
・アドレス(address)

くらいで、最初のうちはいいのではないだろうか。具体例があったほうがわかりやすいだろうから、自分のサイトなどを何かを例に挙げながら、そのうち、この続きを書いてみようと思う。