スポンサーリンク

       

2014年03月11日

【文系必読?】『教養としてのプログラミング講座』清水 亮


教養としてのプログラミング講座 (中公新書ラクレ)
教養としてのプログラミング講座 (中公新書ラクレ)


【本の概要】

◆今日ご紹介するのは、先日の「未読本・気になる本」の記事でも、意外に(?)人気だった1冊。

「ガチな文系人間」である私には、ちょっと敷居が高いかとも思ったのですが、ムスコのはまっている「MOONBlock」が取り上げられていると知り、いそいそと買って参りましたw

アマゾンの内容紹介から。
もの言わぬ機械とコミュニケーションする手段「プログラミング」。コンピュータが隆盛を極めた今、もはやそれは必須の「教養」だ。この本は、一冊だけで優れたプログラマーの思考を習得することを目指す。ジョブズやゲイツ、現代の成功者はどんな世界を見ているのか?21世紀に生き残るための「必修科目」。

「プログラマー的思考法」を身に付けたい方ならマストです!





the JavaScript Code / Dmitry Baranovskiy


【ポイント】

■1.プログラミングとは何か?

本書の「はじめに」では、プログラミングについて、以下の通り説明されてます。
 プログラミングとは、一言でいえば「自分以外のものを、思い通りに動かす方法」のこと。適切にプログラミングしたものは、たとえば作者が消滅したとしても、作者の意図を反映し、プログラミングした通りに動くことになります。
 これが企画であれば、企画者の意図通りにユーザの気持ちを動かそうとするのも「プログラミング」であり、組織であれば、組織全体をリーダーの意図通りに動かそうとするのも「プログラミング」であるといえます。
 つまり、こうした仕事をしている人たちは、本人が意図していようがいまいが、全て「プログラマー」なのです。
なるほど、そういう意味では、私のような「一般ビジネスパーソン」も、ある意味「プログラマー」なのかな、と。

俗に言う「プログラミング言語」が書けないと、プログラマーではないと思っていましたが、広い意味では必ずしもそうではないようです。


■2.プログラミングを学ぷと身に付くもの

◆著者の清水さんは、全くの初心者に「プログラムを学ぶことの効能」を以下のように説明するのだそう。
・論理的なものごとの考え方
・情報を適切に分類し、活用する方法
・最小の手間で正確な仕事をこなすための思考法
・知らない人と知恵を共有する方法
まさに、ビジネスパーソンに必須の能力ばかりです罠。

特に最初の3つは、俗に言う「ロジカルシンキング」にも通じるものかと。

確かにプログラマーの人は、ロジカルなイメージがありますが、それも当然なのかもしれません。


■3.織田信長もプログラマーだった(広い意味でw)

◆本書では「指摘されないとそうとは思えないような」プログラミング事例がいくつか紹介されています。

中でも興味深かったのが、織田信長が武田騎馬軍団を打ち破った「長篠の戦い」
この時代、鉄砲を撃つにはまず筒を掃除し、火薬と弾薬を詰め、狙いを定めて撃つ、という過程が必要で、1発撃った後、2発目を撃つまでの間にかなりの時間を要することになります。そのため、速力に勝る騎馬隊に、鉄砲隊が蹂躙されてしまうこともしばしば。
 そこで信長は鉄砲隊を3列に分け、1列目が発砲するとすぐさま後ろに下がり、2列目はいつでも発砲できる態勢を維持、という戦術を編み出したと言われています。実は、これはプログラマーが「バッファリング」と呼ぶ技術。コンピュータでよく使われているのはダブルバッファリングという方式ですが、信長の場合、3列ありますからトリプルバッファリングとでも呼べばよいでしょうか。
信長さんパネーっすw

いや、実際「弾を詰めてる間にやられてしまう」という問題の解決として合理的だと思いますし、なるほど「プログラマー的思考法」と言われたら納得であります。


■4.お使いの指示をプログラミング的に書き直すと

◆たとえば、「お母さんが娘の杏花ちゃんにお使いを頼んだ」とします。
「杏花ちやん。1000円を渡すから、スーパーマーケットに行って長ネギを2本買ってきて。もし安かったらバナナもね。そうそう、それと、帰りにコンビニに寄って、新しい週刊アスキーがでてたら買ってきて。ただし、途中で何か変なことがあったり、怖いことがあったら、お使いのことは忘れてすぐにお家へ戻ってきなさい」
ありがちなお使いのお願いではありますが、蓋を開けたらあら大変。

買い物袋の中には「300円もする高いバナナ」と「うちにある週刊アスキー」が入っていたのでした。

しかしこれは、お母さんのお願いの仕方が曖昧だったから。

プログラミングの鉄則に従い、「インデント(適切な場所での空白と改行)」や「命令形」にすると、このようになります。
杏花ちゃん へ
  1000円受け取れ
  スーパーマーケットに行け
    長ネギを2本買え
    もしバナナが1房200円未満なら
      バナナを買え
  帰りにコンビニに行け
    週刊アスキーの4/15号がでてたら
      それを買え
ただし、途中で何か変なことがあったり、怖いことがあったら
  すぐ家へ帰れ
なるほどこれなら、お母さんの意図がしっかり伝わりますねw

ちなみに、昨日我が家でも、夕飯のお好み焼きのお使いを私が頼まれたのですが、渡されたメモが曖昧で、「ばら肉って何グラムの?」「お好み焼きセットって2人前と4人前があるけど?」と、その場で聞いたり売り場から電話したりしたばかりでした。

……ヨメにも本書を読んでもらわねば。


■5.ビジュアルプログラミング言語「MOONBlock」

◆本書の第4章では、実際にコンピュータを使ったプログラミングが指南されています。

使用するのは、冒頭でもご紹介した「MOONBlock」



本書では、主題に沿った「プログラミングを理解する」ようなお話がメインになっていて、それはそれでいいんですが、この言語の本当の特長は、ゲーム作りにあるかと。



この動画を最初にムスコに見せた時の食いつきっぷりと言ったら、スゴかったですw


◆そしてこちらは、ムスコが作った一番の大作(コードが長いと言う意味で)。



一応、戦車に剣(?)が当たると爆発して、音が鳴るようになっています。

戦車から発射される弾丸が勇者(自分)に当たるとゲームオーバーで、弾をよけつつ、手前から上がってくる緑色の物体(モンスター?)を捕まえるとポイントになる仕様。

最初は全部前から向かってきて、片っ端から攻撃するようムスコは作ったのですが、父の威厳で(?)モンスターの向きを逆にして、よけるのではなく捕まえるとポイントになるようにしました。

それと、敵の弾丸が当たらないといつまでたっても終わらないので、カウントダウンタイマーを設置し、1分立ったら「ゲームクリア」にして、強制的に止めさせていますw




【所感などなど】

◆昨夜はヨメとムスメが出かけていていなかったので、ファミレスでムスコと2人で食事していました。

ふと思い出したように本書を取り出して、第4章のムーンブロックが掲載されているページを見せると、驚いてフォークを落とすムスコw(実話w)

子:「えー、パパ、何でその本買ったの?」

父:「ふっふっふ、●●君(ムスコ)に負けないようになるためさ」

子:「ゲームがいっぱい載ってるの?」

父:「いや、ゲームじゃないけど、もっと大事なことが沢山書いてあるんだ」

子:「パ、パパなんて、1つもゲーム作ってないじゃない!僕なんかもう10個以上つくったんだからね!(震え声)」

意地になるムスコ、かわゆすww←親バカ


◆ムスコも最初は本に載っている通りにブロックを組み立てて、ゲームを作っていたのですが、今ではどんどん自分なりに改造するようになりました。

特に数字設定(スピードや量など)は、変更すると違いがすぐ分かるのと、動作が確実なので、定番ネタに。

逆に、新たにパペットを追加したり、動きを加えると、動かなくなったりするので、そこで悩んでたりしています。

ホントは私が教えてあげられればいいんですが、ぶっちゃけ「私に聞いてもムダだと分かった」ので、ムスコも頼りにしなくなりましたw

こないだは、ネタフルのコグレさんに教えてもらったこのサイトをムスコに見せたら大喜びw



……パペットの中に「ウ●コ」があって、それが飛び交うゲームを作られたのにはウンザリしましたがw


◆閑話休題。

本書は「縦書き右開き」ということからもお分かりのように、俗に言う「コード」の類はほとんどありません。

また、ムスコにすら劣る文系脳の私でも、その内容は十分理解できるくらい、極めて分かりやすく書かれています。

そもそも、私たちの日常生活には「プログラム」が溢れていて、たとえば「子育て」ですら「プログラム」なのだと思うと、遠い世界のモノの気でいたプログラムが、身近に感じられました。

もっとも、その「子育てプログラム」にバグがないかが分かるのは、まだまだ先なのかもしれませんがw


文系だからこそ読みたい1冊!

教養としてのプログラミング講座 (中公新書ラクレ)
教養としてのプログラミング講座 (中公新書ラクレ)
Chapter1 プログラミングはあなたの隣に
Chapter 2 コンピュータ要らずのプログラミング入門―基本ルールを知ろう
Chapter 3 今すぐ役立つプログラミングテクニック―プログラマーの思考法を知ろう
Chapter 4 簡単コンピュータプログラミング講座
Chapter 5 プログラミングの未来


【関連記事】

【オススメ】「ニコニコ動画が未来を作る」佐々木俊尚(2009年12月09日)

【スゴ本】『ソーシャルネイティブの時代 ネットが生み出した新しい日本人』遠藤 諭(2011年02月13日)

意外と知られていない『就職しない生き方』のテクニック10選(2010年12月15日)

【夏野節】「グーグルに依存し、アマゾンを真似るバカ企業」夏野 剛(2009年08月03日)

【ひろゆき節】「僕が2ちゃんねるを捨てた理由」ひろゆき(西村博之)(2009年05月30日)


【編集後記】

◆MOONBlockでゲームを作るなら「マスト」な1冊がコレ。

MOONBlockでつくるゲームプログラミング: エンちゃんと遊ぼう!
MOONBlockでつくるゲームプログラミング: エンちゃんと遊ぼう!

思いっきりフリガナが振られてますし、6歳児でも問題なかったです!


人気blogランキングご声援ありがとうございました!

この記事のカテゴリー:「ITスキル」へ

この記事のカテゴリー:「ビジネススキル」へ

「マインドマップ的読書感想文」のトップへ
Posted by smoothfoxxx at 08:00
TrackBack(0)ITスキルこのエントリーを含むはてなブックマーク

スポンサーリンク




               

この記事へのトラックバックURL


●スパム防止のため、個別記事へのリンクのないトラックバックは受け付けておりません。
●トラックバックは承認後反映されます。