Originally posted by: benliong
Hey Paulney, can you give us some example of what kind of questions you ask to screen people out?
Just out of curiosity.
Since I'm now working in C++ shop with emphasis on network, the questions are liek this:
C++
- When and why would you use virtual destructors?
- You have a crashing program but it doesn't hit main() in the debugger. What's happening?
Threading / synchronization
- What are deadlocks, races and thread starvation? (extra credit What is priority inversion?)
- What is the difference between a thread and a process? (For win32 people - What's the difference between a critical section and a mutex? Why would you use one over the other?)
Sockets / TCP
- What i/o functions does a TCP/IP server program make and in what order?
- What are TCP and UDP and what features do they provide over plain IP?
Scalability concerns
- What is refcounting and why do you use it?
- List some things to avoid when writing highly scalable servers
- memory allocation / deallocation. Which is worse allocation or deallocation?
- context switching
- locality of reference
- blocking i/o
- memory copies