Interview Questions

From EggeWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

As part of my job, I am regularly interviewing developers. Often, before a interview a canidate, I do a Google search for them. What I'm hoping to find is:

  • Open source projects they've contributed to
  • Technical postings they've written on messages boards
  • Interesting blog postings

I well prepared canidate as likely Googled me before the interview. In fact, you the reader of this page, may be one such canidate. Well to give you a little help, I'll give you some of the questions I'll probably be asking you. I've posted a subset fo the questions which I usually ask. See also my Phone interview tips

Java Questions

  • What's the difference between .equals and ==. If you can't answer this, it's probably going to be a short interview.
  • Can you put constants in an interface? If so, is this a good idea?
  • Why do people say Java isn't a true object oriented language?
  • What is a weak reference?
  • In Java 1.4, how would you create a type safe enum?

C++

  • Explain the difference between a macro and a template.
  • What is an initializer list? Why use them? When would you be required to use one? What order are variables initialized?
  • What's the difference between a reference and a pointer? Which one do you prefer to use?
  • How do you see what functions a dll or so is exporting?
  • How does a unix program determine where to find it's libraries when it is executed?

SQL

  • What is an inner / outer / self / theta join?
  • Give me an example of a query with a HAVING clause.
  • If you have a time series table which contains the columns instrument, date, & price, what indexes would you create?
  • What is meant by the ACID model?
  • What is a composite primary key?
  • How do you represent a many-to-many relationship?

Network

  • How can you have one thread wait on multiple sockets?
  • Explain how multicast works.
  • What are the five elements which uniquely identify a socket?
  • What is the purpose of the TIME_WAIT state?
  • If a have an echo server on a local network, how many requests per second could a single client make, assuming it has to wait for the response before sending the next request.

Architecture

  • What is virtual memory?
  • What is the difference between virtual memory and virtual address space?
  • What is the difference between kernel and user address space? How much of each do you get on Windows, Solaris, Linux, etc..?
  • What is a memory mapped file? When might you use one?

Unix

  • How do you check the return code of the last command which executed?
  • How can you tell the number of lines in a file?
  • What do the following file permissions mean: 644, 400, 755?
  • What do the following variables represent in an sh script: $$ $? $@ $#
  • Explain what load average means.
  • In debugging a compiled executable, how can you see what system calls it is making?
  • Explain the difference between a .so, .a, and .la files.
  • How to determine if an executable is a 32 bit or 64 bit program, and what architecture was it compiled for.
  • Explain how the dynamic linker determines what libraries to link dynamically. Explain how to change this.
  • How do you truncate the log file of a running program?
  • What's your reputation on [1]?
  • I want my files to have 660 permissions by default. What umask should I use?
  • What's the difference between sourcing a script and executing a script?