あなたがプログラムを理解できない10の理由:第2回
foobar……「鋼鉄の撃墜王」のことか?──と、教養が邪魔してプログラムの学習が進まないアナタに贈る連載です。
理数系の頭脳が必要だと思っている
プログラマは理数系の仕事。そんな「誤解」したイメージを持っている方がいるかもしれない。もちろん、あえて「文系」か「理系」かと分類するのであれば、理数系になるかもしれない。
しかし、本当に数学の知識が必要になってくるのは、ゲームのプログラムや科学技術計算をするような高度なプログラムが必要になった時だ。PHPやJavaScript、ActionScriptなどでちょっとしたWebのスクリプトを作りたいといった程度であれば、必ずしも数学の知識は必要ない。
それよりも大切なのは、正しい単語(ファンクションやパラメータ)を、正しい文法で並べてスクリプトを作る能力だ。つまりは、伝えたいことをコンピュータに正しく伝えて、会話をする能力といえるだろう。そういう意味では「文系」であるといってもよいかもしれない。というよりは、文系か理系かなどはあまり関係なく、ちょっとしたきっかけで、誰でも理解できるようになるはずなのだ。「自分は文系だから……」と恐れるのではなく、まずは親しんでみよう。
ただし、若干ではあるが理数系の「センス」も必要。
たとえば「1+2+3+……+10」という具合に、1から10までの合計を求めたい場合、単純に「1+2で3、3+3で6……」と順番に計算するよりも「10+1(=11)、9+2(=11)、8+3(=11)……」と、11のブロックが5個あることが発見できれば、11×5=55と瞬時に答えを求めることができる。
ある問題に対して、真正面から向き合うのではなく、発想を転換してみる。別のアプローチを模索してみることは、スクリプトを理解できるようになるための大きな一歩になる。
具体的な例を挙げよう。たとえば、次のようなスクリプトがある。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<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>サンプル01</title>
<style type="text/css">
#tblSample {
border-collapse: collapse;
border: 1px solid #999;
}
#tblSample td {
border: 1px solid #999;
padding: 5px;
}
</style>
</head>
<body>
<table id="tblSample">
<script type="text/javascript">
var style;
for (var row=1; row<=10; row=row+1) {
if (row % 2 == 1) {
style = ' style="background-color: #ccc"';
} else {
style = '';
}
document.write('<tr ' + style + '>');
document.write('<td>' + row + '行目</td>');
document.write('</tr>');
}
</script>
</table>
</body>
</html>
※ブラウザで表示を確認する
このJavaScriptを動作させると、画面上のテーブルが1行おきに背景色が変わる。では、このスクリプトはいったいどういう意味なのだろう。
「%」という記号は、剰余算で「割ったあまりを求める」という計算式だ。「1行おきに背景が変わる」というのと、剰余算はいったいどういう関係があるのだろう。それは「1行おきに」という言葉を、理数系のセンスで言い換える必要がある。
「1行おきに」ということは、「1行目、3行目、5行目...」という順番で色をつければよい。これはつまり「奇数」の行に、色をつけるということだ(もちろん偶数でも良い)。
奇数という数字は、さらに言い換えると「2で割ったときに1余る数字」と言い換えることができる。つまり、その数字を2で割った時に1余れば奇数。だから背景色を変える。そうでなければ(=余りがなければ)、偶数なので背景色を変えないというスクリプトを作れば、「1行おきに背景色を変える」スクリプトとなる。
このように、スクリプトには単に日本語を翻訳するのではなく、「スクリプトにしやすい言葉に言い換える」「スクリプトにできるように仕組みを変える」といった作業が必要になる。この部分には若干の慣れが必要ではあるが、パズルゲームや謎解きゲームのように、楽しみながら考えていけば、身につくだろう。
- 特集: あなたがプログラムを理解できない10の理由 (5件)
- ホワイトペーパー
- 企画特集
- 話題のタグ
SQLite対応アプリのデータベースファイルを閲覧する
グーグル、「Google Buzz」を発表--Gmailのソーシャル機能を強化
「H.264」ストリーミングのロイヤリティ無料期間が延長
マイクロソフト、「Office 2010」のRC版をリリース
事例 VMwareでデータセンターをクラウド化
経営統合後の事業損益構造の見える化を実現
レガシーアプリケーションの稼働どうしてる?
アンケートから見るセキュリティ対策の実態
身近な業務をCRMが変革!
通販サイトのアクセス集中からの危機を救う
御社はまだフリーの転送サービスですか?
新しい視点のレンタルサーバが誕生!
仮想環境のバックアップは難しいのか
利用者の理想を追求した最新レンタルサーバ
アプリケーション仮想化 3つの課題
仮想化をダメにするストレージの実態
Xbox Live インディーズゲーム開発の軌跡
DBのパフォーマンスに困ってませんか?