プロが教えるわが家の防犯対策術!

プログラミングの入門者・初心者レベルを超えられている方にお聞きしたいのですが、
「入門書に書かれているコードを記述し、さらに自分なりにコードを改変し、改良を加えていく。」という手順が成り立たない(見当つかない)ものに対し、どのように対応(勉強)されてきて、現在のレベルまでたどり着いたのでしょうか?

「こんなものがつくりたい、ここをこうしたい」
というアイデアはたくさんあるのですが、それを実現するにはどのようなコード記述をしたらよいか、実際にいろいろな入門書を読んでみても見当もつかない場合が多々あります。
基本的に、長年勉強をし続けなければ難しいのでしょうが、入門書どおりのコード記述ではなく、こういうのをやるにはどうしたらよいのか?という視点での勉強方法など、良いアドバイスがありましたら、ご教授願います。

最近は「逆引き大全」みたいな書籍もいろいろ出版されていますが、そういう本を見てみても、自分がやりたいことってなかなか載ってないものですよね。。。

A 回答 (5件)

#2ではいかにもたこにもな正論を吐いてしまいましたが、もう少し別のことも書いてみます。



「やりたいことがあるけれども、やり方が分からない」を解決する方法です。

初心者を脱した人たちはどうやってこの問題を解決しているのか。それには大きく分けて2つあります。

1つは、自分ができると分かっていることだけ行い、それ以外は「これはできない」と諦めることです。今回の質問では、この選択肢は問題外ですね。

もう1つは、やり方が分からないときには、やり方を自力で調べて見つける方法です。こちらのほうが建設的ですね。

「それができたら苦労しないよ」という声が聞こえるようですが、全くそのとおりです。初心者でなくても、プロでも、知らないことに遭遇したときには、時には苦労しながら解決法を調べているんです。

#2に書いた方法も、突き詰めていくと最終的には「知っていること」と「知らないこと」の2つに分かれます。幸いにも「知っていること」だけであれば根気と努力でプログラムを完成させることができますが、「知らないこと」があった場合には自分で調べるしかありません。

ですから、ぜひとも「知らないこと」の調べ方を覚えてください。

調べ方を覚えるいちばんいい方法は、とにかく何でも調べてみることです。と言っても、よっぽど好奇心の強い人を除けば、普段の生活でそんなにいろいろ「よし調べてみよう」と思うことが転がっているわけではありませんから、なかなか調べる「ネタ」も見つからないと思います。

そういうときは、誰かに質問してもらうことです。

わざわざ「質問してくださーい!」と質問を募る必要はありません。例えばこのQ&Aサイトには質問が何万と詰まっています。その中の質問を適当に開いて、その質問の回答を考えてみてください。回答を書き込む必要はありません。(「よくできたから書き込みたい」という場合は、もちろん書き込んでも構いません。)

もう1つ、講師をやるとか教育実習に行くという手もありますが、これはあまり手軽ではありませんね(私はどちらもやったことがあります)。実際に対面してものを教えるというのはめちゃめちゃしんどいですが、ためになることと言ったらもう、この上ありません。

プログラミングそのものからは離れてしまいましたが、自分で調べる方法を知っている・持っているかどうかはこの先、プログラミングだけでなくいろいろな局面で(大げさにいえば「人生で」)重要になってきますから、少々手間をかけても覚えておいて損はありません。
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます。
別スレでの当方の質問にも見事なご回答をいただき、感謝しきりです。ひとつの壁を乗り越えることができました。
いろいろな入門書や参考書を見てはみたのですが、
あのようなコード記述は見かけませんでした。
言語の文法を理解すればサンプルコードに頼らずに自分でコード記述ができるようになるのでしょうか?
私は現在独学でプログラミングに挑戦しています、回答者様のレベルは私にとって尊敬に値するものです。あつかましくて申し訳ありませんが、今後も回答者様の気が向いたときでかまいませんので、私の指針となっていただけますよう、よろしくお願いいたします。

お礼日時:2005/08/10 00:10

↓の方々が言っていることは、どれも正しいと思います。

切り分けなんて言い方をしていますが、自分の理解や解決可能範囲を切り分けて必要に応じて学習するって事です。
きっと↓の方々は過去に一度ははまった(苦労された)経験の持ち主だと思います。
質問者さんも一度、苦労すると良いと思います。それが良い経験になり解決能力として習得されると思います。

VBでのアドバイスとしては、ヘルプを活用されることをお勧めします。
色々書いてありますので、参考になると思いますし、コピペも簡単です。その中でわからない部分を本で調べるなどするといいかも知れません。

また、VBその物ではなく、プログラムの構成を調べたいのであれば、アルゴリズムに関する本を読むといいと思います。
アルゴリズムは物によっては、web上で解説されている物も多数ありますので、「やりたい事」+「アルゴリズム」などのキーワードで検索するのも良いと思います。

ちなみに、私は困ったときには、他に似たようなアルゴリズムやプログラムを探して、それを参考にしたりしています。
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます。
「やりたい事」+「アルゴリズム」という検索方法は、今までの私では考え付かなかったキーワードです。今後のWeb検索をする上で世界が広がりました。
ありがとうございます。感謝いたします。

お礼日時:2005/08/09 23:45

大別して、データベース系、グラフィック系、通信系と分けられますが、本来の目的でなくても、とにかく一つ作り上げることです。


データベース系なら、住所録、もしくは手持ちのCDのデータベースなど(どのcdに誰が何、他の情報など、記録、検索、表示を工夫する)とにかく、我流で完成させることです。

NO-2さんのおっしゃることは、正論です。その訓練、手法分析の為に、とにかく、何でも、ひとつ作り上げることです。
ですから、参考書が、ヒント集、もしくは、コマンド説明的なものか、具体的に、これこれの、物が出来上がる。的な参考書かですが、ヒント集のあと、とにかく出来上がる、参考書をベースに 改変版でも作り上げる事をお勧めします。ちょっと回り道でも、これを、やるより方法は無いでしょう。
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます。
現在、入門書を片手に稚拙なソフトをコツコツと作っている最中です。自分ができることと、自分がやりたいこととのギャップの大きさにイライラしています。
入門書に記載されているサンプルコードを記述して、そのとおりのサンプルプログラムが出来ても面白くないし、かといって、サンプルプログラムにもっと面白い機能を付けようと「こんな機能はどうだろう?」と考えてはみるものの、どうコード記述をすればよいのかわからず、お手上げ状態になってしまいます。

「ここをああしたい、こうしたい、こんな機能をつけたい」がどんどんコード記述できるようになるとプログラミングは楽しいでしょうね。

お礼日時:2005/08/09 23:32

はたして王道があるのか、それすら定かでないのですが・・・



初心者がつまづきがちな点はいろいろありますが、その中に「問題を分割することができない」というものがあります。これは「プログラミング初心者」というよりも「問題を解決する行為の初心者」に見られるものです。

大きな問題(例えば「〇〇するプログラムを作りたい!」)があるとき、たいていその問題は小さな複数の問題に分割することができます。そして、その小さな複数の問題は、たいてい全部が難問ではありません。また中に難問があっても、たいていそれはより小さい複数の、すべてが難問ではない問題に再度分割することができます。

これが当てはまらない問題もありますが(例えば「リーマン仮説を実証したい!」などというもの)、ことプログラミングに関する限り、たいていは当てはまります。

分割にも良い分割と悪い分割がありますが、初心者はそれ以前に、そもそも「分割する」ということに意識が行かず、ただ「分からない!」と思い込みがちです。

もっとも、初心者向けチュートリアルでちゃんと「問題の分割」を教えるものは少ないので仕方がない面もあるのですが・・・(それより教育指導要領の問題かも(笑) 本来は学校で学ぶべきことなのですが。)

問題を分割するということに注意してみるのも、脱初心者には重要だと想いますよ。
    • good
    • 0

色々なプログラミングを経験していますが、


まさに自分のやりたいことが書籍やインターネットに
掲載されていたことはあまりありません。せいぜい
20%くらいのヒット率でしょうか。

なので、あまり他に頼らず、自分の発想を変えて対処
することが多いです。やりたいことを実現するための
方法は一つではありませんから、色々な方法を考え、
(時には複数言語を使用し、時にはある程度の妥協をしながら)作ることをお勧めします。

また、言語によってもできることが限られてきますので
色々な言語を比較して試してみるとよいと思います。

プログラミングで何ができるか、ということを自分で
把握してから、どんなことがしたいかを考えることで
より洗練されたプログラミングができるのではないかと
思います。
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます。
アドバイス大変励みになります。
「ここができないのなら、これはもういいや」といって開発をやめてしまうのでなく、できない機能はあきらめて、開発を続けることが大切ですよね。
VB.NETである程度プログラミングの根本的な考え方が身に付いたら、他の言語でのプログラミングにも挑戦しようと思っています。VB.NETがマイクロソフトなので、BorlandのDelphiも使ってみたいと思っています。

お礼日時:2005/08/09 23:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!