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.