|
|
|
A common challenge which most computer science students face at one
point or another, is how to prepare for a technical interview. While there is
no arguing that technical interviews can be daunting, they need not be!
The Pitt Career
Services Center offers workshops, walk-in hours, and individual
appointments. The Center conducts mock interviews Monday through
Friday, although you need to schedule the interview in advance by
visiting Career Services at 224 WPU. Your mock interview will be
videotaped and the career consultant will give you feedback and
guidance for strengthening and improving your interviewing
skills. Awesome resource!
|
|
|
|
The following is a list of online articles, websites with lists of questions and tips, and books
which can help one prepare for a technical interview. We also include a
list of "Commonly asked interview questions" and advice on "How to
prepare for an interview" -- both courtesy of the Brown University
CS Undergraduate Group. These lists are by no means exhaustive, but are a
great place to start!
|
Articles
|
Websites
|
Books
|
Commonly asked interview questions
You will be expected to code on a whiteboard. Sometimes interviewers will give
you sample code and ask you to "review" it, i.e. debug, find memory leaks, etc.
Be prepared to discuss the space/time complexity of your solutions.
Also be prepared to offer refinements and extensions.
If you are not comfortable coding in a language, say so. This isn't a test to
see how well you remember the Java API.
For more info, check out "How to prepare for an interview" below.
- Technical
-
Sorting and Searching
- How would you merge n sorted linked lists?
- Given a list of n points, how would you find the k points closes to the
origin?
Linked Lists
- Determine if there is a loop in a linked list.
Strings
- Write a program to reverse a string.
- Reverse the words in a sentence.
- Implement atoi().
- Implement strcpy(). Do it in one line.
Operating Systems
- Implement mutexes.
- How do you know which way the stack is growing?
- Discuss different ways to do synchronization in a multiprocessor
environment.
Design
- How would you implement a video store? Draw the UML diagram.
- Design a cell-phone tower system. Remember that as a user
moves while on the phone, the connection should automatically be routed
through the nearest tower.
Brainteasers/Thinking outside the box
- Given a circle cake, how can you get 8 equally sized slices with only 3 cuts?
- How many dentists are in Manhattan?
- What is the square footage covered by 2+ lane highways in the US?
- How would you test a salt shaker?
- You are given 8 coins which are identical in appearance. One is a counterfeit and weighs heavier than the rest. Given a simple balance scale, how many weighings does it take to find the counterfeit?
Misc.
- What are the differences between C++ and Java?
- How would you go about finding bottlenecks in a simple file transfer
program?
- Non-Technical
-
- Talk about a large project you've worked on.
- What's a really hard bug you've had to solve?
- What are your favorite courses? Why?
- Talk about your previous job experiences
- If you had to describe yourself on a billboard, how would you do it?
- If you had $1000 to spend on new technology, what would it be and
why?
|
How to prepare for an interview
- Learn about the company.
This is everything from projects to company culture to current events.
Research their products -- if they make software that's available for use,
play around with it so you get a sense of what the company does.
- Learn your resume.
If a course or a particular programming language is listed on your your
resume, make sure it's there for a reason -- and that you can prove to an
interviewer you aren't simply resume padding.
- Brush up on your stuff.
You will invariably be asked coding questions. Make sure you know your data
structures, basic search/sort algorithms, and be familiar with the
basics taught in your upper level CS classes. (E.g. if you've taken AI, know
what a "heuristic" is.)
Remember to get a good night's sleep before the interview, and good luck!
|
|
Compiled by Katrina Ligett '04, Christine Davis '03, Tracy
Schultz '03, and Liz Marai '07, all Brown alumni.
|