Common Interview Questions
As recorded by WiCS
The prospect of a technical interview can be daunting. After all, in addition to the normal interview questions about what your strengths are and why you're interested in Company X, a complete stranger is going to ask you to write code on the spot! Oh, the humanity!
Thankfully, the whole process of interviewing will be much less intimidating if you go into it with an idea of what to expect. To this end, members of WiCS have begun compiling a list of typical interview questions that you can work through on your own or with a friend holding a mock interview for you. Enjoy, and good luck! We're sure you'll do fine.
Questions about you
- Tell me about yourself. (You should have a short pitch prepared which highlights your skills and experience.)
- Why do you want to work at [COMPANY X]?
- What makes you excited about computer science? (e.g. a course you've taken, a topic you've read about, a project you've worked on...)
- What is the most significant project you've worked on thus far? What was the design process for it like? (Know the class structure for it.)
- If you could work on any project at [COMPANY X], including a project of your own design, what would it be? Why?
Questions about CS
- How would you code an algorithm which takes in a string of characters and returns the index of the first character in the longest sequence of identical characters? (For example, given input aabbbc, the algorithm would return 2.)
- How would you code an algorithm which finds whether there are any cycles in a linked list?
- How would you code an algorithm which reverses a linked list?
- How would you code an algorithm which performs a depth-first search on a graph? A breadth-first search?
- How would you code an algorithm which takes as input a dictionary of valid words in a language and a string which is a valid word in said language and returns a list of all anagrams of that word?
- How would you code an algorithm which reverses a string using as little space as possible?
- How would you code an algorithm which, given an array of two-character strings, returns the number of matching pairs?
Other stuff you should review
- Common sorts and searches.
- Major components of object-oriented paradigm. (If that's your thing.)
- The keywords in your language of choice--you should have an idea of what every (not archaic) one does.
- The structure, features, and paradigm of your programming language of choice as compared to other languages out there.
If you have anything you'd like to contribute to this list, please e-mail it to wics [at] cs [dot] brown [dot] edu!