結城浩
2001年11月28日
[DP/2] 今日も今日とてマルチスレッド(すみません、毎日似たような仕事ばかりで)。 12個目のサンプルの説明の文章を書き、お話のパターンのクラス図をVisioで描く。 すごく、すごくいい。心にしっくりくるよい図ができた。 そう、これが私の言いたかったことなんです、という図になった。 パターンの最後の章なので、説明の文章も復習の意味合いを持たせ、回顧的な含みを持たせるようにする。 ほら、ここに出てきたのはあそこで学んだパターンですよね。 ほら、あっちに見えているのはあのパターン、 それからこれは、もうおなじみのあれですね。 ね、簡単なパターンでも、 きちんとやっておくと、大きなプログラムを理解するときに とても助けになるでしょう? …とまあそういうお話の展開。 今月中に12個目のお話を送付するのは難しそうだな。 まあぼちぼち行きましょう。
プログラムっていろんなことを「語っている」なあ。 プログラムを書くときにいろんなことを考えて、配慮して書きますよね。 それを日本語で解説していくと、すごく勉強になる。 きちんと説明しようとすると、説明がどうしてもごちゃごちゃするところがある。 それは、実は、プログラムがごちゃごちゃしているからなのだ。 説明文を書くと、論理展開や、他の部分との関連をはっきりさせる必要が生じ、 プログラミングしているときに「何となく」感じていたことを、 明記する必要が生じる。 これはプログラムの構成を整えたり、バグを見つけたりするのに非常に有効だ。 ソースレビューがプログラムの品質を高めることもこれに関連しているように思う。
プログラミングを学んでいる人(特に学生さん)に強くお勧めするのは、 自分が書いたプログラムや自分が書いた文章をWebで公開することだ。 自分が書いたプログラムを公開し、その説明文を書いて公開する。 プログラムそのものでなくても、プログラミングにまつわる技術情報、ツールの使い方などを 説明文として書き、HTMLなどで整形し、Webで公開する。広く公開する。 これはすごく勉強になる、と私は確信しています。
おうおうにして 「私はまだうまくプログラムを書けないから」 「たいしたプログラムじゃないから」 「きたないプログラムなのでお見せするほどではない」 「公開するのは恥ずかしい」 「もう少し勉強が進んでから」 …そういう風に考えがちだけれど、 私はそうは思わない。
「私たちはみな工房の徒弟であって、だれも巨匠になれはしない」というのはヘミングウェイの言葉だったかな。 勉強している途中であるからこそ、うまく書けないからこそ、公開するべきだと思うのだ。 恥ずかしかったらペンネームでも使えばいい。 それから「いま勉強中」とでも書いておけばいい。 無料のWebサイトだってたくさんあるからたいしたお金はかからない。 とにかく、自分が学んだことを「他の人に見せる」という意識をもって構成してみることが大事だ。 うまくいかなかったらやめればいいじゃないか。
自分ひとりで作って、ひとりで楽しんで…というのも結構なことだけれど、 思い切って公開すると、きっと思わぬ世界が広がります。 もちろん、世の中には心無い人がたくさんいます。 いわれのない悪口のメールがやってくることもあるでしょう。 あなたの意気込みを「引き下げ」熱意に「水を差す」メールも来るかもしれません (意外と悪口メールは来ないものです。多くの場合は単に無視されるだけ)。 けれど、そんなメールは恐れないで。読み流しましょう。 あなたは、自分のペースで学んでいるのですから、他の人と比較する必要なんてありません。 自分がマスターしたい技術、マスターしたい言語を淡々と学んでいきましょう。
自分がよくわかっていないのに「わかったふりをする」のが一番よくない態度です。 よく知らないのに「ああ、それはもう知っているさ」という態度、これがいちばんよくない。 それは技術を学ぶ態度ではなく、他の人の目を気にしている態度だ。 なんでもかんでもわかったふりをしないこと。 そうではなく、 自分はここまでわかった、あれはまだよくわかっていない、これは得意だ、あれは不得意だ… 自分の現状をそのようにきちんと把握しましょう。 自分が理解したことがあるなら、その分だけ公開してみること。 他の人からのフィードバックは謙虚に聞き、参考にする。 いやみや悪口などは聞き流す(でもその中に事実が書かれていたらその部分だけは謙虚に受け止める)。
謙虚に学びましょう。素直に学びましょう。失敗したら戻ってやり直しましょう。 自分の知っていることを、知らない人に丁寧に教えてあげましょう。 教えてあげることも1つの勉強であると思いましょう。 自分の知らないことを教えてくれる人に感謝しましょう。 誰かの気分を害することがあったら、すぐに謝罪しましょう。 けれどもくよくよ悩むのはやめましょう。 Web, 書籍, 雑誌, メールなどで情報収集しましょう。 でも情報収集することを本来の目的とはきちがえないようにしましょう。 いつも自分の頭と心で判断しましょう。
プログラミングというのはとても魅力的で刺激的な技術です。 自分だけで知識を抱え込み、ちまちま学ぶのではなく、 もっと広い心をもって、学んだことを公開し、知識や知恵を他人と分かち合い、 互いに励ましあって歩みましょう。 そうすると、学ぶことがもっと楽しく、 もっと豊かに、もっと広がりを持ってくるように思うのです。
Webが流行し始めた頃「個人からの情報発信」ということがよく言われましたね。 何か「ものすごい」ことを考え出して、人が「あっと驚く」ようなページを作るのが情報発信ではありません。 あなたが毎日やっていること、学んでいる1つ1つのこと、 それらに自分なりの形を与えて公開するのが「あなたにとっての情報発信」なのです。
あなたのご活躍をお祈りしています。 あなたのページができたら、ぜひ掲示板に書き込んで教えてくださいね。
We are all apprentices in a craft where no one ever becomes a master. -- Ernest Hemingway