あなたがプログラムを理解できない10の理由:第1回

たにぐちまこと(H2O Space.)
2008-05-07 16:00:00
  • このエントリーをはてなブックマークに追加

「意味がわかりません」からの脱却

 「プログラムができるようになりたい」「仕事でプログラムを理解しないといけないけれど、全く理解することができない」──そんな悩みを持っている方も少なくないだろう。

 筆者も今でこそ「プログラマ」という肩書きを担いでいるが、プログラムを勉強しようと思い立ったのは高校生の頃。その後、理解できないままに苦悩し続け、ようやくプログラムらしいものが書けるようになったのは3年以上後のことだ。

 では、プログラムは難しいものなのかといえば、そうとも言えない。今になって分かることだが、プログラムは無駄な恐怖心を克服し、ちょっとだけ考え方を変えるだけでぐっと身近な存在になるのである。

 そこで、本連載では私たちがプログラムを理解できない理由を10個あげながら、どのようにプログラムと接したらよいのかを考えてみたい。

理由1:細かいことにこだわる

 プログラムを学習しようとして、最初に壁になるのは「あいまいさ」や「いい加減さ」である。プログラムの世界は非常に細かく決められているようで、実は結構いい加減な部分もある。

 例えば、次のようなプログラムを見てみよう。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<title>builder:サンプル01</title>
</head>
<body>
<script type="text/javascript">
var message = 'こんにちは';
document.write(message);
</script>
</body>

 JavaScriptを使って画面上に「こんにちは」と表示するスクリプトだ。

 この時、「こんにちは」の前後にある記号は「'(シングルクオーテーション)」である。では、次のようにしてみよう。

var message = "こんにちは";
document.write(message);

 前後の記号を「"(ダブルクオーテーション)」に変えてみた。これでもプログラムは正常に動作する。つまり、この前後の記号は「どちらでも良い」のである。厳密には使い分けるケースもあるのだが、プログラマでも好みに応じて使っている場合も多いのだ。

 しかし、プログラムが理解できない段階だと、ここが気になって仕方がない。なぜ、どちらでも良いのか。どちらを使うべきなのか……そんなことばかり気になってしまうのだ。しかし、どんなに考えても、出てくる結論はやはり「どちらでも良い」のである。では、なぜ、きちんとルールが決まっていないのだろうか。

 現実の世界に目を向けてみよう。例えば、あなたは自分を指す時、なんと呼ぶだろうか?「私」かもしれないし、「俺」かもしれない。「僕」や「自分」と呼ぶ方もいるだろう。それらの呼び方はどう違うのだろうか?厳密には、違いがあるかも知れないが、少なくとも現代においては大した意味の違いはない。

 みんな、好きなように選んで使っているし、人によっては場所や相手によって変えることもあるだろう。

 プログラムは「プログラミング言語」や「言語」と呼ばれる。つまり、日本語や英語などの「言語」が人同士でコミュニケーションをするためのツールなのと同じように、プログラミング言語はコンピュータと「会話」をするためのツールなのだ。

 日本語も長い年月使い続けるうちに、複雑な進化を遂げて同じような意味合いの言葉が生まれてしまったり、ルールがあいまいになったりもする。同じように、プログラミング言語も、便利さを追求したり、進化をする過程で「いい加減」な部分ができてきてしまったのである。

 プログラムを勉強する時、シングルクオーテーションとダブルクオーテーションの違いに悩んだり、調べたりするのは、日本語で「俺」と「僕」の違いにとまどって会話をすることができないというのと同じようなものだ。

 そんな違いを調べることよりも、まずはつたない言葉で会話をし、コミュニケーション(=プログラミング)を楽しむことの方が重要なのである。

  • コメント(2件)
#1 hosi   2012-05-24 17:12:40
プログラムのサンプルソースコードがエスケープされていないか、タグが不適切でソースが表示出来ていません。
動的に生成しているのであればXSSの危険性もあると思われるので、一度確認したほうがいいかもしれません。
#2 builder編集部   2012-05-25 18:49:19
hosi様

builder編集部です。いつもご愛読くださり、ありがとうございます。
ご指摘の件、修正いたしました。ご迷惑をおかけしましたこと、
お詫び申し上げます。
  • 新着記事
  • 特集
  • ブログ