ベイダー卿

今日からはじめるプログラム(その6:登山口を間違えるな)

2009-05-22 13:02:39

 
コーホー、コーホー、こんにちは、マスクがバカ売れなので、ベイダーマスクも、僕が買えなくなるんじゃないかと心配な、ベイダー卿です。

 

前回、画面にメッセージを表示するなんていうプログラムの話を書きましたけどね。

まあ、あれは良く出てくる初歩の話でしてね。

とりあえず具体的に動かしてみましょうよ、ということ。

ジェダイの修行だって、机にかじりついて共和国の法律の勉強なんてしてるよりも、外で元気にライトセーバー振り回してるほうが楽しい。

つまり、手を動かし、なんかが出来た喜びを知らしめるというのが、手っ取り早く、こっちの世界に引き込む常套手段というわけなのですよ。

オビワン 「動いたぜ! お、俺でも、動かせたんだ!もしかして、俺って天才プログラマーじゃないのか?」

っていう、自信?過信?成功への妄想?みたいなものを植えつけるための、いうなればセレモニー。

悪く言えば、ヤラセ。

本の通りにやってるわけですから、誰にでも出来るようになってるんですね。

その程度のものなのに、表示する文句まで決まってるのが嫌だったので、前回噛み付いてみたというのが、実のところなわけです。

で。

プログラムっていうのはどういうものなのか?

というあたりを今回からは徐々に説明してみたいと思うわけですよ。

もちろん、一気に説明するなんて事はしませんよ。

そんなことしても、おちこぼれを増やすだけですから。

まずは、持ち上げといて、やる気にさせるのが目標なのです。

僕は、クワイガンと同じで、基本的にパダワンを褒めて伸ばすタイプのマスターなので。

 

プログラムって、かなり難しそうと思ったんじゃないかと思うんですよね。

前回は、表示には成功しましたけどね。

表示するだけのプログラムなんて面白くもなんともないのに、色々と面倒なことが多かったわけです。

さらに、本に書いてある通り、手取り足取りやって、なんとか出来たというくらいですから。

最初のプログラムを組んだその日は感動の嵐の中に居ても、次の日あたりに冷静に考えてみると、

あれじゃ、まだ、”プログラムを組んだ”ということにはならないんじゃないか?なんて本当のことに気づきはじめちゃったりするんですよ。

でも、

オビワン 「いや、俺はそれでも、やっぱりちゃんと表示できたし…」

なんて、自己否定と肯定の狭間で揺れているのが二日目。

そして、もう一晩寝ると、本とか参考サイトのプログラムをパクッただけだとか、誰かに操られてやらされただけだとか、

フォースのお導きに踊らされたんだとか、ベイダー卿にそそのかされたに決まってる!とか、そのくらいのものだということがジワジワとわかってくるわけです。

こんな感じで、3日後くらいに、そんなことに気がついて悩んじゃってる、ダメダメなあなたに、ここで、一つ質問があります。

ブロック遊びは好きですか?

小さい頃、レゴブロックとか、ダイヤブロックとか、やりました?

僕はレゴブロック派だったんですけれども、あのブロックの値段が高いことと言ったら、もう何考えてるんですかね?

子供向けなのに、子供のお小遣いで買えるのは、小さい車一台とかですから。

町シリーズの大きな消防署なんか買おうと思ったら、お年玉全部はたくくらいの気合が必要ですから。

大人になったら、レゴのスターウォーズシリーズを大人買いしたりするようになるのは言うまでもないんですが、

子供時代、少ないお年玉の中で、さすがにそこまでしてレゴをやりたいか?というと、そういうわけでもないのが、子供の心理なわけでしてね。

だから、中途半端に小さいブロックばっかりが集まっちゃったりして、微妙に楽しくなくなってきたりする。

なんとも、寂しいものです。

でも、レゴブロックにはプログラムのヒントが隠されていたんです。

あれ、ブロック、つまり「部品を組み立てて形を作りましょう!」といいつつ、人の形は出来上がってた気がしません?

ブロックと言いつつ、馬なんかもすでに出来てたような…。

ブロックなのに、なぜか、バイクもあったような記憶が…。

そう、ブロック遊びと言いつつも、すべてをあの単純な形の基本部品を使って1から作り上げるというのは難しいので、おせっかいにも、ある程度は作ってあったわけですよ。

で、その作ってあるものに、何かを足して行くと、意外と簡単に目的のものが出来たりする。

あれね。本当に良く出来てると思うんですよね。

1から作るのが面倒くさそうなものだとか、小さすぎて作りにくいものだとかは、とりあえず、用意しておいてくれる。

だから、初心者でも入りやすい。

いうなれば、”初心者丸め込みシステム”。それがレゴだとか、ダイヤブロックなわけですよ。

良く考えたもんです。

さて、プログラムの話に戻りますけれども、プログラムも、このブロックみたいなものだと思ってみると、多少ですけれども、簡単に見える。

初心者として、丸め込まれてしまえるわけです。

プログラムというのは、”ある程度、便利に作られてるブロックの部品があって、それにちょっと味付けしたり、それを適当に組み合わせて作るもの”。

そう考えて大丈夫だと僕は思うわけです。

プログラムというと、「複雑な命令文(コード)の羅列で、それを全部打ち込んでやっと動く」みたいな難しいイメージあるんじゃないかと思うんですよね。

もちろん、それは事実。

プログラムが、複雑なコードの必要ない簡単なものだとは言わない。

でも、それ、最初のうちは忘れてていいから。

とりあえず、趣味プログラマーなんで、そんなの気にしなくていいから。

プログラムが難しくない、などとは、僕は口が裂けても言わないですけれどもね。

でも、できるだけ簡単なところから攻める方法なら存在するわけですよ。

高尾山だって、上りやすいところと、けわしいところがあるように、プログラムにもあるわけですよ。

それを私は知って欲しいと思うわけです。

登山口を間違えるな!といいたいわけです。

初心者趣味プログラマーである、あなたが上るの登山口とは、プログラムを1から作ろうなんて、思わないこと。

これ、重要ですから。

プログラムを1から作るなんて面倒な作業はですよ。

職業プログラマーだとか、プログラミングに命かけちゃってる、粋なお兄さんやお姉さんにやらせておけばいいわけです。

このコラムを読んでいる、あなたのような、グータラ物好き初心者趣味プログラマーとしては、

すでに出来てる便利な部品をブロックのように組み合わせることからはじめるほうが思いっきり早いわけです。

で、この便利な部品のことを、プログラマーの世界では、”関数”って言ったり、”モジュール”って言ったり、”コンポーネント”って言ったり、”クラス”って言ったり、他にもまあ、色々と言い方はありますけれども、そんな風に呼ぶわけですよ。

さらに、この部品を種類ごとに分類して集めて使いやすくまとめたものを、”ライブラリ”だとか、呼ぶわけですね。

なんだか、こういう用語を出しますと、プログラマーらしくなってきた気がします。

というか、ここまできたら、もうプログラマーだと胸張っちゃってOKですから。

ここは自由の国、名乗るのも自由。

良くテレビなんかでもあるじゃないですか?「自称、相場師の32歳の男が…」なんてニュース。

つまり、この世は言ったもん勝ちだということです。

だから、高らかに宣言しましょう、「アイ、アム、プログラマー!」と。

僕なんて、自称ジェダイですからね。街でばったり、ジョージにでも会った日には、絶対怒られると思いますよ。 

で、まあ、それはそれとしましてね。

プログラミングの世界では、かなり便利な部品のまとまり(ライブラリ)を、先人の皆さんが汗水垂らして、一部の人は血反吐はきながら作ってくれてる。

それに、大抵のプログラミング言語には、ある程度のライブラリが付属している。

それを利用しない手はないわけです。

だから、最初はそういう部品をどう使うか?というのを覚えるのがいいんじゃないかなぁと、趣味プログラマー的には思うわけですよ。

そりゃ、1から全部作れたらカッコイイですけれどもね。

でも、職業プログラマーだって、仕事するのにライブラリは使いまくりですから。

なんのライブラリも使わずにプログラムを組む人なんて滅多にいないわけです。

やりたいことに見合うライブラリを探すことからプログラムをはじめる、なんて人も良く見かけるくらい。

だから、今回の話で私が言いたいのは、唯一つ。

今すぐに部品の使い方を学べ!なんてことではないですよ。そんなこと言ったら、おちこぼれちゃいますからね。

そうではありません。

もし、あなたがこの先、自分の思い描く機能を持ったプログラムを組もうと思ったとき、ちょっとだけ思い出して欲しいのです。

あなたがやりたいことに近いものは、すでに誰かがあらかた作ってくれてるんじゃないのか?

部品として存在してるんじゃないのか?

だったら、それをちょこっと拝借して、少し改造すれば、なんとかなっちゃうんじゃないのか?と。

そして、もっと大きなプログラムを作ろうと思ったとき、何かの部品と何かの部品をブロックのように上手く組み合わせると、意外と簡単に出来ちゃうんじゃないのか?ということを。

だから、

「まず、ググれ!」

この一言に尽きます。

使ってるプログラミング言語と、”ライブラリ”とか、”クラス”とかそんな言葉と、やりたい事柄のキーワードをお賽銭にして、google様にお願いするわけですよ。

「google様、我に、○○なプログラムを作る力(ライブラリ)を与えたまえ」と。

きっと、欲しいライブラリが見つかる。

もしくは、すでにあるライブラリの使い方がどっかに解説されてる。

それを見つけるのが先決。

大抵のことには、それなりに応えてくれるのが、google様のすごいところ。

万歳です。

 

さて、今回、ライブラリだとか、クラスだとか、色々と用語が出てきましたけれども、当コラム的には、こういう用語は、今すぐ忘れて結構。

どうせそのうち、本なんかで、これでもか!ってくらい目にするわけですから、自然に覚えますしね。

そのうち、僕なりに用語解説なんかもする予定なので、まずは、そういう細かいところは、気にせず、気にせず。

とりあえず、

世の中には、便利に素早くプログラミングをするために蓄えられた先人の知恵が、

ジェダイ聖堂の公文書館にあるデータのごとくに、ものすごくたくさん蓄積されてて、それを利用することが出来るんだ、ということと、

フォースだけ信じといてくれれば、今日のお話はOK。

では、また次回。

※このエントリは ブロガーにより投稿されたものです。朝日インタラクティブ および ZDNet Japan編集部の見解・意向を示すものではありません。
  • 2件のコメント
#1   2009-05-25 01:32:42
このシリーズ、大好きです。
学生時代にプログラムはあまり得意じゃなかったから、ベイダー卿みたいな先生が教えてくれてたら、
多少は興味の持ち方が違ったかも? いつも楽しみにしてます。
それから、ベイダー卿って、仕事以外で面白いプログラムとか作ったりしないんですか?
こういうこと考える人はどんなプログラム作るんだろうって、思ったりしてます。
#2 ベイダー卿   2009-06-01 13:09:24
>#1さん
楽しみにしているなんて、過分なお言葉、ありがとうございます。
でも、僕に教わったら、僕みたいになっちゃいますけれども、それでいいんですか?
大丈夫ですか? その辺りをじっくり考えてください。お願いします。

仕事以外では、たまに作ります。
フリーソフトで、ベクターとかに登録したのもありますし、
WEBサービスとしてひっそり公開して、一人でほくそ笑んでるものもあります。
ただ、一般的にみて、面白いとか、役に立つかどうかはわかりません。
僕として楽しめるものしか、作らないので。
とりあえず、あまり他の人が作らない、おかしなプログラムであることだけは確かです。
  • 新着記事
  • 特集
  • ブログ
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]