On Thursday, I did a “Speed Mentoring” event at Google, where a Barnard & Columbia woman had five minutes to ask a Googler questions and then we’d move on to the next student. It was an odd format for mentoring, but I think by the end I had a useful set of quick advice for undergrads. Here it is:
What languages should I learn/what classes should I take?
Learn one of Java, C, C++, and Python and don’t worry about too much about it, you’ll be learning new ones your whole life. Learn the pluses and minuses of the languages you know. It’s fine to have a favorite, but don’t be obnoxious about it.
The only class that I took in college that applies to what I do day-to-day is Unix Tools: learn what version control is and how to use Linux.
How do I get an interview?
For small companies: focus on the cover letter. Tell them why you think their company’s cool, why you want to work there, what you’ve done in relation to their company (e.g., used their API in a hackathon).
For any size company, do something other than the standard undergrad crap you can put on your resume. Almost all undergrad resumes are basically identical. Be ready to talk about anything you put on your resume.
I had an internship programming frozen yogurt machines in .NET, should I put that on my resume since it’s not “real” programming?
YES! That’s interesting and memorable. (And it’s totally real programming.)
What can I do to stand out from other applicants?
Get a referral from an employee if you know anyone there. Create a website, do some hackathons, contribute to an open source project. Get some cool stuff on Github, think of it as your portfolio.
I did a hackathon where I did a Foursquare mashup iOS app and my code was really ugly. Should I still put it on Github?
No worries, all undergrad code is butt-ugly. No one expects you to be able to code beautifully yet. Put it on Github! Then talk about it in your cover letter when you apply to Foursquare.
How do I get through the interview?
All the stuff above, plus study the heck out of Cracking the Coding Interview and similar books.
What if I don’t really know what I want to do?
Totally fine, I had no idea what I wanted to do. Do some internships, that should help you figure out what kind of company you want to work for. When you’re interviewing, interview them right back. This is like dating, sure you want to impress them, but they should also be impressed. You’re probably going to be spending more time at work than with your significant other.
Small companies offer the flexibility of everyone has to do everything, so I found it easy to wiggle my way into a “perfect fit” job. Conversely, at Google, you can switch teams if you want to work on something else. Flexibility varies on the company, though.