So-net無料ブログ作成

愉しい閃光:学ぶ・真似ぶ [日々ノ出来事]

閃光:フラッシュ。
ここでは、Adobe(以前はMacromedia)FLASHを指す。

今日は、午後から閃光でサイトのメニューボタンを作り始めた。(もちろんお仕事で。)今回、初めて本格的にActionScriptをいじる。というわけで、本日の日記は閃光のActionScriptを触ってみて思った『プログラムやスクリプト』について(以後、『プログラムとかスクリプトとか』をまとめて『プログラム』と言っちゃいます)、またその習得方法についてなど、思うところを書き綴ります。

1. わたしの閃光使用遍歴
(1) FLASH 4
WEBページの作成を始めて間もない頃からバージョン4を触っていた。しかしながら、バージョン4ではActionScriptが今ほど発展しておらず、まだまだ『アニメーションソフト』としての存在感が強かった。私はアニメーションムービーを作る気はなかった(てか、作れないw)ため、然して出番もなく、活用できていなかった。

(2) FLASH MX2004
数年後、アカデミーパックを買える学生のうちに…と、大学4年生の時にバージョンMX2004を購入。以降、ActionScriptバリバリのWEBサイトに憧れるが、『そのシステムを活かした何か』を思いつかず、スクリプトはほとんど使わずに少し遊ぶにとどまる。(チェルデラのイベント会場はこのバージョンで作っているが、その際も結局、バージョン4でも実現可能なくらいのスクリプトしか使っていない。)

(3) FLASH CS
今回お仕事で触っているのは、バージョンCS。因みに、今進んでいる案件が落ち着いたら、最新のCS3にするらしい。この最新バージョンはMX2004から数えると4つ目となり、ActionScriptもかなり強化されているようだ。そんな今になってようやく、「必要に迫られて」触り始めたわけだ。


2. わたしの頭の中のプログラム
(1) ゲーム感覚
今回ActionScriptを触ってみて思ったことは、「やっぱりプログラムは、数学的だ!」ということ。解けたら(動いたら)とても達成感がある。これは、HTML言語を打ちまくっていた時に覚えた感覚と同じだ。この感覚を例える場合、私はいつも「まるでロールプレイングゲームをやってるかのよう」と、表現している。具体的に言えば、ひとつひとつ出来ることが増えて表現方法なり機能なりが実現していく様が、ロールプレイングゲームをクリアしていくように思えるということ。

(2) 空回り感覚
プログラム言語を習得することについて、とても愉しいと感じているのに、どうもうまくいかない。気持ちだけでは空回る。もしかしたら、それは単に向いていないだけなのではないか?と、人は言うかもしれない。でも私はそうは思わない。なぜなら、種類は違えど、HTML言語に関して言えば、私は当時の技術でならほぼ自在に操れるほどにスキルを身についていると思うから。(『当時の技術でなら』と言ったのは、実は私は、最近のHTML事情をあまり押さえられていないため。技術は日々発展しているのです。)つまり、習得の仕方に問題があるのではないかと思うのだ。

それでは、私は一体どうやってHTML言語を習得したのだろう。HTML言語を打ちまくっていた頃を思い出してみる。


3. 何がプログラム言語を難しくさせているのか
(1) わたしのHTML言語習得方法
HTML言語で遊び始めたのは、17歳くらいの時だったと思う。(動機などについては、2008年2月1日の日記で触れているので、そちらを読んでいただきたい。)その頃の私は、HTMLというのは何をどうすればいいのか全く分からない状況だった。その状態でどうしたかというと、始めの基本的な形を頭に入れた後、友人が作っていたサイトや、ネットサーフィン中に見つけたサイトを色々見て、『これを自分のサイトで使いたい!』という表現方法を沢山見つけた。そして、その気に入ったものについて、一つずつ調べていった。調べて、呪文のようなソースをコピー&ペースト。その繰り返しだ。ひたすらそうしてるうちに、何がどうなっているのかが自然に分かっていった。

(2) わたしはどこで躓いているのか
ここで、プログラム言語についても、HTML言語を習得した時と同じようにしたらいいのではないか、と考えた。

HTML言語習得方法になぞらえて、今までの私のプログラム言語への触れ方を思い出したとき浮き出てきたのは、もっと根本的なところで躓いている、ということだ。どうやら私は「プログラム言語にはどんな変数があって、どんなことが出来るのか」を理解できていないようだ。これが分からなければ、C言語だろうが、PHPだろうが、JavaScriptだろうが、ActionScriptだろうが、何をやるにしても前に進まないだろう。

(3) プログラム言語自体がもつ負の特徴
プログラム言語を習得するにあたり、こちら側の問題点は見いだせたが、やはりプログラム言語そのものが持つ特徴にも、習得のし辛さを生みだす点はあると思う。それは、面倒くさい点。今思いついた面倒くさい点を、次に2つ挙げる。

一つ目は「手軽さに欠ける」こと。HTMLのソースは、ブラウザの『ソースを見る』機能を使えば、簡単に閲覧・コピーできる。一方プログラムは、主にセキュリティ上の問題から、ブラウザで簡単にメインのソースを閲覧する、ということができない。閃光も、WEB上で閲覧できるのはレンダリングされたムービーファイルだから、本体を見ないと仕組みが分からない。つまりプログラムは、ソースを見るときの手軽さに欠けているのだ。

二つ目は「ひと手間が必要」であること。プログラムのコーディングは、自由度が高い。『変数』なんてその最たるもので、制作者本人の好きなように定義する(名付ける)ことが可能だ。そのため、他人の書いたプログラムソースを見たとき、何を意味するのか分からない変数が出て来ることもしばしばある。すると、他人の書いたソースをいじくる時には、一度それを解読する必要が出てくる。これはとても手間だ。

今挙げた「手軽さに欠ける点」や「ひと手間が必要な点」は、『面倒臭さ』を生みだす。

(4) プログラム言語は『言語』
何を当たり前のことを…と思われるかもしれないが、『プログラム言語』と言うからには、プログラム言語は日本語や英語といったものと同じ『言語』である。

プログラム言語には色々あるが、それぞれ表記の仕方などが違うだけなので、何か1つの言語をマスターすれば、他の言語でも応用が利く。だから、肝心なのは一番始めに『何の言語に触れるか』ではなく、『何か一つの言語にどう触れるか』だと思う。勿論、言語によってある程度の『習得のし易さレベル』はあるが、それはあくまで一般的に見た時のものであって、個人によって感じ方が異なるだろうから、今はそれを考えないことにする。

では、プログラム言語が『言語』であるなら、例えば英語の習得方法に目を向けてみるとどうだろうか。

(5) わたしの英語習得方法
私は、中学まで英語が得意だった。それは、当時通っていた英語の個人塾の先生の教え方がとてもよかったからだと思う。どんな方法で教わったかというと、一番始めは、アルファベット自体がもつ発音をたたき込まれた。A=ェア、B=ブッ、C=クッ…といった具合に。次に、アルファベットを組み合わせ方のルールと、その発音をならった。例えば、

●「b」または「p」の音の直前が「ン」の音の場合、「ン」は「n」ではなく「m」である。
ex) number(ナンバー)、complete(コンプリート)、member(メンバー)

●「q」の後は必ず「u」がくる。
ex) aqua(アクア)、boutique(ブティック)、square(スクエア)

●母音の後に子音+「e」が来る場合、母音自体の音で発音され、最後の「e」は発音しない。
ex) time:母音「i」の後に子音「m」+eだから、「i」はそれ自体が持つ音「アイ」と発音する。「i」の前に「t」があるので、その音と合わせて読むと「タイ」となる。最後の「e」は発音しないので、後半は「m」の音「ム」だけ。全部合わせて「タイム」という発音になる。


といったもの。あとは、教科書に出て来る文章を暗記する。和訳が分かった上で、空で言えるまでになれば、単語なり構文なりが自ずと頭に叩き込まれる。

(6) 対象の違い
英語の習得方法を、プログラム言語に置き換えてみよう。すると…置き換わらない。それもそのはず、プログラム言語は発声するものではないのだ。日本語や英語といったものは言ってみれば、人間が理解するための『人間語』で、プログラム言語は、人間が理解するための『機械語』なのだ。つまり、その言語を使って対話する対象が違う。

人間同士で対話するとき、機械はキーボードやマウス、スキャナ…といった、『入力機器』を使う。一般的なコンピュータと対話するには、キーボードで言語を入力することになる。このときに使うのが『プログラム言語』だ。

ということは、『人間語』を、自分の口を動かして発声し、それを耳で聴くことで覚えたとするならば、『機械語』は、自分の手を動かして入力し、それを目で見て覚えればいい、ということにならないだろうか。


4. プログラム言語習得への道標
(1) 『学ぶ』ということ
プログラム言語習得までの近道は、『真似る』ことだと思う。やはり先ずは、もっと色んなサンプルを見なければならない。サンプルを見て、『あ、こんなの作りたい』と思うものを見つけることが先決だ。初めは自己満足でいいとも思う。最初から、作る側も使う側も満足できるものを考えるとなると、制限がかかってきっと続かない。ブラッシュアップというのは、完成したものをもう一度見てからするものだ。完成しないうちからは考えない!

これはプログラム言語に限ったことではなく、何かを習得しようというとき、まず始めはお手本を真似ることから始める人が多いのではないだろうか。これは本当に理にかなっていることだと、私は思う。「学ぶ」という言葉は、「真似ぶ」という言葉に由来している。だから、初めはパクリのオンパレードでいいのだ。

(2) いいサンプルを見つける
プログラムのソースを見るには、配布されているサンプルをダウンロードして、本体ファイルを開いて見ることになる。フリーで配布されているものは結構たくさんあるので、何かは見つかるだろう。ところがそれらのほとんどは、誰かが作った完成したプログラムだ。それをいじろうとすると、まずは解読から始めなければならないことがまだ多い。先にも書いた通り、これはとても厄介。だからといって、いきなりゼロから組み立てるのも、スパルタだ。ならば、よりシンプルなサンプル(あ、韻ふんじゃったw)を探しだせばいい。

ではシンプルなものはどこにあるのか、というと、やはり書籍だと思う。WEBで配布されているものよりも、書籍の方がシンプルなものが多いように見受けられる。それに、書籍には変数のリファレンスも付随していることが多い。

ActionScriptのサンプル本の中には、「サンプルで学ぶ」系の書籍もある。実際の内容はどうなのか分からないが、観点は一致しているはずだ。

(3) 体育会系のノリ
精神論的なことを言うつもりは毛頭ないが、本当に何かを実現したいと思うなら、それ相応のやる気や向上心が必要だ。近頃私はその力が弱っていたように思う。疲れは大敵。「元気があれば何でもできる!」というあの名文句(?)は、一理あるんだ。(笑)

ここまで堅い文章を書いてきたのに、シメがこれってどうなの!と言われそうだが、今回は長すぎてそろそろ疲れてきたので、この辺で終わっときますw
nice!(0)  コメント(7) 

nice! 0

コメント 7

ケロ

うん。最後はエネルギーなんだよなー。
どうしてもこれがやりたい!と思わないと何も出来ない。そして私にはもうソレがない(うд`)
by ケロ (2008-04-08 03:37) 

るサン 

エネルギーどころか、、すでに文章の読解力がナイ (´;ω;`)
by るサン  (2008-04-08 15:39) 

まいこー

フラッシュは眩しいってことでしょ
by まいこー (2008-04-10 03:26) 

シャミラo

>ケロたん
うんうん。「これがやりたい!」が大切だと思うわー。けろたんは、ナイというより、アルけど手が足りナイとかではないのか?(笑)

>るサン
うははは。なんか、小難しく(?)書いてしまったw日本語がおかしいところもあるだろうから、余計に伝わり難いかなー。(汗)

>まいこー
そうそう、ストロボ焚いて撮影するとき、光った瞬間に必ず目をつぶってしまう人、いるよね。
…(ノ ゚Д゚)ノ ==== ┻━━┻
by シャミラo (2008-04-13 10:01) 

ひっちゃん

要するに、習うより慣れろ・・・ってことかなw?
最初は、人まねから。うwwん、なるほろ^^
私の頭じゃ、本文の解読は不能です^^;
by ひっちゃん (2008-04-14 23:52) 

Asterism

「プログラム言語は自由度が高く、制作者の定義から読み解いていかなければいけない」という点を難儀な点にあげていたのは、卓見だなあ、と思いました。確かに規格化されたマークアップ言語の手軽さとの大きな違いかもしれません。
もっといれば、XMLのように利用者が定義できるマークアップ言語の便利さと難儀さ、もこのあたりに一端があるでしょうし、プログラム言語における変数などの命名法のルールづけの是非(ハンガリアン命名法・・・だったっけ?)なんかも、このあたりの話ですね。

・・・長いコメントになっちゃった。
by Asterism (2008-05-06 00:10) 

シャミラo

>ひっちゃん
そうともいうw
でもまだ、何かいい習得方法はないかと考えてます。
でもなかなかこれは深いみたい。

>Asterismさん
XMLなんて、出てきた時は「ほんとにそれっていいの?!」と疑いました。まだ手をつけていない今でも、納得はできない言語ですねw だって、自由度が高すぎて、後から再利用なんてしづらいし。XMLがオブジェクト思考にのっとったものだかどうだかは忘れましたが、もしそうなら、矛盾してますよね。プログラムのコードを再利用って、本当の意味では出来ないのではないかと。
by シャミラo (2008-05-06 02:04) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。