どのようにしたらプログラムを1から書けるようになるのでしょうか

結城浩

『Java言語プログラミングレッスン』の熱心な読者からの質問(抜粋) 結城先生の書かれたプログラムを図に書いてみて理解することはできるのですが、 練習問題などで、自分だけでプログラムを作ってみるとなると、とても難しいです。 どこをfor文にして、どこをメソッドにすればいいのかという点がみえてこないのです。 どのようにしたらプログラムを1から書けるようになるのでしょうか。

結城の返事 練習です。いろいろ書いてみる練習。他の人のプログラムを読む練習。 プログラミング言語は言葉ですから、練習し、使っていくうちに身についていきます。 それから、正解は一つだけではありません。 本に書かれているのは一例にすぎず、 そこからあなたが自分で考えて変形させたり、 もっとよい方法を考え出したりするのです。 Enjoy Programming!

読者からの返信(抜粋) いつも丁寧にお答え頂いて本当にありがとうございます。 結城先生のおっしゃる通り、これからもっとプログラミングを繰り返し読んだり書いたりして 頑張りたいと思います。

別の読者からのご意見(抜粋) ただ書いてあることをただまねているだけでは1から書くことは難しいように思います。 プログラミングは論理的に考えないといけないので、 物事を解決するときにどうやったらうまく解決できるか、 あとはなるべく楽して解決するにはどうしたらいいか、 いかにしたらサボれるかという欲も実は大事なような気がします. 結城さんはどうおもいますか?

結城の返事 おっしゃる通りです。 もっとも、書いてあることをまずそのまま真似てみるのは、 サボりつつ学ぶいい方法ではありますが。 論理的に考えるのも必要ですし、 どうやって解決したらよいか、 と一つ「メタ」なレベルで考えることも大事なことです。 どうしたらプログラムが書けるようになるか、 という問いを考えていると、 どうしたら文章(散文)が書けるようになるか、 という問いとの類似性にも気がつきはじめますね。 ああ、やっぱりプログラムは言葉で書くんだなあと納得したりします。

読者からの質問 私はプログラミングを学びたいと思っています。 けれど、プログラミング言語にはC言語やBASIC言語などいろいろあるようで、 どれをやったらよいのかわかりません。 また、プログラミングを学ぶにあたって準備すべきものがよくわかりません。 コンピュータは必要でしょうか。 ノートパソコンでもかまいませんか。

結城の返事 メールありがとうございます。 現在、もっとも広く使われており、 学ぶ価値が高いと思われるプログラミング言語はC言語です。 C言語は必修科目です。

コンピュータは必要です。 プログラミングを効率よく学ぶためには、 自分の手元にある「あなただけの」コンピュータが必要です。 ノートパソコンでもかまいません。 インターネットにアクセスする手段も必要です。

プログラミングを学ぶことのほかに、 あなたが作りたいプログラムの分野のことを学ぶ必要があります。 プログラムで物理の問題を解きたいのであれば、物理の知識が必要です。 組版を行うプログラムを書きたいのであれば、組版の知識が必要です。 プログラミング言語は「言葉」ですから、 言葉で表現すること全般に関心を持ちましょう。

(後日談)読者の方から「プログラミングを学ぶのにインターネットは必ず要るのか」 とお問い合わせをいただきました。 インターネットがなければ学べない、というわけではありませんが、 私は「効率よく」学ぶためにはあった方がよいと思っています。 たとえば、世の中にはどのような言語があるのかを知る、 他の同好の士を探す、 いま読んでいる本の最新の情報(プログラムを含む)を得るなど。 私にとってインターネットは欠かせない道具の一つです。

(1999年10月15日の日記から)

豊かな人生のための四つの法則