97 Things Every Programmer Should Know

(Chris Devlin) #1

(^98) 97 Things Every Programmer Should Know


Learn Foreign Languages ...........................


Klaus Marquardt


PROGRAMMERS NEED TO COMMUNiCATE. A lot.


There are periods in a programmer’s life when most communication seems to
be with the computer—more precisely, with the programs running on that com-
puter. This communication is about expressing ideas in a machine-readable way.
This remains an exhilarating prospect: programs are ideas turned into reality,
with virtually no physical substance involved.


Programmers need to be fluent in the language of the machine, whether real
or virtual, and in the abstractions that can be related to that language via devel-
opment tools. It is important to learn many different abstractions, otherwise
some ideas become incredibly hard to express. Good programmers need to be
able to stand outside their daily routine, to be aware of other languages that
are expressive for other purposes. The time always comes when this pays off.


Beyond communication with machines, programmers need to communicate
with their peers. Today’s large projects are more social endeavors than simply
the applied art of programming. It is important to understand and express
more than the machine-readable abstractions can. Most of the best program-
mers I know are also very fluent in their mother tongue, and typically in other
languages as well. This is not just about communication with others: speaking
a language well also leads to a clarity of thought that is indispensable when
abstracting a problem. And this is what programming is also about.

Free download pdf