Monthly Archives: October 2006

int *ptr;

I’ve come to realize that understanding pointers in C is not a skill,
it’s an aptitude. In first year computer science classes, there are
always about 200 kids at the beginning of the semester, all of whom
wrote complex adventure games in BASIC for their PCs when they were 4
years old. They are having a good ol’ time learning C or Pascal in
college, until one day they professor introduces pointers, and
suddenly, they don’t get it. They just don’t understand anything any
more. 90% of the class goes off and becomes Political Science majors,
then they tell their friends that there weren’t enough good looking
members of the appropriate sex in their CompSci classes, that’s why
they switched. For some reason most people seem to be born without the
part of the brain that understands pointers. Pointers require a
complex form of doubly-indirected thinking that some people just can’t
do, and it’s pretty crucial to good programming. A lot of the “script
jocks” who started programming by copying JavaScript snippets into
their web pages and went on to learn Perl never learned about
pointers, and they can never quite produce code of the quality you
need.

Joel Spolsky – The Guerrilla Guide to Interviewing