http://en.wikipedia.org/wiki/Computational_complexity_theory

tech interview preparation for non-cs people

A non-computer science person emailed me that she had an interview with a dotcom company next week, and wanted to know what she could do to prepare for it. I ended up writing a fairly sizable email, which I thought would be useful to others as well. Here's my response:

I am assuming they have an idea about your background. If they know that you are not a CS person, then they should try to ask you questions that test your problem-solving abilities overall. Additionally, I guess they will ask you some basic CS questions so that they know that you can pick up CS skills when you're hired.

Some questions are also posed as logic questions, but actually have a deep CS background. For example: "when you are doing laundry, and you need to fold your socks, and you have a big tabletop to put stuff on, what's the best way to arrange them in matching pairs?". One option is to take a sock, and then take another one. If they match, then it's good. Else, throw the socks back in, and start again. Obviously, this is a bad solution. Look for "bucket sort" for a good solution.

You can compensate for this by just being very good at logic, but it does help to know some CS. Try to have an idea about computational complexity. You can ask any CS undergrad (senior, etc) about this.

1. http://pages.cs.wisc.edu/~hasti/cs367-common/notes/COMPLEXITY.html
2. http://en.wikipedia.org/wiki/Computational_complexity_theory

It helps to run through a few questions so that your brain is ready for the questions during the interview.

For problem solving, check out
http://www.techinterview.org/

I googled "_dotcomcompanyname_ interview questions" and found some more links.

Hope that helps, Good luck!
-a