Katie Smith, Assistant Director, Duke University Career Center,
As a career adviser who works primarily with undergraduate students in the STEM fields, I meet frequently with engineering, computer science, and other students who are preparing for technical interviews. Technical interviews are used in a variety of fields and can vary significantly between industries, companies, and even individual interviewers. For the purposes of this post, the focus will be specifically on a certain type of technical interview, the coding interview.
Let’s start with a confession. I’ve never taken a computer science course. I’ve watched some online videos, but the only programming I do involves room and food reservations and facilitating presentations, not algorithms and data structures.
Without knowing how to code, helping students prepare for programming interviews can be challenging, and even a little intimidating. However, coding interviews aren’t so different from other types of interviews, so don’t overlook the skills you have as a career adviser!
Here are some tips for helping students prepare:
Don’t forget the traditional questions
Many technical interviews include traditional interview starters such as “Tell me about yourself.” “What do you know about our company?” and “Why are you interested in this position?” These are great ways to warm up when helping a student prepare, as students should always anticipate these questions.
Practice communicating and decision making
To succeed in coding interviews, students must know how to talk through problem solving. Interviewers present a question or scenario, and expect students to ask questions, consider responses and possibilities, weigh options and ideas, and make decisions, all aloud. It’s less important for students to come up with the right answer than for them to show a clear thought process, an ability to problem solve, and strong communication skills.
Ask questions and pay close attention to your student’s response. Does he ask further questions to better understand the target client (age, needs, interests), any restrictions (such as materials, budget, timeline), and resources available? Does she think creatively about client needs and how to address them? Does he weigh his ideas and mention why he chooses to go in a particular direction? Does she present something innovative? Does he address how he’d approach building the model he suggests?
Your student doesn’t need to invent the next piece of technology and regardless of your level of technical knowledge, you should be able to both ask and provide feedback on answers to basic design questions.
Types of questions that I’ve found to be particularly useful for this type of conversation are open-ended brainteaser, design, and scenario.
- How many basketballs are there in the state of North Carolina?
- How many quarters would it take to create a stack as tall as the Empire State Building?
- Design a phone for an avid traveler.
- Design a new voting system for a college student government election.
- Design an alarm clock for a person who is deaf.
- If you were to create an app for students who want to see and sort all events on campus, how would you go about that process?
- How would you learn more about the technical needs of students with disabilities on your college campus?
Do you have recommendations of other types of interviews or examples of process-oriented interview questions to use in helping students communicate problem solving? Share your thoughts in the comments below!
Consult technical resources
There are plenty of resources online for students to take advantage of for practicing specific technical questions. Leetcode.com helps users prepare for coding interviews by presenting practice questions and allowing users to submit their code for review. A wide range of other sites have programming questions to use for practice, including: Programmerinterview.com, Career Cup, and Geekinterview.com, which feature technical questions for a variety of other engineering fields as well.
A simple search of “coding interview” on YouTube will result in a wealth of interesting videos with experts speaking on the coding interview process, as well as some individuals sharing examples of walking through coding interview questions.
Several books worth checking out are Cracking the Coding Interview and Cracking the PM Interview both by Gayle Laakmann McDowell, and Elements of Programming Interviews: The Insiders’ Guide, by Adnan Aziz, Tsung-Hsien Lee, and Amit Prakash. Revisiting foundational textbooks on programming and algorithms can also a good way for students to brush up on the basics.
Recommend practice, practice, practice
Tell student you recommend they find a practice buddy. Students who are preparing for coding interviews will be more prepared and have a richer learning experience if they are practicing with a peer who can offer additional ideas and feedback.
As an additional point, students in a coding interview should anticipate coding on a piece of paper or a whiteboard instead of a computer, a skill they’ll want to get plenty of practice in before it becomes time to interview, and also a good one to practice with the feedback of a knowledgeable buddy.
In an in-person interview, students should expect to write code on a blank sheet of paper or on a whiteboard. This can be challenging since, prior to interviewing, most students have done all of their programming using a computer. Coding by hand will take some getting used to, and students who invest the time practicing prior to an interview will be glad they did.
Notably, if the interview is conducted over the phone or virtually, the student may be asked to code on a shared online document, viewable by both the candidate and the interviewer.
Collaborate with your partners
Does your office partner with a faculty member in computer science? Do you have active student organizations with student leaders who have successfully navigated coding interviews? How about an employer at a technical company eager to connect with students?
Last year, a conversation at a networking event turned into a local engineer generously visiting our (Duke University) campus to give a presentation on coding interview tips for students, a program that had a huge turnout for both undergraduate and graduate students. The engineer gave advice on approaching the interview process and specific technical topics that far exceeded my own technical knowledge, a great benefit for all attendees.
Share the programming love
Most interviewers leading technical interviews are engineers and programmers themselves, and they’re the perfect audience for geeking out. Engineers tend to enjoy swapping programming stories and challenges with others who share their interests. Engineers love asking and hearing about students’ technical experience, specific projects, why they enjoy programming, and interesting challenges or bugs they’ve encountered and overcome. Students should prepare to give specific examples of why they enjoy coding, how they’ve developed the interest over time, and interesting challenges or bugs they’ve encountered, and how they found, diagnosed, and fixed them.
Show your work!
Have your students been working on an app, a website, or other accessible code or technology? Taking out a phone or computer during an interview may go against just about every piece of advice we typically give, but showing examples of projects during an interview can show evidence of skills while leading to a rich conversation about challenges and ideas.
Students should check with their interviewer to ensure this is appropriate, and only do so if they are given approval. They should also be sure everything is already opened and readily accessible, with all other apps and programs turned off.
Don’t forget about testing
Several employers have mentioned that students rarely bring up testing in an interview setting, but those who do tend to impress their interviewers. When students write code for class or projects, it often does not undergo the same testing and maintenance necessary in industry, and not all students will think to bring this up. Students should think not only about writing the code, but how to check it as well.
In sum, you don’t need to know how to code in order to help your students prepare for coding interviews. Work collaboratively with your students to understand the coding interview process, and what they can expect.