David Lindes's pool of Interview Questions

OK, it's my pool in that it's a pool I work from... this doesn't necessarily mean I wrote the questions; anyway, though, here they are (note: this document is in its infancy; I hope to expand it greatly over time), with information about what sorts of answers I might look for:

Specific technical questions:

General UNIX(/Linux/GNU) questions:

Are you comfortable working in a UNIX shell environment?
(whatever the truth is; perhaps some hints at comfort level by phrasing of answer)
Can you tell me the basics of what the following commands do: ls, ps, ed, sed, awk, vi, sort, uniq, diff, ...
ls: list files; ps: list processes, ed: line-editor, sed: stream editor (...); awk: scripting language for reporting and such; vi: visual editor (...); sort: sort text; uniq: remove duplicates of items in text; diff: show differences in two files; ...
What's an environment variable, and how would you set one?
it's a named way of storing information, which is passed on to child processes. How to set it depends on the shell, the main ways being: sh (and derivatives): FOO=bar export FOO; bash/ksh/zsh: export FOO=bar; csh: setenv FOO bar

Perl:

Given the following three variable names (on board, write): $foo, @foo, %foo -- say what each variable is
A scalar, a list, and a hash
Follow-up: Is $foo[0] necessarily related to $foo?
No.
Have you done object-oriented programming in perl?
(the truth for this candidate)
Follow-up (If OOP in Perl): What is the first element passed to each "method" when called in an object-oriented way?
"$self" (by convention), i.e. the reference to the object being acted upon.

C/C++ (either/or questions):

What's the function signature for "main"? (alternate wording: write a function prototype for main) (if they need help: what are the return and argument types, and the typical names for the latter)
generic: int main(int argc, char *argv[]);
unix-centric: int main(int argc, char *argv[], char *envp[]);
alternate: char **argv instead of char *argv[]...

C++ specific questions:

STL:

(Mostly to be written... but here are some basics to start with:)

Are you familiar with the STL?
The truth, whatever that may be. ;-)
Follow-up: if so, describe it in brief
Things they might mention: containers (list, queue, deque, map, multipmap, etc.), iterators, templates, ...

XML:

What does XML stand for?
eXtensible Markup Language
Describe what an empty tag is, and how it's indicated within a document
A tag with no content (save possibly attributes), and therefore no (separate) close-tag. <tag-name/>.
Possible follow-up (depending on the response above): If they don't have any content, why are they useful?
Two main ways they can be useful: (1) to signify something which truly doesn't have any sort of "content" (like a "horizontal rule"); (2) they may still have "attributes", which give them content of a sort.

XSLT:

What does XSLT stand for?
eXtensible Stylesheet Language -- Translations
What is the XPath notation for the current node?
'.'
Name two main ways templates might get called
(1) as a "match" template; (2) as a named template

Databases, generic:

(TBD... something about normalization?)

Databases, SQL:

(TBD... basics of a select statement, etc?)

UML:

What does UML stand for
Unified Modeling Language
What are a few of the things UML is useful for?
modeling databases, workflow, program logic, ...

Generic "thinking" questions:

Why are (so-called) "man-hole covers" round?
Several significant reasons: (a) physically incapable of falling in; (b) don't have to worry about getting correct orientation; (c) easier to move once pulled (if you needed to move them...)
You're in a room with three light switches, labeled A, B, and C. Those switches are connected to 3 light bulbs in another room, the inside of which you cannot see from the room with the light switches. The lights are labeled 1, 2, and 3. Each switch controls exactly 1 of the lights, but the mapping is unknown. What's the fewest number of trips you need to make to the room with the light switches to determine the mapping, and how do you do it?
One: Turn on A, and leave it on for a minute or so; Turn off A and turn on B; go to the other room... You should have one light on (B), one off and warm (A), and the other off and cool (C).

Non-technical:

If you were to run into technical issues that were blocking your work on a project (i.e. you're "stuck"), what would you do?
Look for answers on online forums (e.g. web search, newsgroups, interactive sessions, etc.); ask for help from peers and/or management; etc.
Follow-up (for "online forums" answer): What concerns would you need to keep in mind when going on-line for technical answers?
Proprietary technologies mean you have to be careful how you ask your questions, so as to not give away too much information about what's going on within the company.
What are some of your weaknesses, as a potential employee?
Looking for honesty here, basically... and for an ability to be comfortable being self-critical
What are some of your key strengths? (either not from your resume, or that you think are particularly important among those listed)
Giving them a chance to put themselves back up, after the last question... ;-) Also looking for... something; not sure what. hmm.