Monthly Archives: 3月 2014

主体性を発揮する

By   2014年3月31日

大学の講義で情報科学やプログラミング初級の講義を履修した学生さんに

皆さんは、なぜ情報・プログラミングを学習しようと思いましたか?

というアンケートを取ることがあるのですが、一番多いのは

「これから必要になると思うから」

というものですね。

「情報科学やプログラミングを学ぶとなにがどう変わるのか」「どのような力が身につくのか」

というところまで深く考えてもらうと、その後の講義への取り組みが変わってくるように思えます。

デジタルハリウッド大学の佐藤昌宏先生の研究室の「Effective Learning Lab」のイベント「EdTechCamp Kick off & EdTech JAPAN Pitch Festival」のレポート

EdTech JAPAN Pitch Festival 「プログラミングを通して、21世紀を創造する人材を育てる」CA Tech Kids 代表 上野氏

という記事を読んでみました。その中で、上野さんが「プログラミングを学んだ方がいいと考えている」理由を3つ上げていまして、

1.世界の仕組みがどうなっているかというのを、プログラミングを学習することで知ることが出来る

2.消費者にとどまるのではなく生産する側に回ることが出来る

3.プログラミングを通して身につけられる力が重要。自分で創りたいものを考える力、それをどのように実現するのか考える論理的思考力。エラーを取り除きながら完成まで持っていく力、創ったものを人に説明したり、人前で発表する力。

としています。私も同感ですし、このような考えをもって子供向けのIT教育に取り組んでいる人は多いように思えます。

私自身、出された宿題をやって、放送されているテレビを見て、他人が作ったゲームをやって、というように主体性なく毎日を過ごしていた気がします。

特に今の日本では容易にデジタルを利用すれば「創る側」の体験ができますので、私の講義を受講した学生さんにはそのために必要な知識や情報を提供できればと思っています。

それと、5歳の娘にはなるべく多くそのような体験をさせてあげたいですね。

 

 

 

プログラミング業界への女性の進出について

By   2014年3月30日

皆さんの周りには女性のプログラマの方はいますか?

ふと「そういえば女性のプログラマは少ない気がするな」と感じました。

プログラマは男性のほうが向いているのでしょうか。

私は大学で「情報科学の基礎」という講義と「Webプログラミング」の講義を担当しているのですが、「Webプログラミング」のほうは「情報科学の基礎」に比べると女性の比率が低いですね。ただ、そんな中で履修している女性の学生さんは頑張っている印象があります。

プログラミングは筋肉を使うわけでもないので肉体的なハンディはありませんし、「プログラマは男性の仕事」というような、印象の問題だけかもしれないですね。プログラミングの世界にも女性で何か成功して有名になる人が出てくると印象が変わるのかもしれません。

女子中学生・女子高校生のためのプログラミングキャンプ「Code Girls JC×JK」

なんてものもみつけてしまいました。そこでは

> 女性のIT関連の雇用全体に占める割合は約27%と言われています。しかし、世の中のWEBサービスは、女性ユーザーが多く利用するもの多数存在しています。だからこそ、女性ならではの視点やエンジニア能力が強く求められているのです。

とありました。

確かに女性をターゲットにしたWebサービスも多くあるわけですし、男性だけに限ってしまうと、それだけで日本人の半分くらいがNGということになってしまいます。

日本のWebサービスのクォリティの向上やIT関連の仕事のイメージの向上を考えるといい方向なのかもしれないですね。

 

ローカル開発環境の構築 2回目(ドットインストール)

By   2014年3月29日

ではローカル開発環境の構築 2回目です(前回はこちら)。

#02 Vagrantで仮想マシンを立ち上げよう

を見ながら実際に1つ仮想マシンを作るわけですが、以下の部分は「イメージのダウンロード」が必要で、これが500メガバイトほどあり、ダウンロードに結構時間がかかりました。モバイル環境で40分くらいはかかったようです。取り組むときには、電池に気を付け、ダウンロードの間別にやることを考えておきましょう。

ドットインストールではMacでの操作を動画で説明していますが windows でしたら、「プログラムとファイルの検索」のところに

cmd

と入れコマンドプロンプトを起動し、例えば c:\localdev で学習するとするなら

C:\Users\xxxx>cd c:\

c:\ > mkdir localdev

c:\ > cd localdev

c:\localdev>vagrant box add centos64box http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130731.box

という具合でしょうか。

最後の

http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130731.box

の部分はドットインストールの動画中で説明されますが、http://www.vagrantbox.es/ から
CentOS 6.4 x86_64 Minimal の「VirtualBox」を探し、「コピー」ボタンを押すとクリップボードにアドレスがコピーされます。コマンドラインで貼り付けです。

ここでだいぶ時間がかかります・・・・・・

ダウンロードが終わり、コマンドプロンプトで

vagrant init centos64box

などとやったときに、

> A `Vagrantfile` has been placed in this directory. You are now
> ready to `vagrant up` your first virtual environment! Please read
> the comments in the Vagrantfile as well as documentation on
> `vagrantup.com` for more information on using Vagrant.

が出れば成功しています。

今日はここまでで時間になってしまいました。次回は

#02 Vagrantで仮想マシンを立ち上げよう

の 1:40秒あたりから再開してCentOS環境を手元に構築していきます。

 

wikipedia の「プログラマ」

By   2014年3月28日

wikipediaの「プログラマ」のページ

http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E

をこの前初めて見てみました。

皆さんは今の形の「プログラマ」という職業がいつごろからあったと思いますか?

例えば、「看護師」という職業であればフローレンス・ナイチンゲールが従軍したクリミア戦争は1854年に勃発していますので、そのころからあったとみることができそうです。
一方プログラマについては、「プログラミング言語を使ってプログラムするのがプログラマ」とするならば、FORTRANやCOBOLが生まれたのが1950年代ですので、その時代から、つまり60年程度と考えられるのかもしれないですね。

コンピュータがないとプログラマは成立しないですので当たり前といえば当たり前なのですが、比較的新しい職業なんですね。

ところで、wikipediaには、こういった歴史の話の他に、Perlの開発者であるラリー・ウォールの唱えた「プログラマの三大美徳」を紹介していました。

「無精」・「短気」・「傲慢」

だそうです。

私は短気な人は特にバグのフィクスやテストが苦手な印象がありまして、短気よりも根気が必要なのではないのかなと思ってしまいました。

また、プログラムを組んでも利用されなければ意味がないわけで、利用してくれる人や用途に合わせていかなければいけないプログラマが「傲慢」というのもちょっと??ですね。

「プログラマに必要とされる効率や再利用性の重視・処理速度の追求・品質に賭ける自尊心を言ったもの」ということですが、皆さんの持っている「プログラマ」のイメージと比べていかがでしょうか?

例えば「看護師」というと(最近は少し変わっていますが)白衣をきた女性のイメージをもちます。「プログラマ」は比較的新しい職業なので、「イメージ」も「必要とされる美徳」もこれからまだ変わっていくのかもしれないですね。

 

プログラミングロボット Play-i

By   2014年3月27日

皆さんはドラえもんは好きですか?

私は大好きでしたし、娘も大好きなようです。ドラえもんの映画を見に行くことが私と娘の3月の予定の1つです。今年ももちろん見に行きました。今年の映画は私が子供のころにやった映画のリメイクなので、懐かしかったです。

さて、「丸くて青いロボット」

 

Play- i

の記事を見つけたのでご紹介します。

http://make.thebridge.jp/2014/03/play-i-funding-8m-doller

これ・・・ドラえもんと違って可愛くないですね。むしろコワい・・・(つくったかたごめんなさい)。

しかし、

> 1万1000個の予約注文を受注し、800万米ドルの調達に成功した。

ということです。800万ドルというと8億円ですから大成功のプロジェクトといえるでしょうね。

昨年の記事になりますが、itmedia

http://www.itmedia.co.jp/news/articles/1311/21/news078.html

にもう少し特徴を細かく書いた記事がありました。

なるほど、

・iPad等でプログラミングできる
・Scratch/ Blocky でもプログラミングできる
・価格が現実的(移動できないタイプのものは$49、移動できるものは$149、日本への送料は$50)

あたりが魅力的なのかもしれませんね。

あと、記事には見つからなかったのではっきりそうだと
いえませんが、あのデザインは丈夫さを求めた結果なのかもしれません。
投げたりしても壊れないのでしょうか。

私も少し欲しくなってきました。

ところで、皆さんは「ロボット」というとどのようなものを思い浮かべますか?

私は「ドラえもん」なのですが、私より少し上の世代の男性の方なら「鉄腕アトム」という方もいらっしゃるかもしれません。

最近はこのような人間型のロボットのアニメなどは流行らないのでしょうか。あまり見ない気がします。コンピュータの性能が高くなるにつれて、人間型のロボットというものが「夢のなかのもの」から「将来もしかしたら実現できるもの」になってくると、「本当に実現したときにどうなるのだろう」という怖さも感じるのかな、と一人で妄想していました。

プログラミング練習用のロボットはこのPlay-iのほかにも、先日紹介した primo など、だいぶ増えてきたようです。私の娘の世代が大きくなったときには「ロボット」というと、アニメではなくてこういった玩具や他のものを思い浮かべるようになるのかもしれないですね。

 

 

早起きの習慣

By   2014年3月26日

今日はちょっとコンピュータから離れた話題です。

皆さんは早起きすることについてどう思いますか?実践されている方、自分には無理だという方、やってみたけど挫折したという方、いろいろだと思います。

私は早起きしています。通常3:00、前の日遅かった場合でも4:00に起きるようにしています。

私に関して言えばこの早起きの習慣はいいことだらけですね。

この文章も朝に書いているのですが、なにかを毎日続けていきたいと考えたとき、それを昼にやろうとすると、どうしてもほかの都合とぶつかって「今日はいいや」となりがちです。

朝というのはその気になれば自分の時間がとれますので、そこを使ってなにかを継続していけます。私の場合はこうやって文章を書くことですが、ダイエットしてもいいですし、なにか勉強してもいいですよね。一日30分365日続けると182.5時間、およそ通常のサラリーマンの1か月分の勤務時間くらいでしょうか。これだけの時間があれば何かを変えることができるはずです。

もし仮になにも身につかなくても、早起きは「自信につながる」という効用もありますね。「起きる」と決めて「起きれた」自分ってちょっとだけスゴイという気になれます。自尊心のアップにつながるわけです。

ところで

早起きは三文の*

突然ですが、上の*を埋めてみてください。ほとんどの方は知っていますよね。この諺。
正解は「早起きは三文の徳」です。あれ?と思った方もいますでしょうか(私だけじゃないですよね??)。

得じゃなくて徳?

デジタル大辞泉

によると、「徳」にはもうけという意味もあるそうなので、「徳」でも「得」でもあまり意味は変わらないのかもしれません。「早起きは三文の得」を正解としている例もあります。

ただ、「徳」は「精神の修養によってその身に得たすぐれた品性」という意味が第一に載っていますから、他にこれといって徳が見当たらない私はやはり「早起きは三文の徳」としたいですね。

早起きの習慣、お勧めです。

 

ローカル開発環境の構築 1回目(ドットインストール)

By   2014年3月25日

mongoDBを見たので、その次に node.js を見ようと思っていたのですが、ドットインストールの中で「ローカル開発環境」というのに触れられているのを見まして、予定を変更し、vagrant をやってみることにしました。

私は通常 PHP の開発をやるときには xampp  で動作させながら進めていますが、本番環境はlinuxサーバのことが多いので、手元にあると便利ですね。

そういうわけで今日は

#01 ローカル開発環境を整えよう

を見てみました。

【感想・補足】

ドットインストールの動画は Mac 上での操作のものなので Windows
でやるときには少し戸惑う部分がありました。#02以降を見ていくには、
VirtualBox と Vagrant をあらかじめインストールしておく必要があるのですね。

それぞれ

http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html?ssSourceSiteId=otnjp

http://www.vagrantup.com/downloads.html

からダウンロード、インストールしました。

VirtualBox は仮想環境のソフトウェアです。今までは私はVMWare をつかっていました。
探したところ、イメージの変換などもできるようですね。

http://blog.m264.com/2010/10/virtualbox-vdivmwarevmdk.html

VirtualBox と VMWare と両方やっていくのはちょっとしんどい気がするので、VirtualBoxに慣れたらVirtualBoxに移行しようと思いました。

VirtualBoxはインストール時に一度ネットワークを再起動します。私はちょうどそのときにVagrantがダウンロード中だったので再度ダウンロードしなおしになってしまいました。両方とも100Mバイト前後でした。

Vagrant のインストールが完了すると、再起動を求められます。PATHの設定がされるようですね。再起動後、コマンドプロンプトから

vagrant

と入力するとヘルプが表示されれば、うまくいっています。

今日はここまでで時間になってしまいました。次回は

#02 Vagrantで仮想マシンを立ち上げよう

を見ながらCentOS環境を手元に構築していきます。

 

プログラミング言語は外国語

By   2014年3月24日

スラッシュドットジャパンで

「ケンタッキー州、学校においてプログラミング言語を外国語として認める方針へ」

という記事を読みました。アメリカの高校では大学受験のために外国語を2単位取得する必要があるそうなのですが、プログラミング言語の授業の単位も外国語に含めてOKとするということですね。

私も大学生に対し、「プログラミング言語をなぜ学ぶか」ということを考えてもらうときに外国語(日本人にとっての英語はちょっと性質が異なってくるので、いわゆる第二外国語)を学習することと比較してみることがあります。

例えばドイツ語・フランス語・中国語を学習することと比較すると、もちろんそれが好きになってある程度身につけば仕事にできます。好きなことを仕事にできるのは幸せなことだと思います。

また、いまの日本では、職を探すときに「ドイツ語できます」「フランス語できます」「中国語できます」よりも「プログラム書けます」のほうが今は仕事が見つけやすいのではないでしょうかね。

それと、それ自体を仕事にしなくても、第二外国語を学習しておけば、その国に旅行や出張したときに、ガイドさんや通訳に基本的に任せるにしても、そこで過ごす時間の密度が違ってきます。プログラミングも同じです。プログラムを使うとき、または誰かにシステムを作ってもらうときに、過去にプログラミングをやった経験があると違ってくるでしょう。

アメリカでは「外国語」ですが、日本では中学校の「技術」の時間で数時間プログラミングが必修になりました。数時間だとどうなんだ、とか、だれがどう教えるんだ、など問題は山積みですが、プログラミングの教育が注目されることはいいことだと思っています。

ところで、1998年と相当昔ですが、TBSがインターネット関連のアルバイトを募集するときに、条件を「CまたはPerlによるプログラミング経験がある方。日常会話レベルが必要」としていたそうです。

internew watch

この募集をかけた人は、1998年から既に「プログラミング言語も外国語と同じだ」と考えていたのでしょうかね(そんなわけないと思いますが)。

私も少しずつプログラミング教育に関わっていく部分を増やしていきたいと思っています。

ゲームでプログラミングを学ぶ

By   2014年3月23日

皆さんはゲームは好きですか?

私は大好きです。大学の時には気がついたら朝・・なんてこともありまして、ここ数年はやらないようにしています。もし引退することがあったら、その時にはドラゴンクエストを1から順番に全部やりたいですね。

その昔、ファミコンの時代から、ゲームと学習を融合させようという試みはよく行われていたように思えます。私と同じ世代の人だと、

ドンキーコング Jr. の算数遊び

など記憶にあるのではないでしょうかね。

ただ、こういうもので「身に付いた」という話はあまり聞きません。

どうしてなのだろうな、と思うこともありましたが、やはり何かを修得するためには最初は集中し、意識してそのものを頭に焼き付ける必要があるのだと今は考えています。

例えば上の「ドンキーコング Jr. の算数遊び」であれば、ゲームが面白ければ面白いほど、算数への意識が向かなくなります。身につける初期段階であれば、こういうゲームよりも「計算ドリル」などを集中してやったほうが、時間帯効果は高いでしょう。

ただ、ある程度それをやったあと、更に高めるためにはこのようなゲームは有効かもしれません。なぜかというと、それは「無意識」に算数をやることになるからです。

例えばタイピングの話であれば、最初は「Aはここ」「Bはここ」というように、意識して覚えることが必要ですが、いつまでもその意識を持ったままですとスムーズに打てるようにはなりません。どこかの段階で「無意識」に移行することで、タイピングが身につきます。

こういったことを考えたのは、

code combat

に関する紹介記事を見たからです。

これはブラウザで楽しめるゲームで、javascript を実際にタイプしながら進めていく RPG です。

10分くらいですが、やってみました。面白いですね。続きがやりたいです。

こういった無意識の経験の積み重ねが、人間の能力をつくっていくのかもしれないですね。javascript をやったことがある人で、ちょっと遊んでみたい気分の人にはお勧めです。

 

MongoDB入門 4回目(ドットインストール)

By   2014年3月22日

MongoDBの4回目です。

今日はドットインストールの

#10 索引を使ってみよう

#11 updateを使ってみよう

#12 multiを使ってみよう

#13 upsert、removeを使ってみよう

#14 mongodump、mongorestoreを使おう

を視聴しました。

前回のはこちら

【感想・補足】

特に躓くこともなく、最後まで試せました。

インデックス・javascriptを書いた外部ファイルの読み込み・バックアップはあまり問題おきなさそうですが、db.users.update は要注意ですね。

mongoDBではカラムが固定されていないので、$set コマンドを忘れると
ほかのカラムを全部消してupdate してしまいます。ここは慣れが必要なところでしょう。

引数は、第1引数に検索条件、第2引数にアップデート内容、第3引数にオプションです。

注意が必要そうに思えたのはオプションとして入れる{multi:true}です。

db.users.update({team:”team-0″},{$inc:{score:10}},{multi:true})

デフォルトでは検索条件を満たすもの全てがupdateされるのではなく1つだけで、multi を true にすることで全て update されます。multi のデフォルトは false ですが、将来的にはデフォルトが true になるかもしれません。

http://api.mongodb.org/python/2.1.1/api/pymongo/collection.html

multi (optional): update all documents that match spec, rather than just the first matching document. The default value for multi is currently False, but this might eventually change to True. It is recommended that you specify this argument explicitly for all update operations in order to prepare your code for that change.

ということは、1つだけアップデートしたいときにも multi:false を入れておかないと、後で困るかもしれないということですね。

データのバックアップは mongodump コマンドでできるようです。

mongo で起動する前に mongodump を一回やっておいてから
作業したほうがいいですね。

これで mongoDB が終わりました。次は Node.js を試してみようと思います。

 

動くものが作れるようになった次の段階

By   2014年3月21日

皆さんはプログラミングができるようになったらなにを創りたいと思っていましたか?

こんなものが創れるようになったらいい、などと考えたことはありますでしょうか?

私は「動くプログラム」を自分で初めて書いたのは高校のころで、自分用の英単語暗記用プログラムでした。問題がランダムで出題されて、正解・不正解をチェックしてくれるようなものです。

その後大学では、語学の先生に学習教材やサポート用のシステムを頼まれたり、その後は受注開発の仕事をするようになったので、考えてみると「自分で創りたくて創った」というものはほとんどないんですよね。

IDEA×IDEAで紹介されていたのですが、主要企業はどのくらいの速さでお金を稼いでいるかをビジュアライズした

https://www.worldpayzinc.com/tech-wealth?hn

のようなものを見ると、少し羨ましく感じます。こういったものは誰かから頼まれてお金をもらって作ったのではなく、自分で創りたくて創ったのでしょうからね。

ところで、プログラミングで科学を学ぶ小中学生向け教室

http://www.atpress.ne.jp/view/44431

という記事を見つけました。小中学生向けプログラミング教室ですと、定番はゲーム作りになると思うのですが、こちらは「科学」をテーマに何か創造するそうです。

プログラムの作れるものは無限ですので、ゲームを創っておしまいにしてしまうのは確かにもったいないですね。

子供向けのプログラミング学習では、少し何か創れるようになったときの次の段階は必ずしも「大きなプログラム」「複雑なプログラム」が創れるようになることではなく、選択肢がありそうです。そういえば、scratch を使った本

でも「音楽」などへの応用例も入っていました。

「少し何か創れるようになったときの次の段階」としてどんなものがいいか、私も考えてみたいと思います。

 

遊びながらプログラミング「primo」

By   2014年3月20日

最近、娘と遊ぶときにはその遊びから得られることを意識しながら遊ぶことが増えてきました。例えば折り紙ですと「創造力」ですね。

意識しないと遊べないわけではないですが、フォーカスすることで少し行動が変わってきます。例えば折り紙でいえば、

今日は「折り方の本」を見せて折らせるのではなく自由にやらせてみよう

などと考えるようになりました。

ところで、最近プログラミングの要素が入ったおもちゃを見るようになりました。

例えば、primo

https://www.rakunew.com/items/63663

です。上のサイトのprimo紹介の動画の最後で女の子が「なんでそっちいくのよ~」というのが可愛いです。

primoは穴の開いた木のボードに、「前へ進む」「右を向く」「左を向く」などの命令を意味するパーツを順番に入れ、「スタート」ボタンを押すと、その通りに動きます。

これは面白いでしょうね(見ている親も)。

子どもは遊びの中でどんどん新しいことを身につけていきます。

娘が1歳半くらいだったと思うのですが、最初に使えるようになった言葉の一つに「もういっかい」があります。

私は娘に「もういっかい」と言われる度に何十回でも同じ遊びを繰り返しました。
(今は「パパつかれたよー」と簡単に言ってしまいますが・・)

「primo」は感覚的には「積み木」と「scratch」の間くらいでしょうか。
しっかり順次処理を身につけられますし、サブルーチンの概念まであります。

予約販売(2014年9月に発売)で、

49,290円 + 送料1,600円

ということで、ちょっとなかなか手がでないですが、気になります。

実はこちらは kickstarter で出資者が募集されていたプロジェクトでした。

https://www.kickstarter.com/projects/1039674461/primo-teaching-programming-logic-to-children-age-4
自分で組み立てるものだと 135ポンドでした。申し込んでおけばよかったと少し後悔しています。

将来はきっともう少し安いものもでてくるでしょうし、「こどもチャレンジ」の付録になったりするのかもしれませんね。

でも私は待てないかも・・・・

 

 

コンピュータを学習しておけばバラ色の人生

By   2014年3月19日

皆さんは「プログラミング」についてどのような印象を持っていますか?

プログラムを書くのは特別な人たちで、しかもプログラマという職業はなぜだか待遇がそれほどよくない

という人もいらっしゃいますでしょうか。もし、コンピュータが本当は好きなのに、こういった印象からコンピュータを専門にすることや、コンピュータの仕事を避ける人がいたとしたら、それはもったいないな、と感じることはよくあります。

ところで、2013年の1月に、Hadi PartoviとAli Partoviの兄弟がCode.orgという団体を立ち上げたそうです。

http://code.org/

この団体のミッションは

プログラミングとコンピュータ科学を、アメリカ人がこれらに対してこれまで持っていたイメージを変えて、大衆化すること

だそうです。techcrunch.com に記事がありました。

http://jp.techcrunch.com/2013/12/27/20131226code-org-2-weeks-and-600m-lines-of-code-later-20m-students-have-learned-an-hour-of-code/

2013年の12月には”Hour of Code“というプロジェクトがキャンペーンが開かれました。

これは

合衆国の教師たち全員に、児童生徒にコンピュータ科学とプログラミングを教える時間を1時間確保するよう、求める。全員だから、英語や歴史の先生も対象に含まれる。

というものだったそうです。日本で同じことをやったら、どのくらいの先生・生徒がついてこれるのかな?と考えてしまいますが、

参加者総数は2000万以上で、83%がアメリカからの参加だった。74%がK-12レベルの生徒たちで、51%が女子だったようだ。

ということです。すごいですね。

アメリカでは少しずつプログラミングに対してのイメージが変わりつつあるのかもしれませんね。オバマ大統領も「児童生徒学生はプログラミングの学習を全員必須とすべし」とコンピュータ科学教育週間(Computer Science Education Week)で演説しています。

また、code.org のこちらの資料

http://code.org/stats

を見ると、2020年には40万人のコンピュータサイエンスの学生に対して140万ものコンピュータの仕事があるという予測などが載っています。この資料をみると

「コンピュータを学習しておけばバラ色の人生?」

と思ってしまう人もいるかもしれませんね。

私はそこまで楽観視はしていませんが、それでも他の多くの仕事と比較すると、有望だと思っています。

日本におけるプログラミングやコンピュータのイメージも今後変わっていくかもしれないですね。

プログラミングの才能

By   2014年3月18日

マシュー・サイドさんの「非才」を読んでみました。

マシュー・サイドさんは英国のジャーナリストで、ジャーナリストになる前は卓球選手でオリンピックに2度出場経験があるそうです。また、オックスフォード大学を主席で卒業したということで、私のような一般人からみると、「もともと人間の出来が違う」と思ってしまいますね。

ただ、本を読むと、「才能」なんていうものはなく、「すべては努力」の結果ということだそうです。

例えばマラソンと言えば黒人が強いという印象がありますが、黒人すべてがマラソンに強いわけではなく、オリンピックなどでの活躍する選手をよくしらべると、

・遺伝子的な共通点は見つけられていない
・黒人でも活躍するのは地域が一部に偏っている
・その地域は高地で、学校まで10kmなどはざらにある

という事実があるそうです。

つまり、小さいころから高地で育ち、毎日往復20km走っていればオリンピック選手に育つ、ということですね。適切な練習を相当な時間やれば、才能に関わらず活躍できる、ということです。

本の中には具体的な事例がいくつも挙げられており、説得力があります。

すべてのスポーツ、それからすべての「才能」と呼ばれるものが、実は才能に関係なく100%努力の成果か、というとそうでもない気もしてしまいますが、いままで考えていたよりも「生まれつきの才能」というのは影響が大きくないのではないかと思いはじめました。
プログラミングについてはどうでしょう。「才能に関わらず適切な練習を相当な時間やれば活躍できる」かどうか。

私は今の、それからこれからしばらくの日本であれば、「才能に関わらず適切な練習を相当な時間やれば活躍できる」と思いますね。プログラミングができる人の活躍の場はそれなりにあるでしょう。

ところで、今の日本では、無理やり何かをやらなければいけない環境で育ち、それがもとで活躍できる人間になるということは少なそうです。

通学のために毎日往復20km走らなければいけなかったり、毎日プログラムを書かなければいけない、ということはないでしょう。

ですから、「活躍できる」ような人間になるには「好きになること」が必要なのでしょうね。「好きになって」それを「相当な時間」やって、そして「適切な練習」が揃うことがキーポイントでしょうか。

私もプログラミング教育に関わるときに、「好きになること」と「適切な練習であること」がキーだということは常に頭に置いておきたいです。

 

電子機器やプログラミング「で」学ぶ

By   2014年3月17日

ハフィントンポストに

「デジタルは夢を形にするツール」CANVAS 石戸奈々子さんに聞く、子供の想像力・創造力を育むプログラミング【Woman’s Story】

という記事が掲載されています。

記事の中に『プログラミングを学ぶ』ではなく、『プログラミングで学ぶ』という言葉があります。

皆さんは小学生のときになにか習い事をやっていましたか?

私の娘は今5歳ですが、英会話、ピアノ、公文の3つのおけいこ事です。

多すぎるかなと心配になることもあるのですが、本人が「行きたい」と言って始めたのと、どれもそれなりに楽しくやっているようなのでしばらく様子を見ています。

私自身はスイミングスクールに通っていました。私が小学生の時にまわりにいた友達は、習字やピアノ、学習塾などに通っていたと思います。私はスイミングスクールに通ってよかったと思っていますし、習字やそろばんも通えばそれなりにいいことあるのだろうなと思います。

それにしても、今はおけいこ事の候補はたくさんありますね。

現在もそのような状況なのに、近い将来、お稽古ごとの候補に「プログラミング」が加わってくるのかもしれません。

プログラミングが、問題解決(うまくいかないときに落ち着いて考える)や課題解決(目的に合わせてやるべきことをやる)の訓練になるということは昔から言われていたようですが、それ以外の要素として最近は「創造」や「共有」が近年注目されているようですね。

子供でも簡単に「創れる」し、「共有」できるようなアプリケーションやプログラミング環境が出てきています。

こういったものを経験しておけば、「創る」喜び、「協業」の楽しさ、などを学べるかもしれません。

それは例えば積み木やお絵かきでもできるもので、コンピュータやネットワークをつかわなければダメなことはないのですが、世界中の人に公開し、世界中の人と協業できるというのはコンピュータならではのように思えます。「それができる時代」だということを体験しておくのはいいことだと思いました。

皆さんはどうですか?

自分が小学校のときに、プログラミング「で」何かを創ってみたり、協業したりする機会があったらやってみたかったと思いますか?

まだ若い皆さんは親になったときに子どもにプログラミング「で」そういう経験させたいと思いますか?

私自身の話をすると・・・

最近、娘が「おおきなケータイ(iPadのこと)であそびたい」といえば、許可することが増えました。遊ばせるアプリケーションについては選ぶようにしています。

今は「ロイロノート」で動画作品を創ったりしています。

例えば、

は娘の作品です。ロイロノートは「キッズクリエイティブ研究所」

http://www.canvas.ws/kenkyujo/meiji/

でのプログラムでたまたまやっていまして、楽しそうだったので、私のiPADに入れて、使い方を娘に教えました。

作品については、創るときには口出しせず、出来上がったものについて、褒めたあとにアドバイスが欲しいか聞くようにしています。まだ今はアドバイスよりもいろいろ創りたいようです。

こういうのをみていると、数年後娘に「プログラミング習いたい」と言われたら、喜んで行かせてしまいそうです。

時代がちょうどそういうタイミングのようですし、私自身も、こういった電子機器やプログラミング「で」学ぶ体験を子供たちに提供する活動に関わっていきたいと思っています。

 

MongoDB入門 3回目(ドットインストール)

By   2014年3月16日

MongoDBの3回目です。

今日はドットインストールの

#06 JavaScriptでデータをつくろう
http://dotinstall.com/lessons/basic_mongodb_v2/27006

#07 条件付きfindを使ってみよう
http://dotinstall.com/lessons/basic_mongodb_v2/27007

#08 $and、$or、distinctを使おう
http://dotinstall.com/lessons/basic_mongodb_v2/27008

#09 findOne、skip、limit、sortを使おう
http://dotinstall.com/lessons/basic_mongodb_v2/27009

を視聴しました。

【感想】
前回

> mongoDB では javascript が使えるということで、ドットインストールでは変数に数字を格納したりする例がありました。なんとなく便利そうというところまではわかったのですが、実際にどう使ってくのかはイメージできませんでした。今後に出てくるのだと思いますので楽しみです。

と書いたのですが、いきなり

> #06 JavaScriptでデータをつくろう

でその答えの一つが実感できてしまいました。ループが使えるのですね。
これを利用すると簡単に大量のデータをコマンドラインから登録したりできそうです。
テキストエディタかなにかでループや分岐を含むINSERTを作っておき、コピーペースト
すると実行するなんていう使いかたもできるようですね。これは効率がいいですね。

ただ、ミスがあったときに、どの文字でエラーになったかは出るのですが、行数の情報がないので、< や ; などでエラーが出ている場合にさがしづらいのが少し気になりました。

findで使う関数 $ne や $gt など、あえて <> や > など不等号記号を使わないのはhtmlタグの記号と混乱しないようにという理由なのでしょうか。最初見たときには何だろうと思いましたが一度知っておけば問題ないですね。ドットインストールに感謝です。

findOne で1件だけJSON形式で取得できるなどという部分は cakePHP のfind を思い出しました。こういった部分までDBでやってくれると、アプリケーションは速くなるのかもしれないですね。

だいぶ mongoDB が面白くなってきました。あとは、カラムが自由というのをどんなケースで活かせるか、というのが私の中でモヤモヤしている部分です。

「情報工学系の学部・学科出身」のITエンジニア

By   2014年3月15日

皆さんの周りに「情報工学系の学部・学科出身」のITエンジニアの方はどのくらいいますか?

実は私、「電気電子情報工学科」卒です(エラそうですみません)。

楽天の三木谷会長の話で、

> IT(情報技術)産業の技術者の供給源である情報工学や数学などの修了者は、日本では年に約2万3千人。米国では約25万人、中国では約100万人といわれる。

というものがありました。これはどういうことを意味しているのでしょうか。

実際のITエンジニアの数はこの「修了者」と比例していませんので、日本は、米国や中国と比較するとITエンジニアの中の「情報工学や数学などの修了者」の割合が低いということになるのだと思います。

私自身は「電気電子情報工学科」卒のため(再びエラそうですみません)、大学からの知り合いでIT関係の仕事をやっている人間は情報工学系の学部・学科出身なわけですが、それを除くと確かに情報工学系の学部・学科出身のエンジニアの割合は高くないですね。

私自身は「情報工学系の学部・学科」でよかったと思っています。大学の、特に大学院時代の経験は今に活かされています。どうせ4年間かそれ以上の期間を過ごすなら、情報工学系の学部・学科はいい選択だと思うのですが、何故そこまで人気がでないのでしょうね。

私が思いつく理由は

・「ITエンジニア」の印象が(待遇も)海外に比べて日本ではよくない。だから「情報工学系の学部・学科」を希望する学生も多くない。

・多くの情報工学系の学部・学科での教育がそれほど他の学部・学科と比較して変わらないので惹かれない。

といったあたりでしょうか。

高校だと

http://code.ac.jp/

のようなものも出てきたようですが、大学でも受験生がワクワクするようなカリキュラムの情報工学系の学部・学科が増えて、そこを卒業したITエンジニアが活躍し、「ITエンジニア」のイメージが上がり(待遇も)、さらに学ぶ人が増える、ようなサイクルができればいいですね。
私はまずは子供向けプログラミング教室などを通して、コンピュータの仕事でやっていくことの楽しさを一人でも多くの人に伝えることで「ITエンジニア」のイメージの向上に貢献できればと思います。

クラウドファンディングを利用して夢を現実のものにする

By   2014年3月14日

昨年2013年6月の話ですが、官邸より「世界最先端IT国家創造宣言」というものが閣議決定されました。

http://www.kantei.go.jp/jp/singi/it2/kettei/pdf/20130614/siryou1.pdf

この中でまず私が注目したのは「プログラミング教育」についてですが、それはまた別の機会に記事にするとして、もう一つ「クラウドファンディング」という言葉も気になりました。

> 既存のベンチャー支援策のみならず、クラウドファンディングといった IT を活用した新しい資金調達手法の利用促進を含めたリスクマネー供給の仲介機能を強化するとともに、コンテストによる将来性のある人材・事業・アイデア等の発掘・支援、必要な知識やデータの提供、専門家による支援を促進するとともに、能力のある者が活躍できる環境の整備、能力のある者や事業者間の連携を加速させる取組を推進する。

ということだそうです。

漢字が多くて読みづらいですが、クラウドファンディングのところだけ抜き出すと、
「リスクマネー供給の仲介機能を強化する」
ための
「新しい資金調達手法」
として
「クラウドファンディング」
があり、それを政府が「利用促進」していくということですね。

これを受けて、例えば金融庁からも「投資型クラウドファンディングの制度化について」

http://www.fsa.go.jp/singi/singi_kinyu/risk_money/siryou/20131129/03.pdf

といった資料も出ているようでした。

「制度化」などの形で国が参加することについては賛否分かれるところかもしれませんが、こういったものが注目されるのはいいことですね。話題になればプロジェクトを作る側も支援する側も増えていきそうです。

私はクラウドファンドというと今まで国内では readyfor

https://readyfor.jp/

のような何かを支援するものしかしらず、国外のものという印象が強かったのですが、campfire

http://camp-fire.jp/category/game

などではゲームのプロジェクトなどのファンディングもあり、ちゃんと成立しているようです。

こういったものを利用すれば、資金が多くなくとも自分の夢が実現できるかもしれません。ほんの数年前に比べて、とくにコンピュータを利用した分野では「夢」を実現させるというときにだいぶ「運」に左右される部分が小さくなっているのを感じますね。

 

MongoDB入門 2回目(ドットインストール)

By   2014年3月13日

今日はドットインストールの
#03 データベースを操作してみよう

#04 コレクションを操作してみよう

#05 ドキュメントを操作してみよう

を視聴しました。

(前回はこちらです)

 

【感想】
コマンドラインからDBを操作すること自体、普段あまりやらなかったので非常に軽快に感じましたね。勘違いやタイプミスによる事故が怖い気もしましたが。

use データベース名;

で存在しないデータベース名を指定すると、CREATE DATABASEになるというのはユニークに感じました。「タイプミスしたらどうするのだろう?」と思ったのですが、実際に作成されるタイミングはコレクション(テーブル)が作られたりして中身になにか操作したときだそうです。

実際にコレクションを作ってみて、

db.コレクション名.insert(・・・);

でデータを入れてみると、スキーマレスというのがよくイメージできました。視聴しながら手を動かせるのがドットインストールのいいところですね。もちろん使いこなせるようになるためにはもっといろいろ必要ですが、「短時間でどんなものか知っておく」という話でしたら最適ですね。

mongoDB では javascript が使えるということで、ドットインストールでは変数に数字を格納したりする例がありました。なんとなく便利そうというところまではわかったのですが、実際にどう使ってくのかはイメージできませんでした。今後に出てくるのだと思いますので楽しみです。

【補足】

当たり前と言われてしまいそうですが、大文字小文字は区別されます。
例えば

db.dropdatabase

はNGで

db.drtopDatabase

としなければいけません。キャメルケースというものですね。

次回は #06以降を見てみます。

「高くなくても満足できる」時代の仕事選び

By   2014年3月12日

「ビッグマック指数」と言うのをご存知でしょうか?

http://ecodb.net/ranking/bigmac_index.html

に載っていますが、

> ビッグマック指数(Big Mac Index)は、購買力平価説をもとに為替相場を推理する際の指標とされている。イギリス経済専門誌「エコノミスト」によって考案された。

ということです。対象国は56か国ですね。

日本を探すと・・・・え?56か国中42位??

少し驚きですね。ビッグマックの価格は日本では店によって違い、310円~390円だそうです。掲載されている表は310円になっているのと、1ドル104.25円で計算されているところがちょっと微妙ですね。

値段を390円・1ドル103.5円で計算しなおしてみると30位くらいでしょうか。

「日本は物価が高い」というのはあまり聞かなくなりましたが、このような結果をみると確かに日本は物価が高い国ではなくなったのかなと思います。私の弟はシンガポールに仕事でよく行っているのですが、物価は日本よりも安いものもあれば、高いものもあるそうです。

皆さんはビッグマックは好きですか?私は実はけっこう好きなんです。

iPhone とPCをつなぐケーブル(巻き取り式)も100円ショップで買ったものですし、チェーン店のラーメン屋さんのラーメンもけっこうおいしいです。確実に「高いお金を支払わなくても満足できる」ということが増えてきている気がしますね。

もちろんリーマンショックなどの影響もあるでしょうが、最近「お金持ち」になるための本が減っているように思えます。この「高いお金を支払わなくても満足できるモノやサービスが増えている」という人は増えているのかもしれないですね。

ますます今後は「給料」よりも「自分の好きなコト」をまず先に考えて仕事を選ぶ時代になるような気がしています。

「好きなコト」によっては仕事がなかったり難しいものもあるかもしれませんが、「コンピュータ」はその点恵まれていますね。10年後、30年後、50年後を考えたときに、コンピュータの役割は減っているとは思えません。なにかしら仕事はあるでしょう。

コンピュータを触っていて楽しいと思えるならコンピュータの仕事をやればいいです。
創造力やセンスがあればお金持ちになるかもしれませんし、そうでなくてもやればやっただけの収入が見込めます。