Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am preparing for an interview at google, and it will involve programming questions as well as design questions. I have done interviews with facebook and amazon, and I didn't do well in the design part of the interview for both companies.

I was asked to design a restaurant reservation system, an array of caches, and the facebook friends list. The questions vary in very different ways.

Can anyone give me suggestions on how to prepare for this kind of interviews and how to get better at this in general?

I wonder if there are places like careercup.com which is very helpful preparing for algorithm interviews, it has some design problems as well, but not nearly enough.

share|improve this question

closed as not constructive by gnat, BЈовић, Dynamic, GlenH7, StuperUser Jan 17 '13 at 12:24

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. If this question can be reworded to fit the rules in the help center, please edit the question.

Project Euler may help. It doesn't focus specifically on job interview questions, but it's awesome for applying algorithm design. –  Zach Latta Jan 17 '13 at 8:07
If you're wondering what will be asked by Google, check out steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html –  Zach Latta Jan 17 '13 at 8:09

1 Answer 1

My thought process for such question starts from the basic unit or basic functionality that you need for such system. e.g for reservation system it will be Order. So first you must answer following questions?

  1. What an order should be made of? User and time.
  2. Do I need to have separate user structure, or can I save it only with order?
  3. How to check if some table is available at that time? I need relation between table and time.
  4. How can I store this relation?
    So on and so forth.

For facebook freind list, it would be the post should be visible to friends. Or the user should be able to see all friends friends.

Practice and only practice makes the person perfect. Start thinking about some design of your own for some common systems.

Also don't hesitate to ask the use case to the interviewer if you are in doubt.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.