- ベストアンサー
ホームページや書籍などのサンプルコードは動かないものばかりでしょうか?
ホームページや書籍などのサンプルコードを試して動かしてみても、動かないサンプルコードばかりだと思いますが、同じことを考えている人はいらっしゃいますか? 何か…ホームページや書籍などのサンプルコードが動かないということは、そのサンプルコード自体の問題というよりは作者の問題と思いますが…。なぜなら、1件のホームページや1冊の書籍で、このサンプルコードが動かなければ別のサンプルコードが動かない可能性が高いです。逆にこのサンプルコードがちゃんと動くということは、他のサンプルコードも動く可能性が高い。経験談で感じた限りです。 要するには作者の解説力次第になりますと思いますが、どうでしょうか?どんな簡単な言語でも解説力がなければ取っ付きにくく、どんな難しい言語でも解説力があれば取っ付きやすいものでしょうか? 何か解決法とかありますでしょうか?ご回答をお願いします。
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
ちょっと抽象的かも、です。 >ホームページや書籍などのサンプルコードが動かないということは、そのサンプルコード自体の問題というよりは作者の問題と思いますが…。 それは「あり得ます」。 ただし、その前に自分の環境をチェックした方がいいでしょう。 ヴァージョン違い、なんてのは他のお方が仰ってる通りなんですが、他にも原因は色々と考えられると思います。 基本的に、一概にプログラミング言語と言っても、 1.提供元が一つしか無いもの 2.公式規格が制定されているもの の2種類があります。 例えばC#なんかはMicrosoftしか提供元が無い言語がありますし、最近流行りのスクリプト言語系(Python、Ruby等)も提供元が一つしかありません。こう言う場合はヴァージョン違いだと動かない可能性がありますね。他のお方が仰っているように、使用してる言語のヴァージョンをチェックした方がいいでしょう。 じゃあ、2番なら安心か、と言うとそう言う事もないのです。 例えばC言語なんかは公式規格があったりしますが、かと言って、通常は「公式規格に則って」作っただけの言語なんてのも無くって、大体その提供側独特の「拡張ライブラリ」が入ってたりするんです。 つまり、A社が提供した「拡張ライブラリ」を利用したプログラムを「B社製の」一応公式規格に則った言語で書いても動かない場合があるんです。「拡張ライブラリ」自体は独特なんで、B社が同じモノを付けている、とは限りません。そう言う場合があるんですね。 まあ、そう言う事が(しばしば)生じるんで、何らかのサイト/参考書を利用してプログラムの勉強をする場合は、なるたけその筆者と「同じ環境を」備えるようにした方がいいです。作成者自身も「全部の環境を」試せるワケではない、と言う事を最初に納得しておくべきだと思います。 >要するには作者の解説力次第になりますと思いますが、どうでしょうか? >どんな簡単な言語でも解説力がなければ取っ付きにくく、どんな難しい言語でも解説力があれば取っ付きやすいものでしょうか? 一理あるとは思います。 が、同時に「言語の性質」ってのはありますね。解説力があってもそれを埋める事は難しいでしょう。 これ言って良いのか悪いのか分かりませんが、原則、書籍を購入して勉強する場合は「定番で」「評価の高い」書籍を選んだ方が、万能では無いですけど「失敗する確率は低い」とは思います。やっぱ校正とかそのテのノウハウを蓄積してる「実績ある」出版社の本を選んだ方がいいですね。 敢えて言いますが、最近「ネットで発表」→「書籍化」と言うのが流行りになっていますが、ホームページを作れても書籍が作れるのか、と言うとこれはまた別の話なんですね。 新興のネット関係での出版社なんかがプログラミング言語の本をサイトの作者の持ち込みで「安く」出版してるケースが見られますが、単なるブログ系の本だったらいざ知らず、このテの技術系の本の場合、「校正を全く行わない」「誤字脱字が多い」「索引でデタラメで役に立たない」状態で出版していて、「安い」だけで買うと、結局役に立たないんで痛い目見ます(敢えて会社名は伏せておきますがそう言う実例があるのです)。 ですから、サイトで勉強するなら構いませんが、書籍を買って勉強する場合は、少々値段が高くでも「定番商品」の方が結果安上がりです。書評に関しては大体のトコamazonで見れますし(もっともamazonは否定的な意見は載せたがらない方針ですが)、何種類か評判が良い書籍をメモっておいて本屋で現物を見た後購入した方が良いでしょう。または、評判書籍を取りあえず図書館で借りて読んでみる、とか。 出版社もすべて同じなワケではなく、「一回刷っちゃったらあとは絶版でイイや」程度で考えて粗製本作ってるケースも確かに存在するんで、そこまで行くと、確かに仰る通りかもな、とは思います。
その他の回答 (8)
- asuncion
- ベストアンサー率33% (2127/6289)
> 動かないサンプルコードばかりだと思います 答えは「No」です。 理由は、動くサンプルコードが少なくとも1つはあるからです。
お礼
ご回答ありがとうございました。 参考になりました。 なるほどです。少なくとも1つぐらはいありますよね。
- Oh-Orange
- ベストアンサー率63% (854/1345)
★アドバイス ・動かないサンプルコードには出会ったことがありません。 環境設定が出来ていないか、本をしっかりと読んでいないとかで 動いていない場合が多いでしょう。特に初心者の場合は用語とかが 分からないため1度2度読んだぐらいでは理解できないはずです。 これが原因で動かないと錯覚するようです。 ちなみに自分で作った JavaScript ソースでC言語と同じ要領で 配列のデータにカンマを全てに入れてエラーで動かず悩んだ過去があります。 本当は最後のデータにはカンマを入れてはいけないようです。 C言語では許されるのにね。JavaScript では文法違反です。 (注意。C言語出身者の皆様へ。) >要するには作者の解説力次第になりますと思いますが、どうでしょうか? >どんな簡単な言語でも解説力がなければ取っ付きにくく、 >どんな難しい言語でも解説力があれば取っ付きやすいものでしょうか? ↑ 解説力は重要です。 私もC言語を一度挫折したタイプです。 でもある1冊の本によりわずか3ヶ月でほぼ全てを理解できた経験があります。 やっぱり解説力(自分に合う表現)が必要です。 >何か解決法とかありますでしょうか? ↑ 書籍の場合は著者が違う本で同じようなことが書かれたものを買い比べます。 サイトでは1つのサイトを信じず、複数のサイトを参考にします。 これにより記述漏れ、タイプミス、自分の思い込みを排除できます。 よってネット検索をこまめに行い、情報収集で些細なミスを防ぎます。 私はこのような方法で今日まで解決してきました。 ・参考にして下さい。
お礼
ご回答ありがとうございました。 参考になりました。 そうですね。他人がブログや掲示板で「『○○』の本は分かりやすいよ」と薦められても、その本が自分にとって分かるとは限らないですね。結局は1つのものを信じず複数のサイトを参考して、分かりやすい部分だけ抜粋すれば良いでしょうね。
- gon987
- ベストアンサー率16% (53/312)
今まで何回かそういうサンプルコードに出会ったけど その出版社のページに修正があったりした記憶がある。 でも一冊の書籍や雑誌の中で動かないのは一つとかで >このサンプルコードが動かなければ別のサンプルコードが動かない可能性が高いで なんていうことは無いですね。 動かない動かないと思っていても自分のミスだったことなんて良くあるし ・コンパイルオプションが必要だったり(C.C++などで) ・そのサンプルコードの前にやった別のサンプルコードをインクルードしないといけなかったり(ほぼすべての言語で) ・その言語の拡張モジュールをインストールしておかないといけなかったり(Perl,PHPなどで) ・言語のバージョンでの言語仕様変更で書籍と自分の環境が違うのが原因だったり(PHPなどで) ・いろいろな宣言はサンプルに無くて自分で宣言をしておく必要があったり。これも別のサンプルに記述がある場合がほとんど(VB,VC++で特にWIn32APIまわり) って事があったけど自分のミスでその本にはそれらに関する説明があったけど見落としていたオチはやるけどね。
お礼
ご回答ありがとうございました。 参考になりました。 確かに自分がどこかで見落とししていると思います。もう一度、最初から参考書を確認してやってみます。しかし、私の参考書はあくまでリファレンス(『PHP辞典』山田洋寛著)なので、動作環境など書かれていないため、私のような初心者は、やはり引っかかると思います。例えば、このサンプルコードはSQLiteが必要なのにSQLiteが使われていることを知らない私の方が問題があると思います。
前に一度、某書籍で、サンプルにエラーがあったらしく、訂正の紙が挟まっていたことがありました。 書籍のHPに、サポートがのることもありますし。 ただ、複数の書籍や、どのページもって事はないと思います。 私が、一時期苦労したのが、PHPです。 PHPは、Apacheとかの設定が細かく設定出来る反面、設定が違うと、思ったような結果が出ない事があります。 JAVAにも一時期手を出しましたが、当時は初心者の本を読んでも、よく分かりませんでした。 今は、プログラムの経験が増えるとともに、何となく分かってきましたが。 やはり、初心者には、JAVAやCは、習得が難しいと思いますよ。 あとは、バカな冗談話ですが、PHP4の環境で、PHP5のクラスが動かない事がありました。 PHP4は、PHP5より前のヴァージョンで、PHP4から見れば、未知のプログラムだった。w 開発環境のバージョンによっては、動かない事もあるかもしれませんねー。 最近、私はDelphiをいじっていますが、ライブラリ(プログラムのパーツ)は、ヴァージョンをチェックしてから、使っています。w 参考書は、最初からよーく読むと、なにかヒントになるかもしれません。
お礼
ご回答ありがとうございました。 参考になりました。 >参考書は、最初からよーく読むと、なにかヒントになるかもしれません。 それがとても参考になりました。 >JAVAにも一時期手を出しましたが、当時は初心者の本を読んでも、よく分かりませんでした。今は、プログラムの経験が増えるとともに、何となく分かってきましたが。やはり、初心者には、JAVAやCは、習得が難しいと思いますよ。 全く同感です。Javaは最初からいきなりオブジェクト概念があるため、初心者を追い払っているような気がしますね。私は最初にPHPを学んで,次にJavaScriptを学ぶつもりですが、現在は何故かJavaも自然に理解できるようになりました。実は最初からJavaを学んだが、一度挫折しました。要するには簡単な言語から学んでプログラミングの基本や構造に慣れてからJavaを始めるのもいい方法だと思います。PHPとJavaScriptの文体はJavaと似ていますからね。しかし、PerlやRubyは文体が全然違うため、今になってもまだ理解していません。
動かないサンプル……うーん、書籍だと、今まで出くわした記憶がないですねえ。ほとんどすべてのものは、バージョンとか環境とかが整っていれば動くサンプルだったと思います。わざわざ動かないサンプルを作って掲載する意味なんてないわけで、少なくともその作者の環境ではちゃんと動いているものを収録してるはずでしょう。 Webサイトだと、古いものも新しいものも玉石混交だから、古いバージョンの情報がそのまま今も掲載されてたりするから要注意ですが。
お礼
ご回答ありがとうございました。 参考になりました。
- shimix
- ベストアンサー率54% (865/1590)
Win32アプリもwebアプリも作りますが「動かないサンプル」に当ったことはないです。ただし、こちらの事情で動作環境が作れないなど「動かない原因が自明なので試さない」ことはよくあります。 一般的にサンプルコードが提示されているときには「どういう環境で確認したか」も書いていると思います(どこかにまとめて書かれていたりもします)。書かれていないケースは、あまりに一般的で「わかるだろう」と思ってしまっているのでしょうかね(とくにwebサイトの場合:書籍の場合は編集者のチェックがあるので・・)。 で、書籍でもwebでも丸ごと同じ環境を想定して書かれているので、1本ダメ(環境が違う)なら全部ダメなのは、質問者さんが書かれたとおりです。 書かれていなくても、よほど古いもの(当時の標準環境を思い出さないといけないような・・)でなければ、使う側で推測できるケースが多いのであまり気にしたことはありません。webに転がっているphp3のソースなどは動かない環境の方が多いハズですね(ちゃんと書き替えてから試します)。そういう公開時と現在の環境の違いなどを覚えていくのもスキルのひとつなので、苦にはなりません。
お礼
ご回答ありがとうございました。 参考になりました。 要するには動作環境が大切ですね。私が動かなかった原因は恐らくSQLiteを動かす手順を知らなかっただけだと思います。MySQLは何とか動かせますが、SQLiteはインストールとか設定の解説するサイトが少なく、分かりづらかったため、そこに引っかかってしまったと思います。 参考書も買いたいところが、私の地元の書店ではSQLiteは置いていないし、中身が確認できない限りにAmazonで買うのはちょっと抵抗があります(笑)。 今はSQLiteについてAll Aboutサイトから良い解説が見つかったので、解決につながりました。
- taunamlz
- ベストアンサー率20% (175/843)
>ホームページや書籍などのサンプルコードを試して動かしてみても、動かないサンプルコードばかりだと思いますが、同じことを考えている人はいらっしゃいますか? 動かないサンプルコードの方が少ないと感じます。 >1件のホームページや1冊の書籍で、このサンプルコードが動かなければ別のサンプルコードが動かない可能性が高いです。 その場合サンプルコードに問題があるのではなく、コンパイラの設定・バージョン違い・宣言のし忘れなどが原因ではないでしょうか? >何か解決法とかありますでしょうか?ご回答をお願いします。 サンプルコードをただ写すのではなく、そこに書いてある文章をキッチリと読めば何とかなると思います。
お礼
ご回答ありがとうございました。 参考になりました。 >サンプルコードをただ写すのではなく、そこに書いてある文章をキッチリと読めば何とかなると思います。 確かにそうだと思います。プログラミングを初めて挑戦したころはサンプルコードがとても読めそうありませんでした。しかし、現在は構造や関数の意味が分かってくるほど、そのサンプルコードはどうやってうごくか、何の動作をするか大抵憶測ができるようになりました。単語を覚えることも重要だと思います。
- S-Fuji
- ベストアンサー率36% (592/1624)
何のサンプルコードでしょうか?。 私の経験では、動作しないサンプルコードには、予め、「これこれ、こうだから、動作しないコード」という事が書いてあります。 まず、参考書の中のコードは99パーセント動作しました。 どちらのサイト、或いは解説書のサンプルコードでしょうか?。
お礼
ご回答ありがとうございました。 参考になりました。 >まず、参考書の中のコードは99パーセント動作しました。 >どちらのサイト、或いは解説書のサンプルコードでしょうか? サイトのサンプルコードなら動かないこともあると思いますが、私の場合は解説書のサンプルコードが動かなかったことです。原因は上記の回答のように私の環境設定が不十分だったためです。
お礼
ご回答ありがとうございました。 参考になりました。 >1.提供元が一つしか無いもの >2.公式規格が制定されているもの その回答が凄く参考になりました。何というか本当に凄く参考になったので、感謝しています。 確かにamazonのレビューはアテにならないですよね(笑)。