"Tell me about yourself" - just a few facts, show enthusiasm in moderation
"Why are you here?" - you are looking for interesting work and collaborators
Education
Work experience
Academic projects you've worked on
Questions about current technology - interviewer is looking for basic knowledge
Development processes - agile, SCRUM, ... - just the basic ideas
Projects listed in your resume'
Top level - 5 minutes:
what it does
Brief coherent description of project uses what's interesting
Technology, features, structure
what's hard
Technology, timing, flow, parts of implementation
what are the top level parts
briefly describe processes, packages, and how they interact
Parts - 20 minutes
Process diagram
draw on white board - client, server, ...
Package diagram(s)
draw on white board - names, calling relationships, responsibilities
possibly class diagram
show four relationships: inheritance, composition, aggregation, using
Details for some important part - 20 minutes (not very likely as interview question)
Asynchronous message-passing communication
explain concept, flow, routing, ...
Writing Code
You need to be able to write code without the help of IDE wizards
Verbalize your thought processes
Start by summarizing in a sentence or two what you've been asked to do
Make a short list of tasks the code has to execute
Next rough in the interface and the data structure(s), talking as you go
Don't get flustered if interviewer suggests changes:
Oh! that's interesting ...
Before the interview, look at several of the class midterm code questions. Try to
rough in your answer (before looking at mine) in these terms.
Practice writing code at your desk and at a whiteboard with your friends. Spend
an hour a day, five days a week, for several weeks before your interviews.
Designing Systems
Start by laying out machines or processes, e.g., client and server
Quickly list the responsibilities of each - a sentence or two
Describe the data handling - db tables, JSON arrays, ...
Discuss user interactions - a task list might be useful
Discuss scalability - sharding data onto multiple servers, load balancing
List issues if you can think of any - communication, complexity, performance, attack footprint
Before the interview, look at one or two of your class projects and try to address
each of these. That will make it easier to respond during the interview.
Behavioral questions
Show your team orientation:
Take as little help as practicalgive as much help as practical
Show you can live in a project's context
use the team tools
follow the team procedures
communicate consisely and frequently - but not too frequently
Study for interviews
Algorithms and library data structures
C++ classes, templates, libraries
C# and Asp.Net Core
Web development: HTML, JavaScript, CSS, MVC, Web APIs - focus on basic ideas
Practice coding at white board
Know what REST, MEAN, MERN, Agile, DevOps mean - wikipedia is your friend
Advice
Take one of the projects on your resume and craft 1 minute, 5 minute, and 30 minute presentations.
Quick review of concept, UML diagram(s) discussion, whiteboard code: what classes, responsibilities,
activities, write small code fragments that support discussion.
Think about what you want - not just a job - and how that relates to what the company does.
Craft a very simple and direct description of who you are - no fancy words, no self-evaluation
- just your interests, experiences, and technical things you most like to do.
Be prepared for questions about how you interact with people. Your goal is to show that you are
self-starting, willing to take advice, and that you will interact well with team members.
Don't make claims about this - not convincing - rather show by examples of things you have done.