Tips on getting a programming internship interview
Someone asked me about how to get a programming internship from a career fair. I’ve had a bit of experience at career fairs on the interviewer side, and I thought I’d outline some of the points for me personally.
If your interested in how to do well on an actual interview, just look up resources on how to do well on programming interviews in general: the process for interviewing interns is pretty similar to the process for interviewing full-time hires.
Looking and Acting Professional Helps #
It’s definitely true that once you have a software engineering job, your day-to-day attire is not particularly important (I’m often a t-shirt and shorts guy myself). However, I definitely add extra points to someone who dresses well, and also represents themselves professionally as well. My suggestion for all genders would be a nice dress shirt. Anything beyond that is fine as well, as long as it looks like you care.
Side Projects #
If you stick to only coding for classes, you’ll end up with the exact same body of work as everyone else. What really sets people aside for me is if you’re passionate enough about programming to do side projects.
It could be something small like you wrote a game for a hackathon, or something large like a multi-month research project crafting machine learning systems. Either way, it shows coding is more than just a future 9-5 for you: it’s a passion, or a medium that you use to express yourself.
Open Source your code #
I love to see a github (or other open source hosting) link on someone’s resume. It tells me that they’ve at least explored the concept of opening their code up or contributing to an existing open project.
It also makes it really easy for me to look up and read some code they’ve written.
Knowing the tools of the trade #
These days academic curriculums are starting to talk more about the practices and tools that the professional world uses. That said, it’s always a plus for me if you have experience with the following:
version control (svn / git / etc)
testing (experience with an xunit based testing framework)
bug tracking (github issues / bugzilla / trac)
Ability to apply Apply critical reasoning #
Software design typically involves thinking deeply about your problems, and reasoning between the trade-offs of one solution versus the other. I typically like to see the same in prospective interns. Having strong opinions with facts and experiences to back it up is great: it shows that you’ve given these types of problems a lot of thought. I’ll typically ask what your favorite programming language is and why: if you’ve had experiences with a couple, you’ve probably had some time to build some opinions about it. It’s a way to figure out if your decisions are motivated by reasoning from thinking about the problems you’re given, or just doing things as instructed and not really thinking too hard about why.