Career thoughts

Wednesday, December 21, 2005

The Guerrilla Guide to Interviewing

http://www.joelonsoftware.com/articles/fog0000000073.html

First of all, the #1 cardinal criteria for getting hired at Fog Creek:
Smart, andGets Things Done.

Here's a typical plan for interviewing a programmer:

Introduction
Question about recent project candidate worked on
In this question, I'm looking for one thing: passion. They get very
excited talking about it; they tend to talk more quickly and get animated. This
shows that when they are interesting in something, they will be passionate about
it.
In fact, you can even ask them directly to give you an example from their recent
past when they took a leadership role and got something done -- overcame some
institutional inertia, for example.


Impossible Question
C Function

Some signs of a good programmer: good programmers have a habit of writing their
{ and then skipping down to the bottom of the page and writing their }s right
away, then filling in the blank later. They also tend to have some kind of a
variable naming convention, primitive though it may be... Good programmers tend
to use really short variable names for loop indices. If they name their loop
index CurrentPagePositionLoopCounter it is sure sign that they have not written
a lot of code in their life. Occasionally, you will see a C programmer write
something like if (0==strlen(x)), putting the constant on the left hand side of
the == . This is a really good sign. It means that they were stung once too many
times by confusing = and == and have forced themselves to learn a new habit to
avoid that trap.


Good programmers plan before they write code, especially when there are pointers
involved. For example, if you ask them to reverse a linked list, good candidates
will always make a little drawing on the side and draw all the pointers and
where they go. They have to. It is humanly impossible to write code to reverse a
linked list without drawing little boxes with arrows between them. Bad
programmers will start writing code right away


Are you satisfied?
Design Question
Good candidates will try to get more information out of you about the
problem. Who is the house for?
Smart candidates understand that design is a difficult series of
trade-offs.

The Challenge
Do you have any questions?

0 Comments:

Post a Comment

<< Home