Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Internships 101 - Friday Hacks

Vishnu Prem
September 02, 2016

Internships 101 - Friday Hacks

I gave a talk at NUS Hackers Friday Hacks about Internships for CS undergrads. Why you should do internships, how to choose them, and of course, how to get them!

Video link: https://engineers.sg/episodes/1105

Vishnu Prem

September 02, 2016
Tweet

More Decks by Vishnu Prem

Other Decks in Technology

Transcript

  1. What’s an internship? huh? 12 - 14 weeks. Work with

    a team. Mentor & Manager. Intern project. Do real work, ship production code. SIP & ATAP
  2. Do something impactful while in why internship? You get to

    see your work and decisions in the hands of millions of people all over the world.
  3. Learn a lot why internship? Learn from some of the

    smartest people in world of tech. As you learn, you become more attractive to future employers. Learning is compounded. You come back to school with a lot of context for your modules.
  4. Discover what you like why internship? Is it software engineering?

    mobile? infra? frontend, design, UX, testing? Do you like working in a tech company? 3 month dry run. Do you like the company culture?
  5. Fun why internship? Travelling is fun! Working at a tech

    company is pretty fun! Meet the who’s who in tech. Meet people from other colleges.
  6. Perks why internship? USD7000 - USD8000/mth. Free lodging, food, bikes,

    laptops, shirts etc. Other perks: discounts, massages, etc.
  7. Perks why internship? USD7000 - USD8000/mth. Free lodging, food, bikes,

    laptops, shirts etc. Other perks: discounts, massages, etc.
  8. The Process how to go about getting an internship 1.

    Apply 2. First Contact 3. Phone Screens & Technical Interviews 4. (Onsite) 5. Offer
  9. Common Refrains zero to one internship My resume is not

    ready. I’m not ready. I’m not ready for interviews. I need time to study for my interview. I don’t know, I really want to work at this company, what if I screw up. I applied to a company already, just waiting for a response. ...
  10. No.

  11. Step 1: Apply zero to one internship Internship applications start

    in the fall (Sept) and stretch till Jan. You should start applying now. •Job’s site •eg. https://asana.com/jobs/ •in general: company.com/{jobs/career}/ •Career fair •Info sessions/Tech talks •Referral
  12. Step 2: First Contact zero to one internship Maybe a

    pre-screen challenge Recruiter gets back to you. Prepares you for the upcoming rounds Schedules future rounds
  13. Step 3: Phone Screens & Technical Interviews zero to one

    internship I speak only for software engineering roles Topics include: • recall questions • cs fundamentals • algorithms • operating systems • networks • technical discussions • coding (whiteboard or collaborative editor) • problem solving • runtime analysis • system design
  14. Step 3: Phone Screens & Technical Interviews zero to one

    internship •Several rounds •phone screens •technical interviews •Increasing level of difficulty •Usually progresses from non-coding to coding. •Varies most here: Interns vs. full-time •might have fewer rounds for interns - woot! •might require onsites for full-time
  15. What happens technical interviews •45 minutes - 1 hour •Outline

    •Intro, soft questions •Actual question (usually only one) •Possibly another question •Q&A (You ask the questions) •Might be in person, with a whiteboard, or over the phone, with a collaborative editor (coderpad, google docs, etc).
  16. Sample soft questions (Behavioral) technical interviews •Tell me a project

    that you've worked on that's technically challenging and walk me through your problems and how you solved them. •Tell me about yourself •Tell me about [X] •[X] is something on your Resume
  17. Sample soft questions (Culture fit) technical interviews •Do you use

    our product? What do you love about it and why? •Why do you want to join [the company]?
  18. Sample technical questions (short, recall) technical interviews •What is 0x05

    + 0x1a •What is a deadlock? •What is “this”? (JavaScript) •What is the runtime of various operations of a hashtable? •What’s the difference between a process and a thread?
  19. Sample technical questions (non-coding) technical interviews •Explain to me what

    happens when I type “google.com” into the address bar. •Design bit.ly
  20. Sample technical questions (coding) technical interviews •Find an element in

    a sorted, pivoted array. •[1,2,3,4,5] => [4,5,1,2,3] •How many ways are there to buy a given amount of coke if they come in the following sizes: 1, 6, 24? •eg. 7 => [1,1,1,1,1,1,1], [1,6] => 2 ways. •Implement a stack with an additional #min method that returns the min element in constant time.
  21. Sample technical questions (coding, rare!) technical interviews •Design and build

    a simple application in framework X •Programming language specific questions (how do you do X in language Y?)
  22. Me: Before the interview. technical interviews •Practice practice practice •Don’t

    cheat. It won’t work. •Be fresh and ready for the interview •Don’t underestimate a phone screen. •logically: you’re expected to bring your best self for the interview.. •Practice soft questions as well •Don’t sweat this. •But often underestimated. •Don’t want to get off on a bad start. •Think of questions to ask the interviewer •Some people have pet questions they like to ask every time.
  23. At a high level technical interviews The interview is meant

    to be a conversation to access: •Whether you can fit in as a “peer” •taking part in technical discussions •able to “converse” on the same level •How you measure up against other candidates •are you good (enough) •Whether you are someone they’d want to work with
  24. Me: during technical interviews •Think before you speak •Its okay

    to take a few seconds to think. •jumping to conclusions is pretty bad/unrecoverable. •Clarify any doubts •Communication skills. •You can always ask them to repeat stuff, or for examples, input/ output (when given questions) •Articulate your thoughts clearly •this is super important. •esp. if not in person •explain what you are thinking, every step of the way.
  25. Me: during technical interviews •OCD, code should compile. •Don’t be

    sloppy with semi-colons, braces, indentation, syntax (its not that hard) •write pseudocode first, replace with real code as you go along •test proactively •after completion, run your code. •“I’m going to step through my code now to make sure I don’t make any obvious errors” •test meticulously •List testcases on the board. •Step through every line, every variable assignment.