中学1年生にインタビューされた

Jun 24, 2010   #Translation  :

ポール・グレアムのAn Interview by a Seventh Graderを訳してみました。id:lionfanさんの先を行っているかな?翻訳についてご指摘を歓迎しております。

中学1年生にインタビューされた

June 2010

2010年6月

(A seventh grader sent me these interview questions for a school project.)

(中学1年生が、学校の課題で私にインタビュー用の質問を送ってきたんだ)

1. What are some qualifications of a computer programmer?

1. コンピュータプログラマーの資質って何ですか?

Programmers tell computers what to do―not in a human language like English but in special unambiguous languages called programming languages. Commands written in a programming language are called code. Programmers should be able to translate their ideas about what a program should do into code that’s reliable, efficient, and easy to change later. The best programmers are the ones who are not only good at translating ideas into code, but who have the best ideas.

人間の言葉ではなく、プログラミング言語と呼ばれる特別で、曖昧な言語で、プログラマーはコンピュータにすべきことを指示する。プログラミング言語で書かれた命令はコードと呼ばれる。プログラマーはプログラムがすべきと考えていることを、信頼でき、効率的で、後になって簡単に書き換えられるコードに変換することができなければいけない。一流のプログラマーは自分のアイディアをコードに変換するのが得意なだけじゃなくて、最高のアイディアを持っているんだ。

2. What is the best part of being a computer programmer? The worst? The most challenging?

2. コンピュータプログラマーをしていて一番良かった点、悪かった点はなんですか?一番難しさを感じる点は何ですか?

For me the best part is building things. Although programs aren’t physical, when you write a good program you get the same feeling of achievement you’d get from making something like a piece of pottery or a house (depending on how big the program is).

私にとって、最良の点は何かを築いているという感覚だ。プログラムは物質的なものではないけれど、よいプログラムを書いているときは、(書いているプログラムの規模がどれほど大きいかにもよるけれど)陶器や家の一部を作っているときに感じるのと同じ達成感を得られるんだ。

For me the worst thing about programming is dealing with external constraints. You don’t usually have complete freedom when writing a program. Usually your boss (or your customer) tells you what your program has do to, and it has to cooperate with other programs to do it. Often things you’re told to do, and the programs your program has to cooperate with, are confusing or stupid. So you don’t get to do things the way you’d like to.

一番悪い点は、プログラミングは外的な制約に対処していることだ。たいていの場合、プログラムを書いているときに完全な自由を得ることはない。普通は上司(もしくは顧客)が、プログラムがすべきことを指示して、他のプログラムと協調して、その目的を果たさなければならない。指示されることや、協調して動作させなければならないプログラムは、挙動が読めなかったり、おもしろくなかったりすることが多い。その結果、自分のやりたいようにすることができないんだ。

What’s most challenging about being a programmer depends on how good you are. For bad programmers, like bad cooks, the mere mechanics of programming are challenging. Whereas good programmers, like good cooks, can make whatever they choose, so for them the big challenge is deciding what to make.

一番やりがいを感じることは、そのプログラマーがどれぐらい優れているかによって異なる。腕の悪いコックのように、まずいプログラマーは単なるプログラミングの仕組みが難しく感じられる。それに対して腕の良いプログラマーは、良いコックのように、望めばどんなものでも作れてしまう。だから、腕の良いプログラマーにとって一番難しいのは、何を作るかだ。

3. What’s the salary range in this career?

3. プログラマーの人の給料ってどのくらいですか?

The range is very wide, because some programmers start their own companies and if these companies succeed they can make a lot. The lowest paid programmers seem to make around $35,000 a year. The richest programmers, like Larry Page and Sergey Brin, the founders of Google, become billionaires.

プログラマーの給料はピンからキリまである。なぜなら、プログラマーの中には自分の会社を起業して、その会社が成功すれば、多くの金を稼げるからだ。最下級のサラリーマンプログラマーは一年で35,000ドルぐらいを稼いでいるようだ。Googleを創業したラリー・ページやサーゲイ・ブリンのようなもっとも裕福なプログラマーは億万長者になる。

4. What is a typical day in the life of a computer programmer?

4. コンピュータプログラマーの生活で典型的な一日ってどんなですか?

This varies so much that there’s no one answer. Programmers who work for bureaucratic organizations like governments or big companies may spend nearly all their time in meetings or responding to email, and hardly any time actually writing code. Whereas programmers who work for startup companies or on research projects spend many hours a day programming.

色々な答えがあるから一概には言えないなぁ。政府や大企業で働く官僚的な組織で働くプログラマーは、ほとんどすべての時間をミーティングやメールの返信に費やしていて、ほとんど実際にコードを書いていないんじゃないかなぁ。それに対して、ベンチャー企業で働いていたり、研究プロジェクトに取り組んでいるプログラマーは多くの時間をプログラミングに費やしている。

Interruptions are very bad for programming, so people who spend a lot of time programming often do it at times when they’ll be left alone, like late at night or early in the morning.

中断されるのはプログラミングにとって悪いことだから、プログラミングに多くの時間を費やしている人は、深夜や早朝といった一人になれる時間にプログラミングをしているよ。

5. What is some advice you would give to young computer programmers?

5. 若いコンピュータプログラマーへアドバイスをお願いします

Programming is something you learn by doing. So don’t be passive. Don’t wait for classes to teach you how to program. The way you learn is by starting projects of your own.

プログラミングはプログラムを書くことで身につけるものだ。プログラムをする方法を教えてくれる授業を待つ必要はない。学ぶ方法は自分独自のプロジェクトを始めることだ。

(This is true for most fields, actually, not just programming.)

(実際のところこのアドバイスは、プログラミングだけでなくほとんどの領域についてあてはまる)

6. Is it easy to find a job as a computer programmer?

6. コンピュータプログラマーの仕事を見つけるのは簡単ですか?

If you’re good it’s always easy to find programming jobs. Even when the economy is bad there is a shortage of good programmers.

腕さえ良ければ、いつでも簡単にプログラミングの仕事を見つけられるよ。景気が悪いときでさえも、腕のいいプログラマーは不足しているんだ。

7. What was your most exciting project?

7. ポールさんが一番熱心に取り組んだプロジェクトって何ですか?

Probably the program I wrote in my last year of college that could understand some sentences in English. It was not impressive by present day standards, but it was more sophisticated than most of the programs we were writing in our classes in those days.

たぶん、大学の4年生の時に書いた英語の文を理解するプログラムかなぁ。今にして思えばそんなにたいしたことはないけれど、そのプログラムはその当時講義で書いたプログラムよりも洗練されていたんだ。

8. What skills do you think young programmers need for the job?

8. プログラマーとして仕事をするときに、若いプログラマーに必要となるスキルは何ですか?

Mostly they need the same skills programmers of any age need. If there is one mistake that young programmers tend to to make, it’s that they tend to over-engineer things. They get carried away with their own cleverness and build things that are overcomplicated. So a truly precocious young programmer would be one who’d learned not to do that.

普通、求められるスキルはいつの時代も変わらない。若いプログラマーが犯しがちな過ちの一つをあげれば、作り込みすぎてしまうことだ。若いプログラマーは自分の手際の良さに我を忘れて、複雑すぎるものを作り上げてしまう。だから、本当に早熟のプログラマーというのは、作り込みすぎないことを学んだプログラマーのことを言うんじゃないかな。

9. What improvement does computer programming give for human life?

9. コンピュータプログラミングは人類の生活にどんな進歩をもたらしましたか?

Computers are so widespread now that there is practically no aspect of life that isn’t affected by programming.

コンピュータはとても広範に広がっていて、プログラミングの影響を受けていない部分なんて実際のところないよ。

10. What is the future direction of computer programming?

10. コンピュータプログラミングの将来の方向性はどうなりそうですか?

Technological change is always hard to predict, but programming seems to be changing from a kind of work in which you build everything yourself to one in which you plug together programs written by other people. So it is becoming more important to know what other programs you can use as building blocks and how to stick them together, and less important to know how to build basic “plumbing” yourself.

技術的変化を読むことは常に難しいものだけれど、プログラミングは自分一人で何もかも作り上げるような仕事から、他の人が書いたプログラムをつなぎ合わせる仕事に変化してきているようだ。だから、建築用のブロックとして用いることができる他のプログラムのことを知って、それらを組み合わせる方法を知ることがますます重要になってきている。そして簡単なプラミング*1を自分で作る方法を知ることはさほど重要ではなくなってきている。

11. Would life be a lot worse without computer programming? How much? Why?

11. コンピュータプログラミングがなければ、生活はずっとわるいものになっていたのでしょうか?その程度で?理由は?

One way to answer that question is to look at what things were like before computers were widespread: in, say, 1950. There were a lot of things you couldn’t do then you can do now. Some are obvious, like make cell phone calls. Others are more subtle: aircraft today are more efficient because the calculations for their designs are done with computers instead of manually, and we have drugs today that we couldn’t have had in 1950 because programs were needed to discover them.

この質問に答える一つの方法はコンピュータが広がる前の生活がどのようなものであったのかを考えてみることだ。そうだな、たとえば、1950年とか。その当時にできなかった多くのことが現在ではできるようになっている。携帯電話のように明確なものもある。それに対して、さほど明白ではないものもある。たとえば今日の航空機は、デザインを計算するのに人の手ではなくコンピュータを用いているために、ずっと効率的になっている。そして、新薬を発見するためにプログラムが必要となるために、1950年当時には作られることがなかった薬を現在私たちは入手することができるようになっているんだ。

*1:訳注: pipeを多用したシェルコード