10 answers
David’s Answer
Every interview is different. It varies from company to company, interviewer to interviewer. It also seems to vary between industries. For instance, the way I'd approach a job interview for an engineering position is completely different from how I'd approach a business or marketing interview. So, I'm glad you specified "Computer Science jobs" in the question.
For a time in my career I worked as a software contractor. Being a contractor I would jump from company to company every few months over the course of several years. Each time I would approach a new contract I often would have to do an interview with the new customer. After many many interviews I feel like there's about 3 kinds of typical interviews I see quite frequently:
The "HR-provided list of questions" interview
Being a good "interviewer" can be challenging. It can require social skills that don't come naturally to you. Often times a company's human resources department (HR) will provide a list of canned questions to be asked. Generally these questions are intended to get a conversation going and they're written in such a way that they could be used to interview for ANY kind of position (even non-engineering positions). A quick Google search for "typical interview questions" will get you lists of such questions you can study for. These kinds of interviews are actually quite common; even for engineering positions.
Source: https://www.themuse.com/advice/how-to-answer-the-31-most-common-interview-questions
The Technical Interview
These are the kind of interviews that give developers nightmares. They are also quite common so you should focus your efforts to prepare for them the most. Here are some things to keep in mind when preparing:
It is quite possible that these interviews will be poorly designed. Often times the interviewer will simply google for technical interview questions and use those without considering the questions themselves. I've gotten questions before that even the interviewer didn't know the answer to. An engineer assigned to interview you is not always one who will be impacted by your being hired.
Sometimes, the questions being asked could be designed entirely to frustrate you to see how you handle under pressure. Ultimately, I suggest you just keep a cool head about them. It's not the end of the world if you mess up and there's always another company looking for a computer scientist. With time and experience you'll get better and better. Some people have interviewed at well-known companies like Google and Microsoft multiple times till they happened to land a good interview and finally get the job. Don't give up.
For the interviews that are well designed... those, you can actively study for. Generally interviews for individuals looking to land their first job will focus heavily on the CS fundamentals you should have been taught in school. Many individuals don't have a long work history so employers will tend to focus more on "how well did this individual learn the fundamentals they were taught".
Sometimes such questions will be academic in their format. For example, they may ask for a textbook description of a particular data structure.
Sometimes such questions could be in the form of a word problem. For example "What kind of algorithm might I use when...".
Sometimes such questions might be full blown coding exercises. For these I suggest you make sure you are comfortable coding without all your tools and search engine nearby. Try doing problems on the whiteboard or on paper.
Good technical interview questions are being invented all the time so it's hard to study for them. It'll be hard to be confident going into them because they're a moving target.
When I know I'll be faced with a technical interview in the near future I pretend I'm going to interview for Google. There's lots of example questions and resources you can search for in order to prep for Google developer interviews and they will keep you on your toes.
Source: https://techdevguide.withgoogle.com/resources/types/coding-interview-question/?no-filter=true#!
The Experience Interview
Lastly, I see a lot of interviews where the interviewer will probably start with a few typical HR-approved questions (see above) but then lead into a bunch of questions designed to get you to just talk shop for a while.
Examples of such questions might be:
- "I see you've got C++ on your resume, could you please tell me about a fun or interesting project you wrote in C++?"
- "How comfortable are you learning a new coding language?"
- "We do a lot of work using Amazon Web Services on our team, what kind of work have you done with AWS?"
The point of the Experience interview is to focus on story telling. You'll see more of these later in your career because by then employers will assume you sufficiently know the CS fundamentals by the fact that you've been employed in the industry by someone else.
These interviews will be rare when looking for your first job but they're still important to prepare for. When I am expecting one of these kinds of interviews I spend a lot of time looking at my resume and thinking of ways to explain how I've used each of the skills I've listed. Sometimes I'll even write down notes on all the stories I'd like to be able to share during the interview.
Ultimately, sometimes you don't know what kind of interview you are walking into. You need to research each company and find out what their interviewing process is like. Also find out what their company is like. It'll show an interviewer that you've done the due diligence to research what you are applying for.
Lastly, I'll address "what questions to ask them". I do feel strongly that an interview should be a two-way conversation. Taking on a new job generally makes a big impact to your life and it's to both your benefit and the employers that it be a win-win situation. So ask questions regarding how the job will impact your life the most.
- Ask about the work-life balance.
- Ask about the benefits.
- Ask about the type of work they intend you to do.
- Ask what the company's core hours are.
- Ask about opportunities to advance within the company.
- Ask about opportunities to learn new skills on the job.
- Ask if you'll be required to travel.
I currently work in an office that is "dog-friendly" (meaning people bring their dogs to work) so it's important that we ask if applicants have allergies and if they'll be able to work in such an environment (in case they didn't look at our website...).
Make sure the job will be just as good a move for you as it is for them.
David recommends the following next steps:
Wes’s Answer
I like to ask behavioral questions because I want to know how you interact with people, how you solve problems collaboratively, and how you solve problems that are difficult.
One question I like to ask is: Can you tell me about your biggest accomplishment in your career to date?
With this question, I can ask follow up questions about the team you worked with, the technologies you used, the hard problems you encountered and how you solved them as well as where you may have failed and how you overcame that.
Wes recommends the following next steps:
Andrew’s Answer
Mario’s Answer
In my humble opinion, current trendy interview questions are getting useless. My reasons are:
- They are usually very theoretical and only demonstrates you paid attention at your C.S. lectures. They may be useful if you are willing to write top-tech code (e.g. a database) but not usual use cases.
- Sometimes, interviewers expect to get the correct answer to problems that the interviewee has never had. In a real job, you have your time to look for current solutions, documentation, discuss with other colleagues...
- The most important: there is a large number of books (e.g. "Cracking the code interview") that prepare you to pass this kind of questions, which are usually very similar across different companies (at the end, everybody has the same question as you and looks for the top entries in Google). Your candidates could pass the questions without demonstrating their validity.
I think it's better to ask the candidate for a small project to be completed at home, which would allow demonstrating its skills, and then do an interview to discuss about it (which improvements could be done if you had more time, which weaknesses does it have, etc...).
Rohit’s Answer
Do you mean a job in industry or academia?
Industry may want a CS degree but more they want someone can do the job they think needs done (sometimes they even correctly identify the job to be done).
Entry level Questions tend to focus on ensuring your technical competence. Sometimes this is book knowledge, sometimes this is a coding problem and sometimes you get a piece of code to debug.
Higher level roles tend to focus on your organisational ability and ability deal with people and uncertainty (I found many developers, some architects, and most managers cannot handle uncertainty)
Questions I have been asked include:
Detail your experience with A,B,C,D,E,F
How would you debug an intermittent thread deadlock and then prevent it happening again
What is a race condition?
Will this code compile?
When did you manage to persuade someone to accept your idea and how did you do it?
In academia the questions will boil down to
“Will your research help us bring in more money than is costs to employ you, before your temporary contract, which includes teaching and admin as well as research, ends”
There are lost of lists of interview questions on the web. Ask Mr Google.
Basically though most interviewers want to know
Can you do the job?
Will you do the job?
Can they work with you?
Will you fit the culture?
Will you work 60 hourss for 40 hours pay?
Will you be a threat to the manager’s job?
Jeff’s Answer
One part of a typical interview for a Computer Science job could be a Code Challenge or Code Review. Typically these consist of the interviewee working through an algorithm or problem, and may ask you to work through these problems with examples of code. The interviewer would want to see how you go about solving certain problems, and get a general understanding of proficiencies or your experience and knowledge.
Abhishek’s Answer
Review job posting before the interview and brush-up accordingly.
Entry level Questions tend to focus on ensuring your technical competence.
It could be book knowledge, coding problem or you get a piece of code to debug.
You won't believe how many applicants fail the most basic
"On this piece of paper, write a simple algorithm that shows the Fibonacci sequence, then explain how it works."
The question shows the applicant's skill in explaining a simple algorithm, how the applicant would illustrate it in the most simple terms
Higher level roles tend to focus on your organizational ability and ability deal with people and uncertainty
There are lost of lists of interview questions available on web, try participating in different code challenges.
Try searching interview experiences, it might give you a good insight.
All the best for your job search.
Ekan’s Answer
First, kudos for choosing technology field - it provides you with a lot of opportunities!
Computer science is a wide field with different kinds of job categories, so the interview questions will depend on the kind of role you are applying for. For ex: If you are applying for coding/programming role, then the questions will be related to the specific programming language. You will get project management related questions if you are applying for project/program management role, etc
Having said that, there are some common questions you will get for any roles. Questions like - How do you work best with teams, how do you keep yourself updated with the technology as it evolves, some challenging assignments you took on and how you succeeded (or what you learned if it was not successful), etc.
I would suggest you narrow down the kind of role you are looking for and then seek some help for best ways to prepare for interviews specific to that role. Here is 1 website that lists some of the roles in the computer science field:
https://www.thebalancecareers.com/top-jobs-for-computer-science-majors-2059634
Good luck!
Navya’s Answer
The basic programming questions could be asked. some would ask just the logic/algorithm for a program. In some interviews, you might need to execute a program and show them the output. It depends on the company's interview procedure which you would know once the interview is scheduled. Having a good understanding of programming concepts, Data handling and presentation is the key. You will get questions on the projects you handled using the tools, technologies which add up as you gain experience through years in your career that are in your resume.
Navya recommends the following next steps:
Chris’s Answer
When I'm interviewing someone, I first ask two questions:
- What did you do to prepare for this interview?
- Could you take a moment to think about your most significant technical accomplishment, and tell me about it?
For this first question, it shows me how much the candidate cares about this job, and how motivated they are to learn what they can before jumping into something.
For the second question, I want to know everything that they can tell me about it. I will ask follow-up questions:
- A complete description of the accomplishment and its impact.
- The actual results achieved and the process used to achieve them.
- When it took place, how long it took and whom it was with.
- Three or four biggest challenges you faced and how you dealt with them.
- Some of the major decisions made.
- The technical skills learned and used.
- The team involved, including titles and reporting relationships.
- Some of the biggest mistakes you made.
- How you changed and grew as a person.
- What you would do differently if you could do it again.
- What you liked and didn’t like.
- The budget available and your role in preparing it and managing it.
- How you did on the project vs. the plan.
- How you motivated and influenced others, with specific examples.
- How you dealt with conflict with specific examples.
Basically: How much do you actually know about the thing you say you did, and how well can you talk about it?
That's for the first short interview. What also matters to me is: What questions do you ask me? Asking good questions demonstrates that you know that you have value. This whole job interview thing is not a test, where I give you a passing or failing grade. It's more like dating: Are you and this job going to be a good fit? I feel confident in candidates who get that, and who are trying to find out if the job is a good fit for them. These candidates present as more mature and in touch with what's really going on.
After that first interview, there are more technical portions: coding challenge, whiteboard interview, pair programming exercises with people on the team you're applying for. Many of the other answers here cover those topics.