パソコンの知識はほとんど無いとします。その人がプログラミング勉強してみようかな、と思えるような答えをお願いします。
例え話を使ってもなんでも、どんな手段でも良いです。
目の前で(一緒にパソコンの前に座って)動くものを作ってみせる。
なるべく簡単に、インパクトのあるものを見せるといいと思います。
例えば、
・画像を表示して、ちょっとした変化を加える。
画像を表示するプログラムを用意しておいて、プログラムをちょこっと変えるとセピア色になるとか、拡大縮小するとかというのを見せる。
・ボールが動く
別にボールでなくてもいいですけど、ものを動かす。マウスに引っ付いてくるとか、ウィンドウの端で跳ね返って動き続けるとか、っていうのを見せる。
簡単に、面白いものが作れると思ってもらえれば、勉強してみようかなという気になると思います。その人の興味のあることに結びつければ、なお良いと。
よく家などにたとえて説明します。
きちんとした家をたてようと思うと、設計をちゃんとおこして、
基礎うちして、骨組くんで、屋根をつくって、内装を施してと
様々な段階でさまざまな専門職の手を借りる必要があります。
もちろんプログラムについても同様に様々な段階を経てくみ上げるものもありますが、
普通の家レベルのものであれば一人でつくりあげることができます。
材料費も軽微なものですし、なにより発想から完成物までつくりあげる期間がとても短くて済みます。
ある程度のものをつくろうとしたときには、この着想から創造までのコストがほかの何に比べても低いです。
大工さんが最初にのこぎりの使い方を覚えるのにイスをつくったりしますが、
プログラムもこの過程をふみます。
ただ、ノコギリとノミとトンカチのような道具の使い方を覚えただけで一人で家が立てられるようになるのがプログラムです。
http://d.hatena.ne.jp/kuippa/20080412/p2
適当なURLがなかったので、遺伝子工学とソフトを比較したときのブログでもはっておきます。
やろうと思えば一人で最初から最後までできるというのが魅力なんですねー
http://www.google.co.jp/search?q=%E3%83%97%E3%83%AD%E3%82%B0%E3%...
プログラマというのはまさに魔法使いです。
小説家もミュージシャンも漫画家など、深い技術があるにせよいずれも完成品=作成過程で、普通の人がみればそれを理解できるものです。
プログラムというのは実体(ソースコード)と完成品(実行結果)が全く異なるもので、しかも実体を一般人が参照しても全く意味がわかりません。これはプログラマという職業のアドバンテージであり、私がもっとも気に入っている点です。
科学、化学など、学問系にはこれと似たような職業が多いと思いますが、いずれも実務では必ずコンピュータを使うと思います。もはや先進国の現代社会はコンピュータプログラムという魔法のブーストなしでは成り立たないという、社会インフラの根っこを牛耳っている事実に快感を覚えます。
魔法のブースト、確かにそうですね。面白いです
うわぁ、ぁゃιぃ世界に引きずり込まれるぅ~!
例えば、単なるコンピュータオタクでプログラマであったビル・ゲイツが提携先であったIBMを
凌駕するマイクロソフトという会社を作ったことだけでも、プログラムの可能性の限りなさを証明するものだと思います。
そのマイクロソフトがOSを完全に支配している現代において一人の学生が作ったOS(Linux)が瞬く間に世界中に普及して、
場合によってはWindowsを脅かす可能性さえあるという状況もプログラムの可能性を示してます。
そしてさらに新興のgoogleがマイクロソフトのオフィスを葬り去る可能性が出てきたというのも同じことです。
まったくの個人や個人に近い企業がトップ企業を脅かす可能性のある分野は現代ではプログラムくらいのものではないでしょうか?
これは単にOSやオフィス系のソフトに限りません。今は従来のアプリケーションソフトがWEBソフトに変わる変革の時期を迎えてます。あなたが新しい技術でのスタンダードを作る可能性もあるのです。
現代でもっともフロンティア・スプリットを発揮できる世界であり、可能性の大きな世界です。
もちろん、そのためには多大な努力と才能と運が必要ですが、やるだけの価値のあることです。
どうでしょう?やる気になってきました?
これはかなり熱くなれますね。
元手なしで莫大な利益を上げるチャンスはコンピュータの世界しか有り得ないんですね。
言葉でいくら凄いとか、運が良ければ金持ちになれるとか教えても無駄のような気がします。それよりはその人の興味を聞きだして、それにあった教え方をするしかないと思います。例えばゲームが好きならゲームプログラミングはこうやって作っていけば動くんだよ面白いでしょとか、業務で何か不便なことは無いか聞きだして、プログラムができればExcelのVBA使ってこうすれば労力を半分以下に落とせるよとか教えてあげる。ネットに興味があれば、ショッピングサイトを作って、こうやって世の中のウェブサイトは動いているんだよと教えてあげる。ただ10人いたら10人興味は別々なので個別の指導になってしまいますが。これが欠点ですね。http://q.hatena.ne.jp/1208933552
「楽をするための努力」とかプログラマーはよく言いますね。
仕事に関係なくても業務上の問題をプログラムで楽にできないかと考えるのもよさそうです
すごくいい質問ですね。
私も説明に挑戦させてください。
相手が男だったらプラモデルとかラジコン(てか、ミニ四駆とか、あ・年齢ばれるな) とかで、女の子だったら、着せ替え人形とかリカちゃんハウス的なもので説明します。
プログラムは、いろんな部品を組み合わせて自分だけのオリジナルのものを作れるのが醍醐味!自分にぴったりなもの、もしくはたくさんの人が望んでて、まだ世の中にはないものを発明できるのと同じことで、その試行錯誤の過程も面白いし、何よりできあがったときの達成感とか、実際に使ってみて役に立つ、楽しむ、人から感謝されるのが最高の瞬間です。
(以下、男の子向けの説明)
プログラムって言っても、なんていうか、パーツに分かれてるのね。
モーターとか、車輪とか、電源とか、配線とか、もうとにかくいろいろ。
一般的なラジコンの車みたいなヤツは世の中にごまんと出回ってるからお店で買えるんだけど、例えば壁にぶつかりそうになったらブレーキ掛けさせたらいいなとか、ぶつかる直前にクッションが飛び出たらいいなとか、決まった時間に玄関の新聞を取ってきたらいいなとか・・・いろんな「こんなのあったらいいな」っていうのがあるでしょ?そういう夢をいろんな部品を組み合わせて作るわけ。
ゼロから作ってもいいし、誰かが作ったラジコンを少しだけばらして違うパーツ付けたりとか、性能がいいモーターを付けたら、ラジコンカーがヘリみたいにとんじゃったりとか!
実際のラジコンとかだとやっぱり部品を買ってこなきゃいけないわけだけど、プログラミングだったらキーボード一つでいろんな役割を果たす部品が作れちゃうわけ。しかも、タイヤだったらタイヤだけでいろんな種類を作っておいて、接続部分の形が変わるようにしておけば、ほかの人が作った車と合体させちゃったりとかもできるのね。さらに、そういうエンジンとか座席とかが部品ごとにインターネットに出回ってるとしたらさぁ大変!可能性は無限大!
まだ誰も考えたことがないようなものも作れちゃうかもしれないし、そういうことをやって成功したのが、よく聞くマイクロソフトとかグーグルみたいな会社なのね。
あーゆー人たちって、技術ももちろんすごいけど、なんていっても「アイデア」っていうか「発想」を形にしたところがすごいんじゃないかな。
ま、そういうレベルじゃなくても、自分の身近に「あったらいいな」を作って便利につかったり、人にあげたり、人から貰ったりするのはすごいと思うし、世界中で可能性を共有している感じがするなぁ~ (遠い目)
てなわけで、できたらいいなを形にして、いろんな人とつながる。それがプログラムの醍醐味かな。
すばらしいです。
自分がふと思いついたアイデアを、やろうと思えばその日のうちから、誰にも邪魔されずに、
完成まで持っていける、
男の子には夢のような話なんですね。
実際にやってみるのが一番でしょうね。特に音や視覚に訴えるものがいいでしょう。
Excelマクロの「マクロ記録」を使うとプログラムを全然知らなくてもプログラムが書けてしまいます。
それで、同じことを自動でやる便利さと、同じことしか出来ない不便さがわかると
「便利だけど、○○が△△になるといいんだけど」→「VBマクロを使うとできるよ」ということでプログラミングに興味を持つのではないでしょうか。
ありがとうございます!
個人的な経験では、数十行コードを書くだけでフラクタルアートが描けてしまう、ということには感動しました。
ありがとうございます!
プログラミングはパズルです。
かの有名なパズルゲーム「テトリス」ってのが在りますよね。
私はプログラミング初心者の方に"プログラミングの楽しさ"を伝える時、毎回このことを言います。
数は忘れましたが、テトリスは何種類かのブロックを組み合わせて、横一列揃うと消えてスコアになるというゲームですよね。その種類が増えただけです。
そして、プレイする側でなく作る側というシチュエーションで想像させます。紙とかにでも書いて。
・こんなパズルだと面白いな。
・スコアがもっとカラフルだったらいいんじゃないかな。
・横一列もいいけど、2列にしたら面白さ倍増するのではないかな。
などなど、人によっては感じ方はさまざまだと思います。
それらを自分で考えさせて、あとは伝える側がそれを作るにはどういう過程が必要なのかを教えます。
設計(上記のことなどを考える)、プログラミング、エラーやバグを直す。
これらのことを一通りするだけでプログラミングの醍醐味を伝えれると私は思います。
最後に、もう一度だけ言わせてください。
「プログラミングはパズル」
追記:はてな を初めて利用するので、URLの意味がわかりませんでした。わからないので、自分のブログのURLを載せます。
パズルですかー、
プログラマが徹夜するのは
「パズルを解いてたら朝になってたような気分」だとかどこかで言ってたような気がします。
URLは、質問者が満足できるようなものを貼るのが義務になってるんですよ。
文章で質問に答える場合は別に必要ないと思うので、皆ダミーとしてはてなのURLを貼ってたりしますよ。
返信おくれてごめんなさい!
ありがとうございます。
やっぱり最初に完成したものを見るのは大事ですね。