はじめに ~ プログラムが魔法でないとわかればプログラマになれる 1

はじめに

プログラム。プログラムが書けるとゲームやアプリが作れるらしい。誰でもやってみたいと思わせるのに十分な魅力を持っています。

ミュージシャンに憧れて楽器を触ってみた人は多くても、自分の弾きたい曲を弾けるようにまでなった人はそれほど多くないでしょう。同様に、プログラムも入門書を買って読んでみた人はいても、プログラムが書けて便利だと思えたり、作りたかったものが作れるようにまでなった人はそれほど多くないのではないかと思います。

多くの人は挫折します。

入門書を手にした時はあんなにワクワクしていたのに、たったの数ページでわからなくなり、才能がないと思い込んでしまいます。諦めきれずに違う本を買ってみても、数ページめくると途端に難しくなってしまい、ついに挫折するのです。

このような挫折体験は私自身、中学生の時に体験しており、非常に身近に話です。私は社会人になってからプログラムを覚えて、今、プログラマとして働いています。せっかく興味を持って入門書を手にするところまでチャレンジしたのに挫折してしまうのは勿体無いことです。なんとか挫折せずにプログラムを覚えられるように解説を書くことはできないものかと考えました。

挫折をするというのは、ゲームでいうところの敵が強すぎてクリアを諦めてしまう状態です。つまりレベルデザインが悪いのです。ですが、適切なレベルで解説するのも難しいものです。読者のレベルがまちまちだからです。

とはいえ、極限までイージーモードな入門書は少ないのではないでしょうか。これは、本に目的があるからです。「読み終わるとこれができるようになります」と謳う場合、できるようになる「これ」があまりにも低レベルだと読む価値を感じません。書籍を手にして貰えないのです。

「1週間でマスターするエレキギター入門」が超絶技巧であるように、プログラムもたくさんの知識を必要とするのは事実ですから、入門書のゴールが実用的なものである設定が既にハードモードではないかと思うのです。

そこで、本書では読み終えたときのゴールを「プログラムが魔法ではなく文字として読める」に設定することにしました。なぜかというと、四方八方がわからないという状態を回避できれば、少なくとも挫折しにくくなると思うからです。ギターも弦を押さえるのが辛い、を乗り越えれば楽しくなってきます。最初の第一歩が進められるように解説できればと思います。

本書では入門書にありがちな環境設定(プログラムを動かすために必要なアプリのインストール方法や設定方法などの説明)について、あまり触れません。テニスをしたくてテニス部に入部したのに、まずは球拾いと腕立て伏せが重要だ、と言われるようなものだからです。プログラムを学ぼうとした人には真っ先にプログラムの話をするのが良いのです。

プログラムは英語なのか

例えば、ウェブブラウザ(IE、Chrome、Firefoxなどのウェブを閲覧するためのアプリの総称)でインターネットにあるサイトを閲覧していたら次のようなものが出現したとします。

「こんにちは」と表示されています。この「こんにちは」は何なのでしょうか。これこそが「『こんにちは』と表示しなさい」という「プログラム」が動いた結果なのです。

では「『こんにちは』と表示しなさい」というプログラムとは一体どのようなものなのでしょうか。実際のプログラムを見てみましょう。

alert("こんにちは");

この19文字がブラウザに「こんにちは」と表示させました。たったの19文字だが、この19文字はとても興味深いものです。

表示「こんにちは」

このようにしても良さそうなものですが、これだと動きません。なぜか。それは、ブラウザで文字を出したければ、 alert という文字を使え、と決まっているからです。

alert というのは英語で「警告する」というような意味の単語です。ならばと、同じような「警告する」という意味の英単語 warn を使ってもプログラムは動きません。

warn("こんにちは");

日本語はダメで、英語でなければならない、というのはなんとなく理解できると思います。世界中の人が日本語を使っているとは思わないからです。ですが、同じような意味の英単語でも使えたり使えなかったりするのは不思議に思うかもしれません。

この疑問に素直に答えると alert という英単語はプログラムに存在するが、 warn は存在しないから、となります。では、なぜ warn は存在しないのか。それはプログラムが英語ではないからです。実は alert も本当は alert でなく taro でも良く、実はなんでも良かったのです。ただ、 taro とか jiro とかばかりだと、何のことかさっぱりわからなくなるので、それなりに意味が近そうな、連想できそうなものにしようと考え、ブラウザに文字を表示するのは alert にしようと決めたのです。

プログラムは一見英語のように見えますが、実際には、英単語を都合よく拝借しているだけの、似て非なるものです。もっといえば、全く異なるものなのです。だから、英語のことは忘れて構いませんし、英語ができなくてもプログラマになることができます。

alert("こんにちは");

この19文字もなんとなく意味がわかってきたのではないでしょうか。ですが、まだ気が抜けません。まだ知らない謎の記号が含まれています。 ( ) " ; の存在です。

>>続きを読む
>>全記事を見る

<最新話にご興味があればフォローお願いします>

この記事が気に入ったらサポートをしてみませんか?