896 Technical Interviewing
Introduction to Technical Interviewing
Emily Perry, associate director of professional development and networking at Penn Engineering, discusses the various types of technical interviews, focusing on virtual coding interviews.
Types of Technical Interviews
Virtual Coding Interview: Students may encounter various formats:
Video Interview with Code Editor: Utilization of platforms like CoderPad for real-time coding.
Video Interview with Document Sharing: Candidates write code on Google Docs or similar platforms.
Take-Home Assessments: Link to coding assessments completed independently.
Traditional Interview Scenario Questions: Employers may present scenario-based questions that don’t require immediate coding but assess coding thought processes.
What Employers Assess
Employers evaluate candidates on multiple levels:
Basic Level: Coding skills, problem-solving, test setup, and approach structure.
Collaborative Level: Creativity, teamwork, communication style, and cultural fit within the organization.
Deeper Level: Handling feedback, understanding the bigger picture, and breaking down complex issues.
Many students receive offers despite perceived coding shortcomings due to strong transferable skills.
Preparation Strategies for Technical Interviews
Practice is Essential: Utilize various resources for coding questions:
LeetCode: Free and paid coding questions.
Pramp: Paid service for mock interviews.
HackerRank: Offers numerous practice questions.
Career Cup: Paid service linked to "Cracking the Coding Interview," with great reviews from students.
Glassdoor: Check interview experiences for sample technical questions.
Peer Pair Programming: Collaborate with peers to practice coding and mock interviews.
Guidelines for Practicing
Aim for 2-3 coding problems per day, adjusting based on skill level.
Essential focus areas include:
Data Structures and Algorithms: Familiarity is crucial for interview success.
Programming Language Mastery: Choose one language for deep understanding, though employers may allow flexibility during interviews.
Practice Coding Without Editors: Develop comfort coding on paper or boards, mimicking interview conditions.
Time Limits: Introduce time constraints to simulate real interview pressure and practice under such conditions.
During the Interview: Coding Approach
Prioritize the Process:
Make your code functional first, then improve structure and efficiency.
Initial Planning: Take time to strategize before coding; avoid jumping in prematurely.
Variable Naming: Use descriptive variable names instead of generic 'x' or 'y'.
Framework: PDAAC
PDAAC:
P: Problem - Understand the problem thoroughly.
E: Examples - Think of similar test cases.
D: Data - Choose appropriate data structures.
A: Algorithm - Outline the algorithm needed.
C: Code - Complete your coding intentionally.
Communication During the Interview
Explain Your Thought Process: Talk through coding logic and decisions.
Ask Clarifying Questions: Feel free to request clarification; it shows engagement.
Maintain Professionalism: Avoid arrogance; use ‘we’ to indicate collaboration.
Light Interaction: Build rapport with the interviewer; human connection can set you apart.
Handling Challenging Problems
In Case of Uncertainty: If faced with an unclear question:
Pause: Take time to organize thoughts.
Start with Known Components: Discuss what you understand of the problem.
Outline Potential Resources: Mention where you would seek further information.
Offer Partial Solutions: Showcase ability to solve parts of the problem, even if the whole is elusive.
Steps Post-Interview
Ask Questions: Always have questions prepared to demonstrate interest and curiosity about the role and the team.
Inquire About Next Steps: Understanding the timeline for feedback is essential for follow-up planning.
Dealing with Imposter Syndrome
Recognizing Imposter Syndrome: Acknowledge feelings of inadequacy and combat them with confidence and preparation.
Reinforce Skills: Remember your preparations and practiced scenarios. Confidence can transcend initial uncertainties in interviews.
Final Note: Engage fully in interviews, connect with peers for practice, and approach each opportunity with assurance in your abilities.