あなたがプログラムを理解できない10の理由:第1回
プログラムを理解したくてもできない──そんな悩みにH2O Spaceの谷口氏が答える。
「意味がわかりません」からの脱却
「プログラムができるようになりたい」「仕事でプログラムを理解しないといけないけれど、全く理解することができない」──そんな悩みを持っている方も少なくないだろう。
筆者も今でこそ「プログラマ」という肩書きを担いでいるが、プログラムを勉強しようと思い立ったのは高校生の頃。その後、理解できないままに苦悩し続け、ようやくプログラムらしいものが書けるようになったのは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);
前後の記号を「"(ダブルクオーテーション)」に変えてみた。これでもプログラムは正常に動作する。つまり、この前後の記号は「どちらでも良い」のである。厳密には使い分けるケースもあるのだが、プログラマでも好みに応じて使っている場合も多いのだ。
しかし、プログラムが理解できない段階だと、ここが気になって仕方がない。なぜ、どちらでも良いのか。どちらを使うべきなのか……そんなことばかり気になってしまうのだ。しかし、どんなに考えても、出てくる結論はやはり「どちらでも良い」のである。では、なぜ、きちんとルールが決まっていないのだろうか。
現実の世界に目を向けてみよう。例えば、あなたは自分を指す時、なんと呼ぶだろうか?「私」かもしれないし、「俺」かもしれない。「僕」や「自分」と呼ぶ方もいるだろう。それらの呼び方はどう違うのだろうか?厳密には、違いがあるかも知れないが、少なくとも現代においては大した意味の違いはない。
みんな、好きなように選んで使っているし、人によっては場所や相手によって変えることもあるだろう。
プログラムは「プログラミング言語」や「言語」と呼ばれる。つまり、日本語や英語などの「言語」が人同士でコミュニケーションをするためのツールなのと同じように、プログラミング言語はコンピュータと「会話」をするためのツールなのだ。
日本語も長い年月使い続けるうちに、複雑な進化を遂げて同じような意味合いの言葉が生まれてしまったり、ルールがあいまいになったりもする。同じように、プログラミング言語も、便利さを追求したり、進化をする過程で「いい加減」な部分ができてきてしまったのである。
プログラムを勉強する時、シングルクオーテーションとダブルクオーテーションの違いに悩んだり、調べたりするのは、日本語で「俺」と「僕」の違いにとまどって会話をすることができないというのと同じようなものだ。
そんな違いを調べることよりも、まずはつたない言葉で会話をし、コミュニケーション(=プログラミング)を楽しむことの方が重要なのである。
- 特集: あなたがプログラムを理解できない10の理由 (5件)
- ホワイトペーパー
- 企画特集
- 話題のタグ
SQLite対応アプリのデータベースファイルを閲覧する
グーグル、「Google Buzz」を発表--Gmailのソーシャル機能を強化
「H.264」ストリーミングのロイヤリティ無料期間が延長
マイクロソフト、「Office 2010」のRC版をリリース
通販サイトのアクセス集中からの危機を救う
レガシーアプリケーションの稼働どうしてる?
利用者の理想を追求した最新レンタルサーバ
御社はまだフリーの転送サービスですか?
Xbox Live インディーズゲーム開発の軌跡
仮想化をダメにするストレージの実態
事例 VMwareでデータセンターをクラウド化
経営統合後の事業損益構造の見える化を実現
身近な業務をCRMが変革!
新しい視点のレンタルサーバが誕生!
仮想環境のバックアップは難しいのか
DBのパフォーマンスに困ってませんか?
アプリケーション仮想化 3つの課題
アンケートから見るセキュリティ対策の実態