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!
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.
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. ...
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
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
•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).
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
+ 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?
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.
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.
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
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.
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.