15歳の人にプログラミングを説明する30分[終了]


100

私は来週、15歳の職業体験生と一緒に座って、開発者の生活と仕事について話すことを志願しました。

キャッチは

  • 私はちょうど30分を持っています、そして
  • 私は彼女と話をする人の1人に過ぎません。ビジネスでさまざまな役割を果たしている他の人たちも、彼女と一緒に仕事の要素を1日中駆け抜けていきます。

私は何をカバーすべきですか、そして私はちょうど30分で彼女に教えることができますか?

彼女にはおそらく開発やプログラミングの経験がないと思います。


158
これらの答えの多くが子供たちに愛着していることは憂鬱です-彼らは短い注意のスパンを持っています、彼らは視覚的でないと物事を理解せず、彼らは複雑なものに対処できません。私たちはここで15歳の話をしています。15歳の子供は、複雑なことを理解して実行し、何かに深く関与し、抽象的な思考を持つことに何時間も費やすことができます。私はあなたのシュムックの誰よりも賢い15歳をとるでしょう!
トムアンダーソン

8
@tom一方、私は個人的に、ほとんどの大人がコンピューターの視覚以外のものを退屈であるとさえ感じていることを経験しました。それは子供と彼らがコンピュータにどれだけ興味を持っているかによります。
ジョッキング

6
@jh:へー!問題は、この人が15歳かどうかではなく、知的で好奇心が強いかどうかだと思います。私たちは皆(Maxpmを除いて)今では古いダッファーかもしれませんが、私たちはかつて15歳でした。
トムアンダーソン

33
「まず午前10時過ぎに仕事に行き、コーヒーをたくさん飲み、マウンテンデューとエナジードリンクを飲みながら追跡します。次の2時間はメールをチェックし、唯一の女性開発者とレシピを交換します建物全体、昼食後の短い昼寝起きて、もう一度メールをチェックし、YouTubeで猫の動画を見て、最新のディルバートとsmbcの漫画に追いつきます。私にはあまりできませんが、100人のプログラマーが3年ごとに毎日同じことをしています。それがビデオゲームの誕生です。」
ジュリエット

5
@Tom:正確に。多くのプログラマーは15歳より前に始めたので、私はその軽desを理解していません。
ニールG

回答:


130

私は高校生とよくやり取りするので、この質問によく答えます。15歳の方が50歳の方よりもプログラミングを説明する方がはるかに簡単です-だから物事を馬鹿にしたり、とてつもない類推を使う必要はありません。

私は通常、プログラムとは何かの例から始めます。

  • iTunes、Photoshop、Chrome、コンソールゲームなどのゲームなどのアプリ。
  • Windows、Mac OS、iPhoneのiOS、AndroidなどのOS。(私を信じてください、彼らはあなたが話していることを知っているでしょう。)
  • 天気シミュレーション、生物学的シミュレーション、パイの計算、AI、言語処理など、数値を計算するプログラムや、本当に複雑な数学の問題を解決するプログラム
  • ほとんどの洗練されたWebサイトにはプログラミングも含まれます。
  • 乗換券の自動販売機とATM、電子レンジと冷蔵庫のタイマー、カーナビゲーション。

その後、私は通常、コンピューターが認識できる正式な言語でプログラムをコーディングしていることを説明し続けます。多くの場合、それらをメモ帳のような単純なもので入力します。言語は数学と英語のクロスのように見え、概念を説明し、コンピューターが従うべき式と指示を与えます。

それから彼らは通常私がいつもコンピューターにいるのか、これが私がいつもFacebookにいるのか、そして私の目がまだ悪くないのかと尋ねます。「人をハックする」方法を知っているかどうか、男は尋ねます、そして、女の子はそれが良いお金であるか、またはコンピューター科学のクラスに何人の女の子がいるか尋ねます。

その後、彼らがまだ興味を持っている場合、彼らは通常、答えるのがはるかに簡単な(または少なくともWikiに)特定の質問をし始めます:あなたがゲームを作る方法、Windows Messengerの仕組みなどのようなもの

コンピュータを使用している場合は、Firefoxの設定ダイアログボックスのボタンクリックハンドラー、ゲームエンジンのメインループまたは物理コード、 WebサイトなどからのJavaScriptソース。


73
プログラミングを子供に説明するが大人に説明するより簡単かもしれないことを思い出してくれてありがとう。彼らがコンピューターに囲まれたことは一度もないことを忘れない
ジョッキング

12
ハハハ私は1つのすべての時間、あなたはHAHAHAHAHA「人をハック」する方法を知っていればことを得る
ジョン・コネリー

3
@jhockingまた、それらの多くは、ばかボックス生成の多くよりも明るいと思います。品質はさておき、彼らが読むテキストの膨大な量は、何らかの利益をもたらすに違いありません。
宮坂

4
@rei:まあ、私は高度な社会的スキルを持っているので、それらのクラスの少数の女性が受けた注目の量にたじろぐほどの価値があることがわかりました...それは意図的でしたが...アラームです。それが私だったら、私は悲鳴を上げていたでしょう。汗をかいた口元の大群に囲まれていることは、普通の人にとってはターンオフになるはずです。そのため、あなたは注意を払わなければならないか、本当にコンプサイエンス好きになります。ですから、女性が非常に少なかったのは確かに驚きませんでした。私は小さな学校ではそれほど恐ろしくないと思います。
悪魔のような子犬

4
まあ、私は一般に少なくとも15分遅れて来ます、ああ、私はサイドドアを使用します-そのようにランバーは私を見ることができません、ふふふ-そして、ええと、ええと、その後、私はちょうど約1時間スペースを空けます。ええ、私は机をじっと見つめています。しかし、私は働いているようです。私もおそらく昼食後の1時間はそれをします。私は、与えられた週に、おそらく実際の、実際の、約15分間の仕事しかしないと思います。
チームボブ

73

私は5歳の子供に次のように説明しました:

私:「物語の中で、人々は魔法の言葉をどのように言い、世界の物事を変えるか知っていますか?」
彼女:「うん?」
私:「それがコンピュータープログラミングです。」
彼女(静かに):「すごい。」

15〜30分では現実を説明するのに十分ではありません。根本的な複雑さを説明することは、彼らを悲鳴を上げる確実な方法です。あなたは毎日働いていますが、それがいかにかっこいいかを忘れています。世界の他の職業は言葉だけで機能的なものを作成することはありません...ある時点で、他の誰もが肉の世界に出て、ハンマーで物を叩き始めなければなりません。それが彼らのアイデアを実用的なものにする唯一の方法です。

私たちではありません。


77
LOL @あなたの子供をあなたが魔法使いであることを教える
ジョッキング

23
「世界の他のどの職業も、言葉だけから機能的なものを作り出すことはありません」-契約弁護士と立法者はそうします。
トムアンダーソン

48
@Tom彼らはおそらく、作成するよりも機能的なものを制限します。
Maxpm

16
@tom:いいえ、ありません。法的ブリーフは、物語や詩ほど機能的なものではありません。法律は青写真のようなものです。それはアイデアを示しますが、誰かが肉の世界に出てそれを強制しなければなりません。しかし、コード?独自の内部ロジックに基づいて株を売買するプログラムを書くことができ、それ以上の入力なしでそれを行うことができます。洪水ゲートを管理し、電気の経路を変更し、時刻に応じて照明をオンまたはオフにするための1つを書くことができます。それは専門職の間でユニークです。
悪魔のような子犬

15
@Satanicpuppy:いいえ、あなたはそれらのことを行うプログラムを書くことができませんでした。しかし、電子技術者はそれらを実行できるコンピューターを構築できます。あなたがきちんと尋ねれば、おそらく彼はそれを肉の世界に出してあなたのプログラムを実施させるかもしれません。
トムアンダーソン

56

15歳の人はどんな概念でも理解できます。私自身は14でプログラミングを始めました(何年も前に学校で)

デモには30分で十分です。ブラウザーのようなものでプログラミングの魔法を見せてください。

  1. インターネットに接続されているPCを見つけます。(あなたのものでなければもっと楽しく、彼女のものであればさらにもっと)
  2. 行くhttp://api.jquery.com/jQuery.getJSON/
  3. ページを下にスクロールして、catsサンプルの HTMLコードを見つけます。
  4. HTMLコードを選択してコピーします。
  5. http://jsdo.itに移動し、[ コーディングの開始 ]をクリックします。
  6. 自分のOpenIDを使用してアカウントを開きます。(ワンステッププロセス)
  7. 左側のパネルで[ HTML ]タブを選択し、そこに貼り付けます。
    • すぐに、たくさんの猫が右側のパネルに表示されます
  8. JavaScriptを切り取り、JavaScriptタブに貼り付けます。(構文の強調表示用)
    • すぐに右のパネルで猫が自動的に更新されます
  9. javascriptでtagsプロパティを探し、「dog」に変更します。
    • たくさんの犬が現れます
  10. 彼女が選択した他のタグを使用して、自分でプロセスを繰り返すようにします。
    • カンマで区切られた2つのタグを試すことを提案します
  11. 行を「if(i == 3)」から「if(i == 5)」に変更します。彼女に気づかせて
    • 現在、6つの画像があり、4つの画像がある前に
    • コード内の番号がページ内の番号と一致する場合、より良いでしょう
  12. 一緒にバグを修正します(その行と前の行を入れ替えます)
  13. ...

1
または、サインアップする必要なしにjsfiddleを使用できます:jsfiddle.net/WXVra
rjmunro

ベスト!codecademy.com
jhocking

26

手順

ほぼ15歳の私は、あなたが素晴らしいスタートを切るべきだと自信を持って伝えることができます。

  1. プログラマーが作るものを説明してください。(ゲーム、シミュレーター)作成したクールなものを表示します。(コンピューター上。コマンドラインは使用しないでください-誰もが怖いようです。)
  2. 作り方を説明してください。

    • 101010101日中入力しないように伝えます。どうすればいいわからないことを伝えます。(うそ。あなた何を10101010意味するのか知っていますよね?)
    • IDEを起動します。見栄えが良いことを確認してください-MSVS2010、QtCreator、およびNetBeansはすべて優れています。余分なものをいくつか削除して、威圧感を減らして(メニューを少なくする)視覚効果を維持してください。
    • 疑似コードのサンプルを見せてください。わかりやすくする:

      Display Window
      Display "I like cheese!"
      Display OK button
      
      If user clicks OK button, close Window
      

      そのステップを一歩ずつ進みます。これは、コードが正確にどのように見えるかではないことを伝えます。コードは次のようになりEnglish + Mathます。しかし、あなたが話す「言語」(読み方:構文)を学ぶことは難しくありません。

    • 今回はもう少し「数学」の例を示してください。

      User inputs A
      User inputs B
      
      C = A + B
      
      Display C
      

      このコードは、電卓のように2つの数値を加算することを説明します。このための「本物の」コードを見せてください。(UIとその他のものの大部分を別のファイルに入れ、表示するファイルは短くシンプルにしてください。)目の前で減算記号に変更します(符号をから+に変更します-)。

  3. プログラミングを行うために知っておくべきことを説明します。(さまざまなレベルで。)

    • if x + 1 = 2、then などの基本的な代数スキルx = 1
    • 問題解決スキル。
    • [「高度」]高レベルの数学。これは、NASAのような場所で働くプログラマー向けです。

使用できる用語

あなたが思っている以上に知っています。

  • Facebook、Twitter、ソーシャルネットワーキング
  • Windows、Mac、Linux
  • 設計、高速化、テスト、開始/実行

説明すべき用語

ええ、まだ説明が必要です。

  • コンパイラ:コード(ステップ2の例のような)をに変換します10101010
  • プログラミング言語:手順2の例のように見えます。

使用できない用語

このことを知っている人もいますが、とにかく言わないでください。

  • オペレーティングシステム以外のあらゆる種類の「システム」
  • 最適化、分析(おおおお)
  • 入力/出力(これを使用する必要がある場合は、できるだけ単純にするようにしてください)

「クールな」IDEをお探しですか?Xcodeに勝るものはありません。
アランザイノ

2
@Alan ZeinoはEmacsを意味します。
右折

この答えが一番好きです。このタックをとる人は、この質問に対する他の(また高品質の)答えに取り組む人よりも多くのことを達成すると思います。
-TehShrike

17

プロセス、パターン、要件などについて話し始めると、彼女はすぐにシャットダウンします。今日の子供たちはグラフィックで視覚的に動機付けられているので、私はそれらのタイプの刺激を促進するために何かを持ち込みます。ウェブ上で彼女におしゃれなものを見せ、それから何が起こるかを高レベルで説明します。開発用ラップトップを持ち込んで、画面上で「クール」なことを行うことをお勧めします。彼女の前でコードを変更してから、画面上で変更を確認してください。その年齢では、彼らは非常に賢く、視覚的なものは興味を刺激するのに役立ちます。


そうそうビジュアルは素晴らしいアイデアです。これがクラスのようになりすぎる危険があるので、私が言うすべてを説明するためにホワイトボードに図を描く可能性が非常に高いでしょう。
ジョッキング

1
ビジュアルについて話して、彼女の小さなビデオやプログラムを見せてみAliceませんか?
カルロスキャンデロス

9
@Carlos 15歳の私は、千の太陽の燃える情熱でアリスが嫌いであることを個人的に証明できます。おそらく、プログラミングの方法を既に知っているからでしょう。初心者がどのように見ているのかわかりません。
Maxpm

1
「彼女の前のコードを変更してから、画面上で変更を確認する」ための+1-「本物の」ものとその背後のコードの間の直接的なつながりを見せることから始めます。少しのJSPや文字列の書式設定を微調整するだけでなく、データの並べ替えやクエリなど、適度に深いもの。その接続を作成し、それから構築します。
トムアンダーソン

1
わずか数行のコードでプログラムの外観を変更する機能は、何年も前にプログラミングに私を得たものである-の提案に感謝
デクスター

13

プログラマーの仕事を説明する際に私が頼る2つの素晴らしい類似点があります。1つはレシピです。そのメタファーは、コードの各行が何をしているのかを小規模に説明するのに役立ちます。プログラマーの仕事はレシピを書くことであり、コンピューターは料理人です。

もう1つの例えは、大きなプログラムは大企業のようなものだということです。さまざまな分野に焦点を当て、メッセージをやり取りするさまざまな部門がたくさんあり、全体が会社の目的を達成しています。プログラマーの仕事は、組織のセットアップ方法を設計することであり、コンピューターは社内のすべての人々です。


8

私はそれを一般的なものにしておくと思います。プログラミングと他の多くの職業は、問題解決に要約されます。日常的に問題を解決する方法を彼女に示してください。あなたが取り組んでいるプロジェクトと、それがどのようにあなたのクライアントを助けるかについて彼女に話すかもしれません。また、(おそらく)あなたの仕事が好きな理由についても少し記入してください。

私の場合、他のスタッフメンバーがチュートリアルを投稿する教育ビデオチュートリアルWebサイトを開発しました。プロジェクトの動機(人々を結びつけることなく他の人を教える)、直面した問題(必ずしもこれらを難しい問題と見なす必要はありません)、およびそれらをどのように解決したかについて説明します。そもそもプログラミングが好きな理由についても話します。私は、物を作り、プログラミングが現代世界に貢献するのが好きです。


8

あなたが取り組んできたソフトウェアの例を彼女に教えてください。ソフトウェアを公に使用しているクライアントがいますか?彼女に見せることができる社内アプリを開発していますか?彼女にあなたの仕事の最終結果、エンドユーザーが見、使用しているものを見せてください。

次に、あなたがそれを書いたのを助けたことを説明します。書いた部分に目を通します。可能であれば、いくつかのコードを表示します。これらのコード行がアプリケーションの一部を動作させる方法の概要を説明します。

あなたのコードが人々によって使用されているのを見てどれだけの楽しみを得るかについて話してください。

とにかく、私は14歳のいとこにそれを説明した方法です。彼はかなり感銘を受け、次の学期にプログラミングクラスを受講することにしました。


5
プログラマーでない人には見栄えの良いソフトウェアで作業するとうまくいきます。私の最近のプロジェクトの多くはデータベースに保存されており、コマンドラインのように「見えます」(そして、非常に退屈に見えたウェブアプリではありませんでしたが、データが処理される限り、誰も気にしませんでした)。プログラマでない人にとっては、数分ごとにテキスト行を出力してから停止する点滅プロンプトです。見て退屈だ... ため息 :(
FrustratedWithFormsDesigner

1
「あなたの仕事の最終結果」をより大きく見ましょう。それはあなたが取り組んだソフトウェアを意味するだけではありません。また、作業したバックエンドソフトウェアによって有効になっているさまざまなクライアントアプリケーションを意味する場合もあります。
ジョッキング

少なくともあなたは私のようなSharePoint開発者@FrustratedWithFormsDesignerではありません。すべての山括弧の中にクールなものが見つかるはずです。
デクスター

4
@FrustratedWithFormsDesigner 15歳のときに「学校の子供たちにCSに応募する価値があるように説得しましょう」という日、学校の他の明るい子供たちと一緒に行きました。コマンドラインのスタッフLOOKED COOL。とてもパワフルに見えたので、それがクールになりました。15歳の女の子が宇宙を支配したくないと思わないでください:)
テステラブ

空き時間に楽しいものをプログラムして、見せることができます。テトリスゲーム、フラクタルビューアー、数独ソルバーをプログラムしました。これらはどれも見せて楽しいです。
カーラ

7

ボードゲームロボラリーに精通していますか?

私はそれがプログラミングの最高の楽しみの類推であることがわかりました。基本的に、単純なコマンド(主に矢印)を使用してロボットをプログラミングし、ゲームボードの特定の場所に他の場所より先に到達します。

私はまだBigTrakを持っていたらいいのに…


4
私たちはこれをゲームの夜に半定期的にプレイします(最大8人、ほとんどが数学またはCSの学生です)。マルチスレッドが間違っ:-Pを行くことができる方法を示すことは良いです
サンパウロEbermann

@Paulo-LOLそのように考えたことはありませんが、あなたは正しいです!
システムダウン

6

シンプルだが便利なものを見せてください。私が思う良い例は次のようになります:

  1. フォルダーをいっぱいにするか、画像を取得します(フォルダーエクスプローラーの1つの画面にすべてが収まらない場合があります)
  2. 画像のサイズを変更することが目標であることを伝えます(おそらく、友人にメールしたり、どこにでもオンラインで投稿したりできます)
  3. GIMP / Photoshopなどで1つの画像のサイズ変更を実演します
  4. これには少なくとも30秒かかり、多くの画像があるため、これを行うのに1時間は費やしたくないと指摘します。
  5. ImageMagickを使用してすべてのサイズを変更するシェルスクリプトを作成する
  6. シンプルな3行のプログラムですべての画像のサイズを変更する方が、Photoshopで単一の画像のサイズを変更するよりも高速だったことに驚かせてください

このアプローチが好きな理由は次のとおりです。

  • プログラミングが有用である理由を伝える必要はありません。
  • 視聴中に数秒でプログラム全体を書くことができます(デモンストレーションは常に間違っているため、事前に試してみることをお勧めします)
  • あなたは彼らがばかだと思っているのではなく、ある種の「子供」の例が必要です-これは単純な例ですが、実際の用途があります。

より良い例を考えることができるかもしれませんが、このスタイルは「最初のイントロ」に役立つと思います。


5

「最近」の15歳のほとんどは、コンピューターの経験が豊富です。もっと実践的なアプローチが必要です。私は彼女に少しのコードを見せて(詳細に説明しようとせず、「フロー」の極端な基本をカバーするかもしれません)、結果が何であるかを彼女に見せます。このような例ではHTMLでも機能します。次に、「毎日、基本的にそれを行います。数万行のコードと非常に大きく複雑なプログラムを除いて」と言います。

次に、プログラミングによってどのような問題を解決するのか、なぜそれを行うのが好きなのかを説明します。たとえば、「自分のコードがアプリケーションとしてコンピューターに命を吹き込むのを見るのが好きだから」、プログラミングが好きだと言います。


4

第一に、あなたはあなたが暴く必要がある競争を持っています。

映画、ポピュラーカルチャー、さらにはこの分野の人々(さらにはこの問題について)は、プログラミング(およびコンピューターサイエンス分野の大部分)をある種の魔法として描写しようとします。それは魔法ではありません。

プログラミングとは、単にタスクを記述し、それらのタスクを組み合わせて問題を解決することです。パラレルを見つけようとしている場合は、数学を使用してください。コンピューターは数学の先生のようで、すべての作品見せる必要があります。

物理的な観点から見ると、コンピューターはスマートではありません。コンピューターは、私たちが伝えただけの知識しか持っていません。そのため、コンピュータープログラマーが、たとえばCDから音楽を再生するプログラムを作成する場合、CDに保存されたデータの読み取り方法をコンピューターに伝え、そのデータを音波に変換し、最後に、それらの音波をスピーカーから出力する方法。

このアイデアを次のレベルに進めて、プログラミングがどのようにタスクを積み重ねるのかについて話を進めることができます。数学で代数を学ぶ前に算数を学ばなければならなかったように、より複雑なタスクを行う方法を教える前に、コンピューターに「基本」を教える必要があります。長年にわたり、コンピューター科学者とプログラマーは、コンピューターとの会話にはるかに近い「会話」を開始できるようになるまで、コンピューターの基本を十分に「教える」ことができました。

実際の生活に戻って、数学の先生は「15の3乗」を解くように言うかもしれませんが、「XのY乗」は次のタスクに分解されると以前に教えられていたので、あなたはそれを行う方法しか知っていません「XXで乗算し、Y回実行します」[技術的にはY -1回ですが、ええ。]

私たちは小さな物事の細部に焦点を当てる必要はありませんので、多くの実際の問題を解決するには、私たちの時間を費やすことができず、そんなにあなたの数学の授業のように、プログラマは「知られている」タスクの基盤を確立している方法を根本的に実行しますタスク-コンピューターが基本的なことを理解していると仮定できるようになりました。


3

私が9歳のときに夢中になったものをやります。C64をロフトから取り出して、次の操作を行います。

10 PRINT "YOU SMELL"

20 GOTO 10

(ありがとう、お父さん)。

それからその楽しみが終わったとき。彼女に数字当てゲームを見せます。はい、すべてベーシックです。コンピューターに指示を表示するために現代言語を使用する必要はありません。


2
良い。頭に釘を打ちます。本当にシンプルにして、楽しくしてください。BASICはそのために最適です。
マイクダンラベイ

1
同意しました。BASICは素晴らしく、GOTOは最初から最適な言語構成体です。私の最初のプログラムは非常に似ていました。
トマスアンドル

私はこれに完全に反対だとは言いませんが、C ++のプログラミングを数年するまでgotoについては知りませんでした。それ以来、私は人生で一度もgotoをタイプしたことはありません。良いことも悪いことも、私は判断しません。gotoは必ずしも必要ではないということを知ってほしかっただけです。
31eee384

3

Facebookのように彼女が日常的に行うことから始めて、ログインのような1つの単純な側面が非常に複雑になる可能性があることを彼女に説明すると役立つかもしれません。

ここからデータベース、アプリケーション設計、さらにセキュリティのいくつかの側面に分岐できます。これは彼女が持ち帰ることができる助けになります。

彼女に、「Facebookについて何か変更できることがあったら、どうなるか」と尋ねることさえできます。次に、どのように変更を加えるか、何人の人が関与するかを彼女に説明します。

私は最初にPascalをプログラムすることを学びましたが、私のプログラムが私の入力を受け入れ、それを台無しにし、別の何かを印刷したことに、私は皆興奮しました。私はそこから夢中になりました。一部の人々は簡単にラッチします。


Facebookを使用することをお勧めします。ありがとう@ client09
デクスター

2

私は、おそらく彼女がこの分野に興味を持たなければならないソフトウェアを開発する仕事の場所に行ったことを望んでいますか?

決まった答えはありません。彼女が知っていることを5〜10分間クイズします。


不明@Chris-ハイテク企業には、会計から人事、開発、コンサルティングまで、さまざまな役割があります。私たちは彼女に多くの異なる役割を簡単に味わっているので、この仮定を立てるとは思わない
デクスター

まあ、公平を期すために、あなたは会社の種類がなぜそうだったのか決して述べなかった。:p誰かがギターショップのプレースメントに行った場合、木材の弦楽器製作者であるよりもギターに興味がある可能性が高いと言えます。
匿名

2

高レベルで開始します。コンピュータープログラミングは問題を解決することだと説明するかもしれません。問題を取り上げ、マシンが使用して理解できる一連の命令として書かれたソリューションを考案することです。

難しい部分は15歳の女の子が面白くて関係があると思う例を思いつくかもしれません。そのような状況に陥ったことがなく、彼女を知らないので、私はそのために何を勧めるべきかわからない...「Hello world」プログラムやシンプルでグラフィカルなもの(ウィンドウに図形を描く、マウスを追跡するなど)。


私が作業しているコードの少なくともいくつかのサンプルを見せずに、誰かにプログラミングについて教えることはできないと思います
デクスター

@Dexter:30分後には、コードがどのように見えるかについて詳しく説明したいとは思いません。何も表示しないつもりはありませんでしたが、時間があまりないので、コードに焦点を当てる必要はないと思います。それは非常に乾燥して退屈になる可能性があります。可能であれば、アイデアや概念についてもっと話します。簡単に理解でき、興味深い興味深い簡単な例(10行未満かもしれません)を見つけることができたら、それを試してください!
FrustratedWithFormsDesigner

同意しましたが、簡単な第1章の例ではなく、開発したプログラムを表示し、その中の数行のコードを切り替えて結果を表示したいと思います。最終的には、私はプログラミングの方法を彼女に教えることができるようになりますが、おそらく私は彼女にもっと知りたいと思うように促すことができます。-
デクスター

2

これは、2、3回失敗し、2、3回かなり成功した後の私の見解です。

プログラミングは問題解決です。

インターネットブラウザー(facebook)、携帯電話、レジなど、毎日使用するようにプログラムされた具体的なものから始めます。多くの例を挙げてください。これらすべてのものに一種のコンピューターが搭載されていることを確認してください。コンピューターの心臓部はプロセッサーです。

プロセッサは非常に高速ですが、非常に愚かな労働者のようなものです。いくつかの指示を与えると、あなたの言うとおりにそれらを実行します。それは余分なことは何もせず、あなたがそれをするように命じた何かが間違っていたかどうかを教えません。ただし、このプロセッサはすべてを実行します。実行方法を正確に伝えると、電話をかけたり、電子メールに写真を入れたりできます。

ソーダマシンからソーダの缶を買うように非常に速いが非常に愚かな労働者にどのように伝えるか彼女に尋ねてください。彼女が手順の説明を始めると(「お金を機械に入れてボタンを押す」)、プログラムのように分析を開始します(「お金とは?機械に入れる方法は?機械にお金を入れて押すと同時にボタンを押しても、何も起こりません。」)。ホワイトボードを持っている場合は、最初の指示から左から始めてください。彼女がそれらを改訂するとき、新しい大きなリストを右側に配置します。適切な指示がある場合は、ピースの一般化を開始します(「ポケットからお金を取り出して、トレイからソーダを取り出します。似たような音がします。どの部分が同じか異なりますか?」)。そして、それらが包含している部分を交差させます。最終的には、関数呼び出しのような元の指示と一致するようにピースを結び付けてみてください。他の良い練習:手紙を郵送し、ドアを通って行き、円/正方形/三角形を描きます。

プログラミングは問題解決です。問題をパーツに分割し、共通のパーツを特定し、それらのパーツをグループ化して問題を解決します。すぐに、いくつかの部品が多くの問題に共通していることがわかり、部品をまとめて、自分が持っていることすら知らなかった問題を解決し始めます。

さて、この時点で彼女は理解できるかもしれませんが、おそらく退屈しているでしょう。一連のクールなプログラミング例でフォローアップしてください。シェーダーと関連するビジュアルコードは簡単にデモできます。非常に小さなコード変更で画像を作成し、変更を開始できます。彼女がFacebookに興味を示した場合は、RESTを介してFacebookと会話して、友人の友人(彼女の6度)のデータを表示します。ビデオゲームが好きな場合は、2、3のオープンソースゲームのデモと、コードのスニペットおよびそれらがゲームの動作にどのように役立つかを披露してください。最後に、自宅で調査できる無料のツールとリソースをいくつか紹介します。(Python、C#など)

私の失敗した試み:パイ計算を説明しようとして(彼らは尋ねていました)、C-Jumpボードゲームhttp://c-jump.com/(彼らはそれを取得せず、命令はバグがありました)、2dをライブコーディングしましたゲーム(デモの間にどれだけ小さなステップを踏んでも、興味を引くことができませんでした)。

幸運を!


2

簡単なプログラムを作成します。いいえ、「Hello World!」ではありません

私がしたいことは、ゲームを作成するもの、ロボットを制御するものなど、多くの種類のプログラミング言語があると言うことですが、あなたが作業するのはHTMLです。

何も含まれていないWebページを作成し、彼女のメールアドレスにメールを送信するフォームを追加します。彼女はおそらく、新しい電子メールがあることを所有者に通知できる携帯電話を持っているので、友人や家族が彼女に連絡するのに最適な方法であることを彼女に伝えることができます。将来彼女が自分のWebサイトを取得した場合は、フォームをWebサイトに配置して、顧客やビジネスパートナーが彼女に連絡できるようにすることができます。

あるいは、彼女が少しいたずら好きなら、私がプログラミングに興味を持った理由、つまりハッキングについてお話しします。当時、私はAOLをいじくり回すためにこれまでで最高のプログラムを作成しました(14から15歳のとき、私がやったことの数十のうちの1つだけで私のものよりも優れていた1つのプログラム以外)。ホワイトハット側では、最初のスパム除去プログラムの1つも作成しました(1995年)。オンラインエクスペリエンスをより楽しくすることができました。コンピューターでやりたいことはすべて冒険やパズルであり、それを把握しなければなりませんでした。コンピューターでやりたいことは無限でした。確かに、それを機能させることは頭痛の種でしたが、人間ができるよりも速くより良いものを達成するプログラムを書くことは、あるいは、一般の人々にとって単に不可能なことをすることは、誇りに思うような素晴らしい機械を作るようなものでした。さて、あなたは恐らく深刻なものから遠ざかりたいと思うかもしれませんが、起動時に起動できるもの(スクリーンまたはシステムトレイの横に座っている)をVisual Basicで作成することは非常に簡単です。彼女のお気に入りのWebサイト、彼女のお気に入りのプログラムなどを起動させることができます。exeとWebサイトを起動するために必要なコマンドを彼女に紹介し、ボタンを作ってからボタンにコードを追加するだけです。 、お気に入りのWebサイト(facebook、twitterなど)およびプログラム(iTunes、ワードプロセッサなど)を配置します。彼女のコンピューターが部屋にある場合、機能を追加するために目覚まし時計を投げることもできます。もちろん、30分では短すぎて彼女を通り抜けることができないため、既に完了している必要があります。最後に、2〜3ページのユーザーマニュアル、コード、および.exeを彼女にメールで送信し、少し売り込みを残します。最初は簡単ではありませんが、それをこつこつ、それはそれほど悪くはない、人生で非常に有用であり、彼女の分析的思考を開発するのに役立ちます。


2

私は18歳の大学生を教えていましたが、15歳の人もほぼ同じだと思います。練習せずに成功を期待しないでください。最初のクラスで「壊れる」には数週間かかりました。

私が学ばなければならなかった最大のことは、私が時間を埋めることができなかったのではないかと心配していたので、学生にとってはまったくそうではなかったと思ったことです。私はあなたが赤ちゃんのステップで行かなければならないことを学びました-そうでなければ、それはただの「ジーウィズ」マジックです。

30分でこれにどのようにフィットするかはわかりませんが、最初にしたことは、私が作った小さな自家製コンピューターを見せることでした。クリック間の遅延として機能するために、カウンターをデクリメントすることで音を鳴らすことができると説明しました。レシピのように、ボードに擬似コードを書いたところです。次に、ワイヤの下にフックできる小さなコンデンサがあり、全体が約1000倍遅くなります。その後、彼らはクリックを聞くことができました-待機-クリック-待機...その後、コンデンサーを外したとき、それは小さな調子で爆発しました。

これのポイントは、コンピューターが単純なことだけを行い、それらを一度に1つずつ行うことです。前の手順が完了するまで、各手順は開始されません。(ええ、ええ、私は知っています-パイプライン処理などすべてですが、私たちは初心者と話しています。)電子メールの速度だけで、一度にすべてを実行するように見えるようになります。 。それは、プログラミングとコンピューターを理解し始めることができない、非常に基本的な概念の1つです。私たちにとって、これは非常にきめ細かいので、私たちはそれを知っていることさえ認識していませんが、初心者はそれを知りません。


1

プログラミング言語ではないことは知っていますが、HTMLを開始するのに適していると思います。すぐに結果が得られるからです...

こんにちは世界

それから:

こんにちは<b> World </ b>

等。


1

私なら、プログラミングとは、タスクを小さなタスクに分割して、問題を解決できるようにすることだと彼女に言います。そして、これらの小さなタスクを、ばかコンピューターで誤解されない言語で表現します。しかし、他のプログラマも簡単に理解できるような方法でそれを行う必要があります。それは同じことではありません。

つまり、他の皆が言ったことに加えて...


1

これは、単純な「答え」というよりも私の個人的な経験です。

なぜ興味を持ったのですか? 私の両親は1984年にIBM PC XTを購入しました(私は1984年に生まれました)。640kbのRAMと20MBのHDD、5インチFDDを搭載し、MS-DOS v3.2を実行しました。5番目の標準になるまで触ることはできませんでした。それに蓄積された好奇心の。

一方、私の妹は、同じPCとQuadra 610マッキントッシュを必要なときにいつでも許可され、彼女はそれがセットされたテーブルに払ったのと同じくらいの注意を払った。

を教える...私はBASICで妹のコンピュータープログラミングを教えようとしました。コンピューターを起動してからプログラムを入力して実行するまで、私は彼女にあらゆることをさせました。それはラインプログラムとしてでした。

10 PRINT "CAT"
20 END

これには30分かかりました。彼女が最終的にそれを実行したとき、それは単語「CAT」を印刷し、彼女は激怒しました。彼女は猫の写真が現れると思っていました。彼女は部屋から飛び出し、それは永遠にプログラミングの終わりでした!

道徳:アウトプットは、彼らが費やす時間と努力に比例するほうがよい。

高校生のLabviewとLego NXT教える 1年間、最初のロボティクスの指導者であり、NI Labviewでロボットのプログラミングを指導する必要がありました。率直に言って、必要なプログラミングスキルは高校生のレベルをはるかに上回っていました。しかし、競争は子供たちに工学に興奮させ、挑戦する能力の水準を上げることを目的としていました。プログラムにifステートメントと1つのループがある限り、問題はありませんでした。私たちが昨年構築したロボット用に作成したコード図を見たとき、人々はロボットのプログラミングセクションから脱落しました。

15歳の人は複雑なことをすることができ、何時間も注意を払うことができると人々が述べているのと同じくらい、そうするための意欲の奇妙な欠如に気付きました。彼らは脳に負担をかけない簡単なことをしたかったのです。彼らは、プログラムを書くよりも、旋盤でCADやフライス盤を使うことを好んだ。


1

CSとは何ですか?

デモに入る前に、CSの世界での位置付けを簡単に説明すると役立つと思います。私はHal Abelsonの数学に関するCSの説明が好きです。数学は法律の観点から世界を説​​明するのに役立ちますが、CSは物事のやり方を説明するのに役立ちます。彼の例は平方根関数でした:数学はそれを定義しますが、与えられた入力に対してそれを見つけるのを助けません。CSがします。下位レベルでは、電気工学と物理学がインターネットを可能にするハードウェアの基礎を築きましたが、それを人々に利用させる方法についての疑問を残しました。

プログラマーになるのはどうですか?

次に、プログラマーになるのはどういうことかという疑問があります。私を惹きつけたのは、他のどの技術分野よりも、試行錯誤、テスト、修正を迅速に行えることです。他のフィールドでは、1つのループの所要時間は数か月になる場合がありますが、それは問題の解決につながります。また、他のほとんどすべての技術分野にも言えることです。これは、他のほとんどの技術分野で言うことができる以上のものです。そのため、まだ何をしたいのかわからない場合(可能性が高い場合)、早く上手になるのは良いことです。大学では、実験をコード化できるよりも多くの教授にとってあなたをより便利にするものはほとんどありません。

目を楽しませる、コードに縛られて

それからもちろん、デモを忘れないでください。たとえば、地震のコピー(オープンソース)を入手して、1行の変更(重力の強さの変更など)を行い、再コンパイルするのはクールかもしれません。また、彼女にコードを見てもらいます。彼女はあまり理解することを期待していないことを彼女に安心させてください、それは今ではちょろちょくのように思えるかもしれませんが、再び、彼女がまだ学んでいない外国語の新聞もそうです。それにもかかわらず、彼女は物事が物事に割り当てられていること、物事が何をすべきかを教えられていること、そしてここで重力を設定することなどを見ることができると言うことができます。


1

プログラミングを始めたのは14歳でした。ほとんど(入学した50人の学生のうち47人)が年の途中で中退したか、来年は上級コースに進学しないことに決めましたが、私はそれにこだわって非常に重要なことを学びました:

プログラミングにより、何もないところから何かを作成することができます。あなたは、言葉をあなたのニーズを満たす便利なツール、あなたとあなたの友人のための楽しい活動、またはあなたの友人に見せて「私がしたことを見てください」と言うことができる何かに変える力を持っています。

最初は「Hello World」と教えられましたが、ユーザーとコードをやり取りできるようになるまで興味がありませんでした。「cin」で入力を読むように教えられた瞬間、私はクラスでプレイできるMad-Libプログラムを作成しようとしました。最初のハードルは、スペースを含む入力を読み取り、その後に出力をフォーマットすることでした。後で、これらのストーリーをファイルに保存できるようにしたかったので、ファイルIOを学習する必要がありました。自分の目標を達成するために障害に取り組むことが、私を引き付け続けたものです。

その年の後半に、ネットワーク管理者が、「Net send」およびコンピュータークラス中に通信するために使用していたNovell SendMessageクライアントの使用をログに記録していることを発見しました。そこで、管理者が無効にしたチャットルームを置き換えるチャットルームを作成しました。それは私が作成した最初の本当に有用なものでした。Battle.Netのチャットシステムをモデルにし、ユーザー登録、モデレーター、さらに基本的な暗号化とシャドウファイルシステムを備えて、ユーザーが改ざんされるのを防ぎます(すべてのファイルは、学生がプログラムへのアクセスと使用)。これらは私がすでに知っていた概念ではありませんでしたが、問題を解決するために自分で考えた解決策です。私にとって、それはプログラミングの喜びでした。

したがって、ソフトウェアを開発することの意味を議論する以外に、質問に適切に答えるためには、おそらくインタラクティブなデモは素晴らしいアイデアです。できれば、カメラの巨大な写真をすべて自動的にサイズ変更するなど、彼女が抱えている問題を解決するものが必要です。もう少し複雑ですが、彼女は友達と共有できるシンプルなメッセージを残すウェブページを楽しんでいるかもしれません。新しいメッセージが投稿されるたびに誰かにメールを送信し、コードを編集して自分のメールではなくメールに送信させることができます。また、ページに最後のX個のコメントを表示し、その数も調整してもらい、結果を確認してもらいます。


1

私がかつて働いていた場所では、子供たちがやってくる仕事の経験がありました。コンピューターに興味のある人もいれば、そうでない人もいました。私たちは彼らをコンピューターの前に座らせ、推測ゲームを書かせました。(コンピューターはランダムに数字を選択し、推測が高すぎる/低すぎる場合にユーザーからフィードバックが得られます。)これは簡単で、本当に楽しい結果です。彼らが作成できるものを具体的に示すことほど強力なものはありません。


1

誰かの注意を引き、そして維持したいときは、ASKに言わないでください。水を飲むなど、簡単なタスクをどのように実行するかを尋ねます。次に、提供された指示(「ホールを降りる」など)に従って、左折、右折、停止などの問題を実際に処理しない方法を示します。これらの境界条件の理解と処理、それがビジネスです。プログラミングの!次に、「do-until」ループが「壁に着くまで歩く」ような状況をどのように処理して、他の1フィート前のタスクからメタタスクを作成するかを示します。ウォーキングの。


1

これが伝説なのか本当の話なのかはわかりませんが、ある日ラッキースティッフの理由を読んでいました。物語の一部は、彼が電車で出会った子供(あるいは子供も)にプログラミングを見せた方法でした。
ご存じの方もいるかもしれませんが、_whyはRubyの男でした(Rubyは、普通の人間にとって非常に友好的です)。彼はRubyでいくつかのゲームに取り組んでいたが、何人かの子供が彼に近づいて彼が何をしているのかを見ていた。彼は最初に結果を示した-作業ゲーム。その後、彼は、結果を変更するためにコード内の物事を変更する方法を子供に示しました。それから彼は子供にコードを遊ばせ、変更された結果を見てもらいました。
結果、修正、プレイ-それがあなたの一般的なワークフローであるべきだと思います。人間にやさしい言語でいくつかのプロジェクト(ゲームが最適です)を見つけて、子供に見せてください。

悲しいことに、この話が真実かどうかはわかりません。まだとてもクールです。

また、もう1つ。MessageBoxDelphi でのプログラミングの最初の経験を覚えています。コンピューターに自分のやりたいことをさせて、すぐに結果を見ることができたので、それはクールでした。
その後、マイクロコントローラが登場しました。私のコードは現実世界を変えることができるので、それらはさらに優れていました。つまり、変数に値を割り当てると抽象的でなくなり、出力ポートに電圧が表示され、エンジンが動きました。かっこよかった。この方法を選択できます-Arduinoのような子供に見せます。

おわかりのように、結果を変えることと見ることがすべてだと思います


0

あなたがしたことのいくつかの最終結果を彼女に見せてください。一般的に、プロジェクトでのあなたの役割について話してください。もし彼女が興味を持っているようなら、彼女がハローワールドをするのを手伝うかもしれません。


0

私のプログラミングの好きな例えは、悪魔のような魔法(ハリーポッタースタイル)です。私は子供だけでなく非技術的な仲間にもこれを使用します。それはかなりうまくいくようで、コンピューターが私たちに与える力を確実に伝えます。

コンピューターは私たちの魔法の杖です。手首と呪文の正しいフリックが与えられれば、魔法を実行することができます。プログラマーとして、私たちは前任者によって機能し洗練されたスペルブック(ライブラリ)にアクセスできます。新しい呪文や呪文を作成したり、既存の呪文や呪文を扱うことができます。いくつかは簡単で、いくつかは実際に効果的に使用するためにもっと練習する必要があり、多くの場合、トレードオフと同じ問題を解決するための多くの異なる方法があります(良いポーションや呪文を使用する必要がありますか?)

この拡張されたメタファーは、実際にうまく拡張でき、多くの場合、プログラミングに対する私の情熱を現場外の人がアクセスできる方法で伝えることができます。


0

子供を理解する最善の方法は、最初に子供になることです。子供の頃、私は宿題や面付けなどをするのが嫌いでした。あなたが彼らの注意を引くことができるエントリーポイントがあります。すべてを説明することはできませんが、30分間で、興味のある子供たちがインスピレーションとしてそれを見つける一種の露出を与えることができます。宿題などの関連トピックから始めます。コンピューターがほんの数秒で面付けを書く方法などを伝えます。

あなたの人生に幸あれ.. !よくやった

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.