あなたがプログラムを理解できない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件)
- ホワイトペーパー
- 企画特集
セキュリティ&ユーザ事例【SIer Club】
御社のログ活用しませんか!?
インターネット上の悪意を未然に防ぐには?
仮想環境を実現するソリューション特集
パンデミック対策特集
ストレージメディア特設サイト開設
集積度も性能も、業界最高水準のブレードPC
そのストレージで仮想化に対応できますか?
◆エン・ジャパン厳選求人☆毎週更新◆
中小企業のセキュリティリスクとは?
ロリポップ!がリニューアル
ESBでIT投資の無駄を劇的に解消する
今注目の「サジェスト検索」−デモ掲載中
【徹底対談】運用管理ツールの賢い使い方
SOA、BPM、SaaS −今、企業に必要なこと
- サーバー監視・運用のコストを削減するには
- サービス・ドリヴン・データセンター
- エンタープライズにおけるSUSEの強み
- ■ストレージ容量50%削減保証■
- 話題のタグ
Windows 7はLinuxへの切替が簡単:注目の仮想ディスクフォーマット「VHD」
iPhone OS 3.0で変わった「絵文字」
OSSのクラウド基盤「Eucalyptus」を使う(4)--インストール〜ノード構築
俳優経験者が指南する「人前で上手く話すためのティップス10選」
「うるまでるびペイント」登場:絵は上手下手ではなく制作過程に楽しみが
待てば回路の日和あり--「iPhone 3GS」発売、しかし――