73
CPSC 436I Career Preparation Jeremy Goh

Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

CPSC 436ICareer PreparationJeremy Goh

Page 2: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

A little about me

● BCS '15● Co-op at a local startup, internship at a big company● Software Engineer working on product in the Bay Area

Page 3: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

1. Motivation2. Options3. Timelines and Planning4. Getting Noticed 5. Getting Over the Bar6. Making the Most of It

Overview

Page 4: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

What should I do with my life?

Page 5: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

● We all want to be happy● Work takes up a significant amount of our lives● Tech is booming and there are lots of options● Some jobs are better than others and we want to make

adjustments at the least costly stage● Internships and Co-ops are great for validation

Why does it matter?

Page 6: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Two Ways to Start

1. Motivations2. Possibilities

What should I do with my life?

Page 7: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

ExerciseTaking turns, talk to the person next to you about - Why you decided to do a computer science

degree- What you'd like to do after and why

Page 8: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

DiscussionSo why are you all here?

Page 9: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

What motivates you?

- Money- Prestige- Social- Learning, Interest- Life (Not work)

Page 10: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

- Humans are unique because they can be forward looking- We're not very good at it though

- In choosing your motivations, you're making assumptions- Hypothesize, Test, Validate

- We should validate our assumptions that our motivations are correct and then that our chosen course fulfils them

Are these the right motivations?

Page 11: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Assumptions

I want to make the most money I can. I'm going to work at company X which offered me the most amount of money

Assumptions:

- Money will make me happy- The cost of doing that job will be outweighed by the benefits- Working at company X will truly make me the most money

- What about promotions and career progression?- What about learning which might enable you to get a better paying job elsewhere?- If you get compensated in stock, what about stock trajectory?

Page 12: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Motivations - Resources

- Resources- How Will You Measure Your Life, Christensen- Designing Your Life, Burnett and Evans

Page 13: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Options

Page 14: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

- Roles- Domains- Companies

Options

Page 15: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

- Attend career events- Networking events, Meetups, Eventbrite, Piazza,

Conferences- Grace Hopper

- Your Network- Careers Sites (Indeed, Hired, StackOverflow, LinkedIn)- Google

How do you figure out your options?

Page 16: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Common Roles

- Software Engineer- Backend- Front-End/User Interface Engineer- Full Stack- Systems- Mobile- ML

- Product Manager- Project Manager- Data Scientist- Academia

Page 17: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

- Work with a Data Scientist to opportunity size a new feature- Pitch the project to the Product Manager and work with Designer and Content

Strategist to come up with mocks- Product Manager coordinates strategy and resources/dependencies with other

teams- Build the feature

- UIE/Mobile Engineers build the client- Server/Full-Stack Engineers build the API- Infra/Backend/ML Engineers work on backend

- If it's a highly technical project of significant duration, a Project Manager may help manage timelines for the entire team working on it

Roles - Building a feature (1)

Page 18: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

- Work with Data Scientist to ensure we're logging the right information and tracking success metrics

- Work with QA Engineer to get feature tested- Launch feature/Start a test- Product Specialist triages bugs to be fixed- Data Engineer builds pipelines for quicker/easier/cleaner analysis of data- Work with Data Scientist to determine if feature was a success

Roles - Building a feature (2)

Page 19: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

- Startup vs Tech Giant- Hardware vs Software- Gaming vs Finance- Differences in

- Structure- Compensation- Learning speed- Tech stack- Culture- Career Progression

Domains and Companies

Page 20: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

How many of you are thinking of doing co-op or an internship?

Page 21: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Co-ops/Internships are a great way to validate assumptions

- Company: Will this student be a good employee?

- Student: Is this job (role/domain/company) right for me?

Page 22: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

- Co-ops- Typically 4 or 8 months long- Part of the Academic program- Applications needed- Structured (timelines, workshops, reviews)- Curated job postings- Check-ins

- Internships- Typically 8 to 12 weeks long- Self driven

Co-ops and Internships

Page 23: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

- Talk to other students who have interned/done co-ops at the company- Are you doing actual work?

- Freshman and Diversity Programs- Facebook University, TwitterU, Microsoft Explore

- Pipeline for getting a full-time offer- Summer before your graduate

Things to Keep In Mind

Page 24: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Full Time Positions

- Ideally you've done co-ops/internships before you get your first position- If not, you might have difficulties

- proving your experience- ensuring this is the right job for you (it's a lot more costly to get the job wrong)

- Don't worry about getting it 100% right the first time. - Nothing is that permanent anyway

- Some of the biggest tech companies have average tenures of 2 to 3 years

Page 25: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Timelines and Planning

What do I do and when?

Page 26: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

By Year

- 1st/2nd Year: focus on building out core skills and getting some industry experience

- Getting to grips with CS fundamentals- Building side projects and your resume- Getting your technical internship/co-op- Attending hackathons

- 3rd Year: apply for internships at companies you'd like to work at full-time- Fall: Start applying for summer internships. Prep for coding interviews- Summer: Intern at a company you'd consider working for. Try and get a return offer

- 4th Year: apply for full-time jobs or making the most of school + life once you've found something

Page 27: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Deadlines

- Co-op- Publishes their own set of deadlines

- Internships- Deadlines vary but summer internships recruiting can start as early as September and finish by

the beginning of December!

- Full Time- Generally involves more interviews than co-op/internships- Companies will likely fly you down for the interview- Try to land a job before you graduate. Start looking in the Fall

- Recruiting process can take more than a month- Can be sped up if you have deadlines

Page 28: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Process and Purpose

What does it take to get a job?

Page 29: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Application Process

1. Applicationa. Resume/Cover Letterb. Direct vs Referral

2. Recruiter Screena. Phone screen

i. Behavioral/knowledge based

3. Phone Screena. Technical/Coding

4. Onsitea. Multiple interviews (coding, behavioral, maybe system design)

5. Offer!

Page 30: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Company's Perspective

- Bad hires are expensive- Market is competitive- Hire as quickly and efficiently as possible

Page 31: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

You're Interviewing the Company Too

- Would I want to work with these people?- Is their recruiting process well-thought out and challenging, or arbitrary?

- Smaller companies might focus on practical skills (e.g. build a clone of Reddit)- Larger companies focus on the academic but still technical (e.g. write an algorithm that does X)- Recruiting for technical roles should be technical

- Do they already know what I'm going to work on?

Page 32: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Strategizing

- Get as much (relevant) experience as you can as early as you can- Be realistic

- Cooling off periods (6 months to a year after interview or onsite fail)

- Use companies you are less interested in (but would still work for!) to warm up - Does not apply for co-op positions

- Your last co-op/internship should ideally be at the company you want to work for

Page 33: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Company: How can I filter out as many candidates

as possible?

Page 34: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Resumes

Page 35: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

- Tell a story about why you're a relevant candidate- School, Degree, Graduation year

- Letter GPA

- Previous Professional Experience- Technical Skills and Side Projects- Work Authorization- 1 PAGE

Resumes - Structure

Page 36: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

- Active vs Passive, Your Role- Measure Impact- Don't be overconfident or undersell yourself- Be unique

- Don't use the same class projects that everyone else is writing down

- BE CONCISE!

Resumes - Wording

Page 37: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Sample Resumehttps://www.careercup.com/resume

Page 38: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

ExerciseWrite out a section of your resume for your project

Page 39: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Cover Letters

- May or may not be required/read- A chance for you to add (a little) personality and sell yourself- Show that you've done your research

- Personalize it to the company and for the role

- What can I do for you and why do I think I can do it?

Page 41: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Getting Noticed - Hooks

- It's all about people- Referrals- Connect with Recruiters

- Career Events, Hackathons, LinkedIn- Networking

- Your Background- School, previous experience

- Technical skills- Hackathons

- Prizes- Coding Competitions

- Often sponsored and run by big companies (e.g. on Kaggle)- Side Projects

- Open source

Page 42: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Custom Hooks

- Tailor your hook for the company and role- This should be reflected in how you present yourself in the entire application

process from cover letter to resume to interview

Page 43: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Standing Out with Side Projects

- Not the same as a class project- Should demonstrate your interest and ability outside of the classroom- Does not need to be novel

- You can take inspiration from some impressive sounding tutorials and make them your own- e.g. build a Reddit bot that follows you around the site and upvotes your comments

- Leverage interesting APIS- Use Google's Cloud Vision API to auto-blur offensive user generated content

- Ideally open-source and accessible- Only list things you are able to talk about

Page 44: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

ExerciseThere's a recruiter for your dream role at company X, how would you introduce yourself?

Page 45: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Connecting with People - My Experience

- Got an interview because the recruiter knew someone who worked on the same project I was interning on

- Got a co-op position after meeting with hiring manager at a tech talk and standing out during the interview

- Got fast tracked to an interview because I had won a hackathon prize and an engineer helping out at the hackathon referred me

- Got a job offer because I messaged a recruiter on LinkedIn

Page 46: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Connecting with People

- How to Win Friends and Influence People, Carnegie- Career Events and Hackathons

- Introduce yourself, be friendly, have your resume- Have a sales pitch or hook

- Meetups, local tech scene- The Vancouver tech scene is pretty small

Page 47: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Go do a hackathon already

- Great way to build your technical skills and network- Connect with recruiters that might not normally visit UBC and get more 1:1 time- Build out your resume

- side projects- prestigious hackathons and prizes

- MLH

Page 48: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Company: How do I ensure this

person can actually do the

job?

Page 49: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Interviews

Page 50: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Types of Interviews

- Non-Technical- Behavioral/Situational- Tell me about a time…- Helps determine if you're a good fit, have problem solving skills, can work with others

- Technical- Does this person have the technical skills to do the job- Can they write code?- Where most people fail

- Both require preparation!

Page 51: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Non-Technical Interviews

Two types:

1. Recruiter phone screena. Optional, takes place after the resume screenb. Typically short and surface level. Used to filter out candidates

2. Behavioral/Culture Fita. Can be combined with a technical interviewb. To see whether you would fit in with the company, if you share the same values

Page 52: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Recruiter Phone Screen

- Typically 30 minutes or less- Used to filter out candidates

- Can you speak English?- Have you done some research into the company and role?

- Make sure you know what the company does and have a reason for why you want to work there!

- Do you have some basic qualifications for the role?- May involve some knowledge questions

- e.g. What are some of the primitive types in Java?

Page 53: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Behavioral/Culture Fit Interviews

- Every company does this differently- Some focus on situational questions (big companies) while others just seek to

get to know you and your interests (startups)- Situational questions often reflect the companies values and take the form of

- "Tell me about a time when …."

Page 54: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Technical Interviews

- Typically involves coding on a whiteboard or in a collaborative editor online (e.g. google docs, collabedit, coderpad)

- Some startups might have you build something or pair program- Tests:

- Your ability to solve a problem using CS concepts: data structures and algorithms- Your ability to translate thoughts into code

Page 55: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Technical interviews are terrible

- But they're the least bad of the bad options- They're standardized

- Software engineers should have a background in data structures and algorithms

- Mostly binary- Can you write code?

- Some companies will be sticklers for syntax, others will be fine- Use pseudocode if needed

- Can you work with others?- Have you done your homework?

Page 56: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

What questions will you be asked?

- Depends on the type of job you're applying for- Hardware will involve lower level language concepts

- Tests knowledge of CPSC 221 and 320- Questions vary by company but generally fall into specific themes and

categories- Highly technical interviews for companies like Palantir or high frequency trading firms

- Resources- Programming Interviews Exposed, Mongan et al- Cracking the Coding Interview, Laakmann McDowell- Glassdoor.com- LeetCode.com

Page 57: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

What language should I use?

- Whichever one the company lets you- Whichever one you're most comfortable with and will get the job done

- Inputs/Output- Reading/Writing to files- Bit Manipulation- Collections- Sorting- Classes

- Safe choices: C++, Java, Python

Page 58: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Outline of a Coding Interview

45 minutes to an hour long

1. Intros2. Maybe some behavioral or warm up questions3. Coding Question4. Clarify + Propose Approaches5. Code6. Test7. Complexity Analysis + Discussion8. Iterate9. More questions

10. Wrap up11. Your turn to ask questions

Page 59: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Approaching a Problem - 1

- Clarify- So if the input is X then I should get Y- Are there any constraints?

- Does this all need to fit in memory?- What can I expect of the input?

- Do I need to check for malformed input?

- Identify approaches- What domain does this problem map to?- What algorithms might be useful?- Does this look like something I've seen before?

- Discuss and get buy-in from your interviewer- If they seem sceptical then you may be on the wrong track

Page 60: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

- Code- Stub out functions for implementation later (either the tedious ones or the ones you're not sure

about yet)- Use pseudocode if you're not sure about the exact API

- Test your code- Run through some sample input

- Analyze the Complexity- Space/Time tradeoffs

Approaching a Problem - 2

Page 61: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Some Examples

- FizzBuzz. Print out numbers 1 to 100, except if divisible by 3 print "fizz", by 5 print "buzz", by 15 print "fizzbuzz"

- Return the most common letter in this string- Determine if any two numbers in a list add up to a target number

Page 62: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

ExerciseDetermine the most common letter in an input string

Page 63: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Volunteer

Page 64: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Your turn to ask questions

- Interviewers typically leave a few minutes at the end for you to ask questions- Do your homework and ask a question that shows your interest- Think about how your question might be perceived- Good questions lead to discussions and conversation which can make you

more memorable- Sample questions

- How do you typically decide what projects to work on?- I heard you're releasing a new product built in language X, why did you decide to use that

language?- What do you like most/least about working here?

Page 65: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Interviews - My Experience

- Failed a lot at the start but improved with practice- Prepared extensively

- Leetcode- Time investments vs Academics

- Big company: Failed in the last round for an internship but got a reach out for full time and then landed a job offer

- Rejected a company based on my experience interviewing with them

Page 66: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

You've got an offer, now what?

With incomplete information, how do you choose the right job/co-op/internship?

Page 67: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Offers

- Plan your application and interview timelines so that you get your offers within the same timeframe

- Ask for deadline extensions or earlier interviews if needed- Negotiate

- Does not apply for co-op and less so for internships- Know what you're worth, do your research

- You can't always see into the future- Write down the assumptions your making and validate them based on the information you do

have- e.g. You'll learn a lot working at company X. But is that the case if all their previous interns do is

refactor code?

Page 68: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Offers - My Experience

- Co-op: I chose between two jobs. I preferred the startup and the pace of working + culture over a more established company

- Internship: I chose a big company for a different experience and its brand recognition over a startup

- Full-time: I chose a company which offered me flexibility to find the role and domain that worked for me rather than the one that offered me the most money immediately

Page 69: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

It doesn't end here

How do you make the most of your new position?

Page 70: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Preparing For Your New Role

- Co-ops/Internships are great for getting your foot in the door and getting a full-time offer

- Who doesn't want to start a full-time position off on the right foot- Make the most of your new role by

- Asking ahead of time what stack they use and if there are any technical resources you should read through

- Figuring out what you want to achieve with your new role- Determining what expectations the company has of you and how they are assessed

Page 71: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Traits of a Good Engineer

- Productive- Writes a lot of code (or as much as is needed to get the feature done)

- Quality- Doesn't make the same mistake twice- Writes code that adheres to conventions and internal style documents- Tests their code

- Independent- Knows when to ask questions and get others involved

- 15 minute rule

- Initiative- Does things without being asked, seeks to make the product and codebase better

Page 72: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

- It's a process- Preparation counts- It's totally worth it- People matter (a lot!)- Fundamental problem solving

skills never go out of style- Have a life- Re-evaluate your direction from

time to time

Making the Most of It

Page 73: Career Preparation CPSC 436I - blogs.ubc.cablogs.ubc.ca/.../2019/07/CPSC-436I-Career-Workshop.pdf · Career Preparation Jeremy Goh. A little about me BCS '15 Co-op at a local startup,

Questions?