The key is to ask challenging questions that enable you to distinguish the smart software developers from the moronic mandrills. And to help you with that, I decided to publish my private list of 100 interview questions for software developers.
This list covers most of the knowledge areas as defined by the Software Engineering Body of Knowledge. Of course, if you’re just looking for brilliant programmers, you may want to limit the topics to Construction, Algorithms, Data Structures and Testing. And if you’re looking for architects, you can just consider the questions under the headings Requirements, Functional Design and Technical Design.
But whatever you do, keep this in mind:
For most of the questions in this list there are no right and wrong answers!
My questions are simply starting points for interesting discussions. For example: there is a question about reasons to use static methods vs. singletons. If this triggers your candidate to start a tirade againt both static methods and singletons, there’s a good chance you’re dealing with a smart software developer! But if the candidate can produce nothing more than a blank stare and this sound, then he might very well be a moronic mandrill. Likewise, there are many correct ways to find out whether a number is a power of 2. But if the candidate suggests using the mod operator, well… you know what I mean. (And if you don’t, no problem. Fancy a banana?)
Do you seek more advice for Software Developers, Team Leaders & Development Managers?