Interviews
From Foreignliving
(→Others) |
(→Company Specific) |
||
Line 114: | Line 114: | ||
* Make inverters, NAND gates etc that reconstruct signals rather than operating on the input.. | * Make inverters, NAND gates etc that reconstruct signals rather than operating on the input.. | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
==Links== | ==Links== |
Revision as of 23:50, 15 February 2007
Please note that the questions and answers have been contributed by volunteers and are not guaranteed to be optimal or correct, but they will give you insight about what to expect and serve as a useful starting point. Check the Links section at the end for websites that contain sample questions.
When the sections below grow too large, they should be transferred to independent pages. One logical partition is to separate interview tips and sample interview questions and answers.
Contents |
General Interview Tips
(someone should take the time and re-order the following in order of relevance or importance)
- Prepare a 30-second introduction. The first question you'll get in most cases is "Tell me about yourself."
- Be relaxed, but confident and professional in your behavior. Avoid using words like "um..." and "like..."
- Keep a check on non-verbal actions. Some people get carried away with hand waving and gestures and don't notice it due to nervousness.
- If the dress code is not specified, be conservative and wear a business suit, especially if you are in the US and the interview is for a full-time position. Otherwise a business-suit is not needed when the dress code is specified as business casual or casual.
- Avoid close-ended answers like just a "yes" or "no".
- Be formal when using written communication with the hiring manager. e.g. don't start emails with "Hey, "
- Know what kind of interview you're in for. Is it a panel interview? A one-on-one interview? Mentally prepare yourself for it ahead of time.
- Know your interviewer, his/her position/role/responsibilities. Is it the PM, or the director, or the sysadmin.
- Know the company from a business and technical perspective. You can get questions like "So what do you know about our company..." to see how enthusiastic the candidate is and how much research he has done on the company. This kind of research is easy to do, most company have this info on their websites.
- If you plan to send a thank-you letter as a follow-up (see job search letters), then it is ok to do so by email. Don't wait to send by post, decisions are made quickly.
- Hone your analytic and problem-solving skills
- Ask relevant questions
Types of Questions to Expect
The types of questions to expect can be classified according to various criteria. The following is one such classification:
Initial questions
The first few questions will almost always ask you to comment about yourself or about something that you have done, in order to get to know you better. Anticipate these questions and prepare responses before-hand. The aim of these questions is to solicit a response from you and obtain your self-assessment. Answer them positively and confidently, don't be tentative.
For example:
- What role did you play in this project <some project from your resume>. When answering, be careful between the use of "I" and "we", because you want to highlight your contribution.
- Tell me about ... a project when someone didn't do their share of the work, or some experience that didn't go well. A follow-up to this is how did you resolve that problem.
- Tell me about ... when a deadline was approaching and ....
- What do you consider your biggest strength, or alternatively your biggest weakness.
- Why do you want to work for our organization, or what do you know about our organization?
Spontaneous questions
The idea behind such questions is...
- to see how you respond to a hypothetical situation.
- to attempt to "rattle" the candidate to see his behavior under pressure, with
- off-the-wall questions
- in case of multiple interviewers: rapid-fire questions
- good cop/bad cop: two interviewers will deliberately take opposite sides and ask for your evaluation
- out-of-the box questions: do a complete shift and ask you about something completely random, for example: what is your favorite sport, why?
For example:
- add examples here
Wrap-up Questions
- In case of a full-time position and a final interview, the interviewer may ask about your salary requirement or salary expectation. Make sure you've done your homework. Give an informed answer like (I know in the Austin area a Java programmer with X experience earns between A and B, and since I am just entering the job market, I would expect to be somewhere near the lower range). Try to give ranges instead of a specific amount.
- The last few minutes are to give the interviewee an opportunity to ask questions. Don't look stupid and say you have nothing to ask. Prepare questions before-hand, but not to stump them, nor ask some obscure question, nor ask something for the heck of asking, and try to avoid asking about salary (unless there is no better place and time for that). In case you have really not done any research on the company, questions like the following can be used:
- What in your opinion makes ABC such a great place to work?
- What in your experience have you found to be the most challenging problem?
Technical Interview Tips
- Technical interviews provides a means to the employer to gauge what do you really know, how much have you really done.
- Talk through your thought process (think aloud) so that they can see how you diagnose the problem. The answer is not what's most important to them.
- Ask for clarifications when you need to. Some interviewers will purposely give you a vague question to see if you'll just try to blindly solve it without understanding the entire problem. Make sure you understand the question before you start answering. You can say "let me make sure I understand the question..." to confirm.
- Don't be afraid to say "I don't know" when you really don't know.
- Refer to your resume if you get the opportunity.
- Learn from experienced interviewees, ask them what would they do differently.
Computer Science specific advice
- All the stuff you learn in algorithms and data structures and computer architecture really is importantMake sure binary trees, heaps, linked lists, arrays, etc are fresh in your mind. Linked lists can be double linked or singly linked
- Be prepared to answer what the running time is and what the memory usage is. Running time can be discussed in terms of max time or average - offer both. Insertion time into a binary tree is O(n) for max time, but O(lg n) for average
- Recursion through a linked list uses O(n) memory because of the stack
- Talk about and work out your algorithm before coding... Even if you don't know how to do it, just start talking about your various ideas and why they wouldn't work
- Practice ahead of time by writing code on a piece of paper, then typing it up and running it and see how you do. Practice in particular problems with string manipulation
- Be prepared to have to code on a white board
- Offer to do a problem either recursively or via iteration, if possible... If they don't say anything, do it via iteration, since it uses less memory
- Check: did you do the appropriate bounds checks? Did you check if things are null? Run through a couple steps of your code to verify that it works
- When you're supposed to come up with the classes, start with the major ones and then go into what their members and functions are. Explain if it may be appropriate - and why or why not - to make, say, an application class a subclass of a file class
- Scan through each of the main data structures (binary tree, array, sorted array, linked list, double linked list, heap) and figure out which ones may work. Typically more than one could work, but one may be better than the others depending on the solution. For example, for the map, if you pretty much know the range of possible values for the keys, a hash table may be good. Otherwise, it may be best to use a tree. But, if you're going to be accessing elements a lot and rarely inserting elements, maybe an array would be best.
Sample questions
- What's the difference between a binary tree and a heap? When is one better than the other?
- What's the difference between recursion and iteration? (aka, in terms of computer architecture)
- What's the time and memory usage for inserting something into a binary tree?
- When are linked-lists better than arrays. Give examples.
- Write code that inserts a node into a binary tree
- Implement the ascii-to-integer (atoi) function
- Write a function prime(n), that finds the nth prime number. And how would you test it?
- If you have a bunch of points on a graph, how would you find the line which crosses through the most points? (you actually want to return the set of points though, not the line)
- You are given a m X n maze with a given start and end position and also some blocks of unreachable cells. You are also given the start and end condition. Your job is to find the shortest path.
- Ans: Depth or breath first search. Or convert maze in to a graph and apply Dijkstra. A follow up question could be which is better DFS or BFS. A possible answer could be that dfs is better when only the right path is deep and the others bump against dead ends quickly. If you have high branching , then BFS is better.
- What are the classes and data structures you would use for a file system
- What kind of data structure would you use to implement a map (not a location map... But rather a mapping from a key to a value)
Hardware specific advice
They give a simple problem. You have to solve it using a state machine. Then they ask you to make a mealy and moore (you should know the difference). Also ask you to implement using D,T or J-K Flip Flops.
Sample questions
Check http://www.softwareinterview.com for a list of sample questions. Go through as many questions as possible. Some sample questions are given below:
- Difference between Flip flops and latches.
- Setup hold-time, their violations and solutions.
- Clock skew. How to avoid. How dual clock helps?
- What do you mean by CMOS?
- Make a 3 input NAND using CMOS.
- Make a stick diagram of it.
- Define Elmore delay?
- Input that changes last should be tied closest to the output or not in CMOS? Explain?
- What are keepers in designing latches?
- Pulsed latches vs clock edged ones?
- Can you have negative hold, setup...make come circuit
- Whats are static 0 and 1 hazards..How to avoid?
- Tell in detail about meta-stability and how to avoid it?
- Use of buffers? How do they help in noise?
- How can buffers reduce elmore delay?
- Use verilog to make a MUX, Priority enocer, Decoder and memory.
- Difference in combinational and sequential...How to make combinational and sequential in verilog?
- They give a simple circuit and you have to make into multi level...or into NAND NOR circuit.
- When does verilog imples latches? How to avoid them?
- State table reduction method should be known.
- Logical effort, stage delays, electric effort etc and their formulas
- Basic Domino , dynamic and skewed gates. Their functionality and principles.
- P-transistor and n-transistor and their ability to pass strong or weak 1's or 0's..
- Make inverters, NAND gates etc that reconstruct signals rather than operating on the input..
Links
- Ace the Interview: http://www.acetheinterview.com
- CareerCup: http://www.careercup.com
- Interview questions and answers: http://www.softwareinterview.com/
- Sofware Interview: http://www.softwareinterview.com . Also contains hardware-related questions.