| |
June 2010
(A seventh grader sent me these interview questions for a school project.)
1. What are some qualifications of a computer programmer?
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?
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?
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.
4. What is a typical day in the life of a computer programmer?
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?
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?
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?
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.
8. What skills do you think young programmers need for the job?
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?
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?
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.
11. Would life be a lot worse without computer programming? How much?
Why?
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.
|
|