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