1 of 19

Technical Interview Preparation

ACM Chapter at CSUF

2 of 19

Quick Resume Tips

  • Personal Projects (acmDev 👀)
    • Before you have experience, this is the most important part of your resume
    • Specify which technologies you used
    • Show that you love to program, love to learn, and are willing to put in the work
  • Highlight all of your accomplishments
  • GPA (Optional but good especially for defense companies)
  • Any work experience (even if not technical)
  • Extracurricular Experiences (Community Service, ACM !!)
  • Coursework if you have space

3 of 19

The Process

  1. Submit your resume (online usually)
  2. Receive an email with next steps from organization
    1. Online Assessment (OA)
    2. Video Recordings for Behavioral Interviews
    3. Possible Screening like Personality Test
  3. Behavioral Phone screen (personality stuff quick resume Q's)
  4. Technical interview (maybe in-person?, probably remote nowadays)

4 of 19

Next Steps

  • You submitted an application, now what?
  • If you are lucky (very very very lucky), then the company or recruiter will contact you
    • The company may send you a programming challenge or Online Assessment (OA)
    • The next step is usually a behavioral interview / screen, sometimes done over the phone
    • If you pass all of this, you proceed to the technical interview

5 of 19

What is a Behavioral Interview?

  • Essentially a gauge of your personality
  • Often focuses on your past experience with challenges, leadership, and working on a team
  • Tips
    • Answer all questions in the STAR format
      • S - Situation
      • T - Task
      • A - Action
      • R - Result

6 of 19

What is a Technical Interview?

  • Chance to display your technical knowledge
  • Usually 45 min to 1 hour long consisting of 2 - 3 problems
  • Live coding either on whiteboard or on company specific editor (google doc lmao)
  • Nowadays they can happen virtually or in-person
  • Recruiter will introduce problems similar to the problems you have seen in previous Algo Workshops
  • It can be related to any data structures you have worked with, operating systems, networking, or other topics

7 of 19

Technical Interview Process

  • Read over the problem fully before you code
  • Ask clarifying questions
    • This is super important
    • Sometimes they purposely leave things out so that you ask
  • Remember the interviewer is there to work with you
  • Explain what you are doing while you code
    • Explain why you are writing a for loop
    • Explain why you think that a map is a good choice to use
    • Explain any drawbacks to your code or other options
  • You should be talking the entire time, the hardest part

8 of 19

Good Questions to Ask…

  1. Check your understanding
  2. “So, am I understanding this correctly…”

2. Verify your assumptions

  • “Am I correct to assume that…”

3. Check edge cases

  • Usually, What-if type questions
  • “What if X is zero? What if Y is empty?”

4. Periodically check your work with your interviewer

  • “Am I thinking about this correctly? Am I on the right path?”

9 of 19

Determine whether or not a string is a palindrome.

Examples:

Example Interview

“hello” -> false

“racecar” -> true

“a” -> true

“mom” -> true

“raincoat” -> false

“tacocat” -> true

10 of 19

def isPalindrome(S):

i = 0; j = len(S) - 1

while i <= j:

if S[i] != S[j]: return False

i += 1; j -= 1

return True

Example Interview: Solution

11 of 19

Mock Interview Exercise

  • We are going to practice being the interviewer and interviewee
  • Everyone form a group of 3 or 4.
  • Format is ONE interviewer while the rest are being interviewed.
  • There will be three rounds, each 10 min long
  • Pick one person to be an interviewer and the others will be interviewees
    • The interviewees have 10 min to try and solve the problems together
    • Make sure to ask lots of questions and talk through your process
    • The interviewer has a cheat sheet to give hints to to the interviewees
    • Help each other when you are struggling!
    • After 10 min, choose a new interviewer for next problem

12 of 19

Problem 1: Missing Number

Given a sorted array nums containing distinct numbers in the range [0, n], return the only number in the range that is missing from the array.

Input: [0,1,2,3,5]

Output: 4

13 of 19

Missing Number: Solution

def missingNumber(nums):

expected = 0

for i in nums:

if i != expected: return expected

expected += 1

return expected

14 of 19

Problem 2: Sum Evens

Given an array of numbers, sum all the even numbers in the array

Input: [1,2,3,5,6,10]

Output: (2 + 6 + 10) = 18

15 of 19

Sum of Even: Solution

def sumOfEven(nums):

sum = 0

for num in nums:

if num % 2 == 0:

sum += num

return sum

16 of 19

Problem 3 (HARD): Find Mode of Array

Given an array of numbers, find the mode of the array. The mode of the array is the number that occurs the most in the array.

Input: [5,6,1,2,3,5,3,3,10]

Output: 3

17 of 19

Array Mode: Naive Solution

def majorityElement(nums):

if not len(nums): return None

res = 0

val = 0

for n in nums:

store = 0

for x in nums:

if x == n:

store += 1

if store > res:

res = store

val = n

return val

18 of 19

Array Mode: Optimal Solution

def majorityElement(nums):

freq_map = {}

freq = 0

val = 0

for x in nums:

freq_map[x] = freq_map.get(x, 0) + 1

temp = freq_map[x]

if temp > freq:

freq = temp

val = x

return val

19 of 19

NEXT WORKSHOP: 03/08/23

(Trees)