中学一年生によるインタビュー

Paul Graham / 青木靖 訳
2010年6月

(中学一年生が学校のプロジェクトで送ってきた質問への回答)

1. プログラマに必要なことは何ですか?

プログラマはコンピュータに何をするか伝えます…英語のような人間の言葉ではなく、プログラミング言語と呼ばれる曖昧さのない特別な言葉を使います。プログラミング言語で書かれた命令はコードと呼ばれています。プログラマはプログラムが何をすべきかについての自分のアイデアを、効率が良く、信頼性があり、後で容易に変更できるような形でコードに変換する必要があります。最高のプログラマというのは、アイデアをコードへと変換するのがうまいだけでなく、良いアイデアを持っている人のことを言います。

2. プログラマをしていて一番いいことは何ですか? 最悪のことは? 一番難しいことは?

私にとって一番いいのは物を作るという部分です。プログラムは形のあるものではありませんが、良いプログラムを作っているときには、(プログラムの規模に応じて)陶器や家などを作っているのと同じ達成感があります。

私にとって最悪な部分は、外的な制約と折り合いを付けることです。プログラムを作るとき、通常は完全な自由があるわけではありません。そのプログラムには何が出来なければならないかを上司(あるいは顧客)が指定し、他のプログラムともうまく合わせる必要があります。やるように言われたことや、合わせなければならない相手のプログラムが、めちゃくちゃだったり馬鹿げていることだってよくあります。そのため自分の好きなように作ることができないのです。

プログラミングをする上で一番難しいことは、その人がどれくらい優れているかによって違います。へたなプログラマには、へたな料理人と同じように、プログラミングの仕組み自体が難しいものとなります。一方優れたプログラマの場合には、優れた料理人と同じように、やろうと思ったことは何でもできるので、何を作るか決めるというのが一番頭を悩ませる部分になります。

3. プログラマがもらえる給料の範囲はどれくらいでしょうか?

とても幅があります。プログラマの中には自分で会社を始める人もいますが、その会社が成功すれば、たくさんのお金が手に入ります。一番給料の低いプログラマは年収3万5千ドルくらいでしょう。一番儲けるプログラマは、Googleの創業者のラリー・ペイジやセルゲイ・ブリンのように、何十億ドルも手にします。

4. プログラマの典型的な一日はどんなものでしょう?

すごくまちまちなので、これという答えはありません。政府や大企業のような官僚的組織で働くプログラマの場合、一日のほとんどをミーティングやメールの対応に費やし、実際にコードを書く時間がほとんどないということもあります。一方でスタートアップ企業や研究プロジェクトで働いているプログラマの場合、一日の時間の多くをプログラミングに使っています。

プログラミングをしているときには作業を中断させられるのはとても具合が悪いので、プログラミングに多くの時間を当てている人は、夜遅くとか朝早い時間など、人に邪魔されない時間にやることがよくあります。

5. 若いプログラマへのアドバイスは何かありますか?

プログラミングは自分でやることによって覚えるものです。だから受け身にならないようにしてください。授業でプログラムの書き方を教わるまで待つことはありません。プログラミングを学ぶ一番の方法は、自分のプロジェクトを始めることです。

(このことは実際プログラミングだけでなく、他の多くの分野にも当てはまります。)

6. プログラマの仕事は簡単に見つけられるのでしょうか?

優れたプログラマなら、プログラミングの仕事を見つけるのはいつだって簡単です。経済状況の悪いときであっても、優れたプログラマは足らないものだからです。

7. あなたが一番わくわくしたプロジェクトは何でしたか?

それはたぶん大学の最後の年に書いた英語の文章を理解するプログラムだと思います。今日の基準からすればそうたいしたものではありませんが、当時みんなが授業で書いていたプログラムに比べたらずっと気が利いていました。

8. 若いプログラマにとって、この仕事のために必要なスキルは何でしょうか?

必要なことは多くの部分、どの年代のプログラマだろうと同じスキルです。若いプログラマが犯しがちな間違いを1つあげるとしたら、手が込みすぎたものを作るきらいがあるということです。抑えることを知らずに知恵の限りを尽くしてすごく複雑なものを作ってしまいます。本当に早熟なプログラマなら、そのようなことをすべきではないと学んでいるものです。

9. プログラミングが人類の生活を改善したのは、どういうところでしょうか?

いまやコンピュータは広く行き渡っており、生活の中でプログラミングの影響を受けていない面というのは実質的にありません。

10. プログラミングは今後どのような方向に進むのでしょうか?

テクノロジーの変化を予測するのはいつでも難しいものですが、プログラミングに関しては、すべてを自分で作るというところから、他の人が作ったプログラムを繋ぎ合わせるというものに変わってきているように見えます。だから部品として使えるプログラムにどんなものがあるかよく知っていることがより重要になり、基礎的な「配管工事」を全部自分でやれることの重要性は下がっていくでしょう。

11. プログラミングがなかったら、私たちの生活はずっとひどくなるのでしょうか? それはなぜで、どれくらい変わるのでしょうか?

この質問に答える1つの方法は、コンピュータが広く普及する以前、たとえば1950年頃に、物事がどんな具合だったかを見てみることでしょう。今できることで、当時にはできなかったことはたくさんあります。たとえば携帯電話のような、ごくわかりやすいものもあります。一方、もっとわかりにくいものもあります。今日の飛行機は当時よりずっと効率的になっていますが、それは設計のための計算を手で行うのではなく、コンピュータでやっているからです。それに1950年には作れなかった薬というのもあります。薬の発見にもコンピュータが必要だからです。

 

home  rss  

オリジナル:  An Interview by a Seventh Grader