パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

12歳から始めるプログラミング、何からスタートすべき?」記事へのコメント

  • つまり、生の機械語とアセンブラから。
    何事も基礎が大事です。
    最初は、こんなの [otonanokagaku.net]を与え、概念を「体験」させます。
    つぎに、本番 [otonanokagaku.net]と田宮のリモコンロボット製作セットを渡します。
    (インタフェース部分は大人が作ってあげないと無理なので、そこは各自で工夫を)

    目の前で「プログラムの通りに実物が動く」ので興味が長続きすると思うのです。
    --
    notice : I ignore an anonymous contribution.
    • 自分も機械語から始めたんで、壁と言われてるCのポインタもアッサリ通過だったから、後を考えるとコレが良さそう。

      --
      the.ACount
      • > 壁と言われてるCのポインタもアッサリ通過

        私も今振り返ると、あっさり通過してしまったのですが、
        当時は概念的にあっさり理解をしてしまっていたので、
        なぜポインタが壁なのかが理解できなく、
        もしかしたら、他に自分では気づいていない壁があるのではないかと、
        存在しない壁を探し回って逆に苦労しましたよ。。。

        • 私も機械語から入ったので、ポインタの何処が難しいのかまるで分からなかったですよ^^

          親コメント
          • by Anonymous Coward

            Cで難しいのは、ポインタの概念というより表記法でしょう。
            pが指す先を*pで表記するのはわかる。でもポインタを宣言する時は
            char *p
            とするわけで、「これはpが指す先を宣言するわけだから…」と考えて
            わけがわからなくなった記憶があります。

            • by Anonymous Coward
              >char *p
              >とするわけで、「これはpが指す先を宣言するわけだから…」
              「pが指す先」なんて、どこにも宣言していません。まずはそこからか!

              a*bと*pの*が同じじゃないことを理解できる?、
              じゃあ、char*pと*pと(char*)pの*は区別できる?
              区別できれば、意味が違うことも理解できるでしょ?

              もしかして、/*p*/の*も区別できないのか :-p
              • by Anonymous Coward
                いや、心配していただかなくても今は理解していますよ(-: でも習い始めた当時はそういうことが全く わかっていませんでしたね。
              • by Anonymous Coward
                ああ、これはありますね。C言語習いたての人がやる勘違いとして
                char *p;
                でポインタが指す先の領域も確保されると思っている人が多いのですが、
                (驚くべきことに、90年代にはそう断言している本すらありました)
                その半数ぐらいがこの文法の勘違いに起因しています。良く考えると
                なぜこういう体系になっているのか分かるのですがね。

                >a*bと*pの*が同じじゃないことを理解できる?
                私はこれが理解できませんでしたね。いや、理解はしていましたが
                「人間がそう区別してコードを書いても、機械がどうやってそれを判別するんだ?」
                という感じで。その後、レキシカルアナライザーやらの存在を習って、ああ
                そういうことなのかと感心しました。

                char *p;の勘違いをしている人の一部は、やはりそういう疑問を持っていましたね。

未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー

処理中...