プログラミングを独学したい11歳におすすめの入門書は? 171
ストーリー by headless
独学 部門より
独学 部門より
eggy 曰く、
本家/.記事「Ask Slashdot: Best Book For 11-Year-Old Who Wants To Teach Himself To Program」より
11歳の息子がプログラミングを独学したいと言っていますが、何かおすすめの書籍はありませんか。私が探した限りでは、どれも指導者や理論的知識が必要になりそうです。頭のよい子供ですが、適切な入門書かどうかで学習結果に大きな違いがあるでしょう。また、どのプログラミング言語から始めればいいですか。私が高校生のころはBasicやPascalでしたが、今ならCでしょうか。息子にはUbuntu boxと旧型のMacBook Proを使わせています。
プチコンと関連書籍 (スコア:5, 参考になる)
今なら、断然DSiウェアのプチコンmkIIがお勧め。
子供なら誰でも持ってるDSiに、わずか800円でBASIC環境が手に入る。
電源ポンでBASICが動いて、(紛らわしい)マルチウィンドウとかも無い。
基本部分を学ぶのには十分で、しかもカラーグラフィックもスプライトも
利用可能でゲームを作れるとなれば、子供の興味を引くにはもってこい。
QRコードで、歴戦の勇者が公開してるプログラムを取り込んで参考に
してもいいでしょう。もちろん、自分で創ったものを公開して、意見を
仰いでもいい。
関数がないとか、変数が全部グローバル変数って辺りが問題?かも
しれませんけど。むしろ初学者には、変数のスコープで悩まなくて
いいんじゃないかと思ったりします。
# と、書いてますが。何より、自分が楽しんでます。プチコン
Re:プチコンと関連書籍 (スコア:3, 興味深い)
手軽に持ち歩けるDSiで動くので、創ったものを友人らに見せやすいのもいいですね。
出来合のよくできたゲームが沢山出回るこのご時世ですが、自分で創ったちょっとしたゲームでも友人らと盛り上がれると思います。(出来次第ではありますが。)
私がポケットコンピュータをいじっていた頃は初代ゲームボーイが流行っていた頃で、既に据え置きではファミコンやスーパーファミコンが世を席巻していた頃でしたが、自作ゲームや打ち込んだゲームでスコア争いするぐらいには盛り上がりましたので、たぶん今でも大丈夫。
ソフトウェアキーボードでプチプチ打つ必要があるのは難ですが、mkIIでは予約語の入力補完のおかげでだいぶ楽になりました。
mkIIで追加されたTALKコマンドは、それでなにか喋らせるだけでも結構楽しくて、ちびっ子受けは良さそうです。
Re:プチコンと関連書籍 (スコア:2, 興味深い)
むしろ汚いのを経験した方が綺麗な構造化がなぜ必要なのかを理解しやすいかも。
そしていつか、ガチガチの構造化よりも適度なGOTOがプログラムをすっきりさせ得ることを学ぶと。
codeacademy.com (スコア:4, 興味深い)
・無償
・どのOSでも利用可能
・開発環境インストール不要
・対話的に学べる
ので子供でも独学しやすそう。言語が JavaScript というのは最高とは思えないけど、比較的無難な線だとは思う。codecademy を長期間使ってみた人がいたら、ぜひ感想を。
どうしても書籍でというのなら、個人的にはProgramming in Haskell [amazon.co.jp]で入門して頂いて、ぜひ反応を伺いたい。関数の概念を理解できる11歳に限られるけど。
すべてが載っている本 (スコア:4, 興味深い)
高校生の時、独学でプログラムを勉強すべく
なけなしの小遣いで初めて買ったC言語の本に構造体が載ってなかった。
他にも標準関数などの扱いは「おまじない」扱いだった。
おかげでプログラムリストが載っている本を見ても理解不能なキーワードばかり。
比較検討できる他の本を持っていなかったので、ここでプログラムを諦めてエロゲーに走ってしまった。
前提知識を持たない人に対する独学のための参考書は、まさにリファレンスとなる、すべてを網羅してある本が必要だと強く感じた。
#今でも作者都合で難しいキーワードを「おまじない」と称する参考書は絶対に買わない。
#理解できるかできないかは自分で決める。
Re:すべてが載っている本 (スコア:2)
趣旨には賛同するんですが、
今時の言語だとライブラリが事実上言語の一部になってたりするので、
全てを網羅しようと思うと非現実的な厚さになっちゃうのが難しい所かなぁ。
たぶん調べ方を書くのがいいんでしょうね。
Cの絵本 (スコア:3)
http://goo.gl/OoJmO [goo.gl]
「興味を持つきっかけになる本」って評価されてるから、もしかするともういらないかもしれないけど、まったくプログラミングをやったことない人がとっかかるには丁度いいかもしれない。
Re:Cの絵本 (スコア:2)
意に反して開発部署に配属されてしまい、本当は興味なんて全然無いのに、せめて興味を持てたらなあ……と嫌々ながら書店でその本を手に取る新人が目に見えるようだ。
Re:Cの絵本 (スコア:2)
Cの絵本だけじゃなくて、Haskell の絵本 [amazon.co.jp]もよろしく! 無償 Web 版 [learnyouahaskell.com]もあるよ。表紙はかわいいゾウさんだよ!
Re:Cの絵本 (スコア:1)
Amazonにならそれがないとでも?
Re:Cの絵本 (スコア:2)
でもな、
(参考文献: http://amazon.co.jp/dp/406336674X/ [amazon.co.jp])
悪意云々とか言うから揉めるんだよ……。そのとおりなんだけど、この場合それを言っちゃダメなんだよ……。「短縮URLは不要。短縮URLにはフィッシングやブラクラの恐れもある」って言えばそれでいいじゃん。
ちなみに、上記の通り http://amazon.co.jp/dp/**********/ [amazon.co.jp] でリンクできるので、短縮URLは不要でござる。( 参考: http://bizmakoto.jp/bizid/articles/0805/13/news065.html [bizmakoto.jp] ) しかも、スラドは文字数規制が厳しくないので、長いURLでもべつに問題ない。短縮URLが必要になるのは Twitter のように文字数規制が厳しい場合に限られるね。
何も薦めない (スコア:3, すばらしい洞察)
自分が子供の時は、周りにパソコンのパの字も無い環境でした。
「ゲームを作ってみたい」から始まって、何がいるのか・何を覚える必要があるのか
自分で全部調べてパソコンを買ってほしい、と親を説得して…
やる気や才があるなら、自分で見つけてくるもんだと思ってます。
自分で方法を選んで、失敗するのも貴重な経験です。
Re:何も薦めない (スコア:3, すばらしい洞察)
まったくもって正論ではあるんだけど、対象年齢によっては少々結論が変わるので注意が必要かな。
ここに出入りしているような人は自分自身で興味を持って自ら勉強したって人が多いだろうけれど、そこに至るまでに色々興味を持てるような環境をお膳立てしたりする親や教師の役目はそんなに小さくないんですよ。小さいうちにいろんなものに接しておくことで引き出しを多くし、学ぶことの楽しさを知っておくと、大きくなってから自ら学ぶことも容易になるんです。
今回の場合、11歳というのはその閾値としては微妙な年齢だし個人差もあるけれど、少しは親が手助けしてやってもいい年齢ではないかなと思う。
Re:何も薦めない (スコア:2, すばらしい洞察)
この手のストーリーは頻繁に立つけど、これに尽きるよなぁ。
自分から動こうとしないなら向いてないか口だけでそこまで興味ないんだと思う。
Re:何も薦めない (スコア:1)
全く以て同意
「学ぶことを学ぶ」ってことをしないと脳みそはスポンジじゃなくて豆腐になっちゃうよね。
// 言葉として漫然漠然としてる「やる気」を 具体的な感覚として教えなきゃ。
// 初心者にとっての入門本なんて所詮きっかけに過ぎないから何でもいい。
// 自分が得意なのを教えるとハッピーだと思われ(:>^
Re:何も薦めない (スコア:2)
出会いって結構運もあるので、自分で見つけてきたものが例えば PHP の入門書だったり
しないようにしてあげたりはしたいなぁ。
独学? (スコア:2)
独学するってんなら、干渉していいのはせいぜい
「どの環境でやらせるのがいい?」までじゃないだろうか。
機械語と戯れろ (スコア:2)
11歳ならゲーム改造系のオモチャで遊びつつ、プログラムがどう動くかの根幹に触れればいいんじゃないか。
#今の時代だと、ネトゲ改造はやめとけ、とか倫理面での教育が先に必要かな
書店でパラパラ見ながら選ぶ (スコア:2)
人によって合う・合わないはあるし、自分で見て選ぶのが一番いいと思うけどなぁ。
知識のない人が見ても良書かどうかは分からないと思うけれど、(相当アレなトンデモじゃない限りは)読みやすいと感じるものが一番だ。
トンデモ引くのが嫌なら、Amazonで相当低い評価がついていないかどうか確認するといいかもね。
どうせ、1冊目の本なんて踏み台に過ぎず、ある程度分かってきたらあとはWebで探すなり、コミュニティで質問するなり、自分で良書か見極めるなりできるようになって、得られる情報は一気に増える。
入門書なんてのは、その基本的な部分ができるようになるまでの手助けでしかない。
# できるようになってから1冊目の本を読み直して「この本、こんなにクソだったのか」と思うのも一興。
1を聞いて0を知れ!
30年前 (スコア:1)
自分が8歳9歳のころ初めて手にした「マイコン入門」はお約束のように導入が2進数の説明からで
当時小学生の自分には難しすぎたがわからないなりに一生懸命何度も何度も読んだ
そんな時代に登場した「こんにちはマイコン」の衝撃といったら…
Re:30年前 (スコア:2)
高橋はる美どこいったっけ
Re:30年前 (スコア:2)
私も同じように30年前、8歳のころにMZ-2000を買ってもらい、当時流行ってた(?)『マイコンベーシックマガジン』を毎月買ってもらってBASICをいじってました。
BASICは他の言語より親しみやすく簡単で楽しかったのを覚えてます。
参考になる本はお勧めできませんが、その子に成功体験をつませてあげるのが良いと思いますよ。
本を見ながらでも入力して、プログラムが動いた時の感動は今でも忘れられません。
最初の何ヶ月かは、SAVEすることを知らずに、入力したプログラムは電源消すと消えてしまうものだと思ってましたがw
ガキの頃、家から40分かけて自転車で電気屋まで行って、知ってるお兄ちゃんつかまえて教えてもらったりしました。 身近に「いつでも聞ける人」がいると、その子も伸びるんじゃないかな。聞ける人がいなければ、お父さんがその役目を。頑張りましょう。
・・・ピーギャラギャラのテープが懐かしいす。
プログラミン (スコア:1)
言語仕様は一旦置いておいて、アルゴリズムが必要ということを理解しておいた方が良いと思うのでプログラミン [mext.go.jp]を推す。
マウスで動作を表すオブジェクトをドラッグ&ドロップで簡単なアニメーションが作れる。
# SlashDot Light [takeash.net] やってます。
Re:プログラミン (スコア:1)
本家のコメントにはScratchがあって安心した。
Squeakは? (スコア:1)
Squeakはどうでしょう?
友達 (スコア:1)
俺らの頃はマイコン…ナイコン友達がいて、みんなでわいわいやっていたのだが
うちの子の場合 (スコア:1)
Re:うちの子の場合 (スコア:1)
>システムインテグレーションや、もっと本質的な人間とのコミュニケーションを学んで欲しいですね。
どちらも組める事が前提で初めて意味を成すと思いますけどね。
せめて、開発用の言語や製品で何が可能で何が不可能なのかぐらいは認識して設計してくれと常に思っていますんで。
#後輩にもよく言う事ですが。単に口が上手いだけなら、営業に行ってくれと。
通知の設定いじったから、ACだとコメントされても気づかない事が多いよ。あしからずw
Scratchはどうでしょう? (スコア:1)
うちの子がとあるワークショップで体験してきたのですが、言語を構成するパーツを並べるだけで結構いろいろできて楽しいようです。
#プチコンもやってますけど、本人曰く「こっちの方が簡単」だそうで。
Verilog-HDL (スコア:1)
とりあえず、下から。比較的簡単で、C言語にも進み易いですしね。
「本家」の国だと… (スコア:1)
Re:デスマ (スコア:3, おもしろおかしい)
プログラマに限っては、自分がやっていることを勧める人を見たことがない。
Re:デスマ (スコア:2)
ほんっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっっとにそうだよな。
見たことないわ。
Re:デスマ (スコア:3, すばらしい洞察)
こういう意見ここではよく見ますけど,乱暴に言えば「バカじゃないの?」と思っています.
プログラミングを覚えるとSEになってデスマにはまるしか未来の選択肢がなくなるなんてことは全くありません.
私自身毎日コードを書いて生計を立てていますが,SEとは無関係の仕事ですし,コード自体を売っているわけではなく,自分の書いたプログラムで出力された分析結果を売っています.
現代社会においては価値の高い仕事は殆どすべて論理的な思考と大量のデータを解析する効率性が求められます.これを紙と鉛筆でやれというのは時代錯誤で,たとえ商用のパッケージソフトを使ってデータを入力するだけでも,その元データの整形やサンプルデータの生成,結果の妥当性の検証などでプログラミングができて損なことは何一つありません.
もちろんそういう専属スタッフを雇えるほどまで地位が高かったり経済力があれば別ですが,そんな人はごく一握りでしょう.
今の時代,たとえ事務作業でもアルゴリズムを理解し定型処理をマクロなりスクリプトなりで処理することは現実的なタスクで,「SEになるな」は先輩からの有りうるアドバイスだとしても,「プログラミングを学習するな」は「算数なんてやめちまえ」と言っているのと大差ない,無知な言明です.
Re:デスマ (スコア:1)
フローにすると
11歳がプログラミング言語覚える話
↓
ろくなことにならない(#2135984) ←SEの境遇の暗示
↓
他の業界に行ったほうがいい (#2135984)←ここで話が職業プログラマになる前提の話に固定
↓
こういう意見ここではよく見ますけど,乱暴に言えば「バカじゃないの?」と思っています. (#2136028)
↓
だれもプログラム言語覚えたらもれなくブログラマになる、なんて言ってやしません。 (#2136112)
はい、別人ですがちょっと流れを読んでみました。
Re:デスマ (スコア:1)
逆に言うとプログラミングという手段を持たなければ専門知識に裏打ちされた素晴らしいアイデアも絵に描いたモチになってしまうということですね。
Re:デスマ (スコア:2)
じゃぁ何がいいんだって話は置いといて・・・
電気工事の下請けとか大工の下請けはプログラマ以上に薄給で忙しい現状もありますから。
要するにもっと酷い仕事もいっぱいあって、全体から見たらプログラマは中の中くらいなんじゃないかという印象有り。
Re:求めよさらば与えられん (スコア:1)
本人が何故プログラミングしたいかと思ったかを掘り下げたほうがいいですよね。
それで、目的にあった言語を紹介したほうが良いかと。
Re:HTMLから (スコア:2)
前にも似たような「最初に触るプログラミング言語はなにがいい」みたいな
トピックがありましたが、やはり JavaScript がベストオプションだと思います。
ブラウザで動かす限り、ローカルファイルに触れないというのも、いいではないですか。
間違って変なコード動かしてファイル消してしまうこともない。
コンパイルしてできた exe ファイルを、他人に実行してもらうおうにも厳しいでしょう(笑)
Re:HTMLから (スコア:1)
>間違って変なコード動かしてファイル消してしまうこともない。
むしろ間違ってそんなことが起きてしまう言語・環境の方が興味があるんですがw
とても私はjavascriptがベストだとは思えません。むしろ避けるべきとすら思えます。
http鯖をたてるのは必須ですし、場合によっては各サービスのチューニングも必要です。
(なぜならブラウザ、設定によりますが、ローカルのファイルを読みに行けないことがあります。親が代わりに立ててもいいですけど)
ブラウザごと、バージョンごとに挙動が変わってしまうのも宜しくないかと。
本に載ってることと違っていたり、サンプルがまるで動かないなんてこともあり得ます。
昨日までは動いていた物が、今日のセキュリティフィクスのおかげで動かなくなりました、なんてこともあります。
それに今でこそ、開発ツールも充実してきていますが、デバッガが優れている物、デバックしやすい環境・言語も重要でしょう。
それと、javascriptのコーディングスタイル・ルールはかなり自由なので、他人のコードが読みにくい、読み慣れない形で書いてある->参考に出来なかった なんてことがあり得ると思います。
また、javascriptは1スレッドしか動かない、しかも永遠と拘束し続けられないという制約がありますから
コールバック関数を渡しておいて非同期に処理するということがよくある(むしろほとんど)です。
こういうコードはどういう順番で実行されるのか分かりにくいですし、ぶっちゃけ初心者中学生にはお勧めできません。
どういう理由があってjavascriptがベストだと思った、初心者向きだと思ったのか教えてください。
Re:HTMLから (スコア:2)
言語によって、他人のコードが読みやすい、読みにくいというのは、私はあんまり信じてないです。Fortran、アセンブラはたしかに厳しい(笑)しかしながら、JavaScript についていえば、読みやすく書くことはできます。どんな言語でも、間違った書き方をしたコードは読みにくい。言語仕様の縛りがしっかりしてれば、自動的に正しい書き方になるとは、私は考えません。
最近のプログラミングスタイルとして「文字列をキーにした値」をともかく楽に扱いたい、というニーズが高いとおもいます。シンプルなhttpリクエスト、NOSQLみたいなことで。JavaScript はそういうスタイルにマッチしてます。Java は、値を格納すること一つでも、無用に長いアクセサメソッドいっぱい並べるスタイルです。あれはあんまりよくないと思います。近年のニーズに合ってない。
Re:HTMLから (スコア:2)
コンパイラやバージョンで挙動が違うのは他の言語もそうだと思いますけどね。
開発ツールが今充実してきたならもう問題ないんじゃないかと思います。
マルチスレッドとコールバックどちらがわかりにくいかというと、どちらもわかりにくいので、
初心者向けの段階で触れるのがそもそも違うんじゃないかなぁ。
あと、ここでは述べられてませんが、JavaScriptの言語仕様がダメっていう人は、
単にプロトタイプベースのオブジェクト指向言語を知らないだけなケースがほとんどな気が。
# いや、確かに function が長いとか、標準ライブラリがミニマリズムで使いにくいとかはありますが
開発環境が簡単に手に入って、ぼちぼちまともな言語仕様で、
結果がすぐ目に見えるってのはいいと思うんですけどね。
Re:HTMLから (スコア:1)
なんで javascript に サーバが必要だと思ったのかにも興味がある。
Re:HTMLから (スコア:1)
全然要約になってないし、的確でもない。単なる「フレームのもと」。
JavaScriptが良くないのは言語仕様として良くないから。
特に初心者は、何が良くて何が悪いのかも分からないからね。
Re:HTMLから (スコア:1)
>特に初心者は、何が良くて何が悪いのかも分からないからね。
となると、Pascal辺りでも扱わせますか?
煽り抜きで、学習目的だけなら評価出来る言語だと思う。
ガチガチ過ぎて、その内、嫌になりますが、そしたら、他の言語に行けば良いだけの話。
#個人的には、JavaScriptの「何でも有り」な所は好きですがね。
通知の設定いじったから、ACだとコメントされても気づかない事が多いよ。あしからずw
Re:バカ (スコア:2)
参考: http://www.toyama-cmt.ac.jp/~kanagawa/language/politefiction.html [toyama-cmt.ac.jp]
しかもあなたは日本人が持つ謙遜の美徳を誤解している。
謙遜は自分の謙虚さを示すものであって、他人に求めるようなものではない。
Re:用途 (スコア:2)
Javaでオブジェクト指向を習得してからObjective-Cに移っていくのでしょう
凄いめんどくさいコードが出来そうな気がするけど
Re:ウイルスを読め。 (スコア:3)
「俺よりすごいコードを、読みに行く」
#10年くらいしたら大変なことになってそうだな
Re:ウイルスを読め。 (スコア:2)
Google Code Jam に挑戦するなんて目標があるといいかもしれませんね。
日本語サイトができてから見てみたのですが、結構いい設問だったりします。
#今年はちゃんと参加したいな
#存在自体がホラー
Re:2X年前、11才のとき (スコア:1)
どこにぶら下げるか悩んだけどここに。
K&Rとかプログラミング言語Javaとかプログラミング作法とか、そんなのでいいと思う。
そういうのを見てワクワクしないような人がプログラマになっても、楽しくないし
成長もしないと思うから。