1) Being an A+ student is not enough
Crazy, right? All your life you’ve been lectured on the importance of getting good grades so that you can get a good job and have a successful life. But it’s hard to read the news these days without coming across a story of some young college dropout founding a multi-billion dollar company, and that probably raises all sorts of questions in your mind – like is university and the debt associated with it worth it? Do I need to be a straight A student to be successful in life? Heck, do I even need to go to school at all?
Last year, Laszlo Bock – senior vice president of people operations at Google – when being interviewed about the importance of grades and GPA, said that there is “no correlation at all except for brand-new college grads, where there’s a slight correlation”.
So what’s going on? Well, computer science jobs are precisely about challenging the status quo. They are highly biased towards problem solving ability – which means it is about applying fundamental concepts to solve novel problems – and they are highly meritocratic. There is a significantly smaller degree of subjectivity when measuring success and performance in jobs likes software engineering when compared to fields like consulting or accounting. In those fields, the easiest thing to do when measuring success is to place more emphasis on traditional traits and characteristics like years of experience, seniority and the name of the college you attended. With software engineering, you’ve either built a product that scales to handle 10,000 requests per second, or you haven’t. Simple as.
You want to get a job at Google? Well, show them that you have the skills to do the job (hint: getting an A+ is never listed on any of Google’s software engineering job specs). That brings me to my next point….
2) Build build build
Employers want to see evidence of your ability to create real world value. Most computer science classes are focused on theory and hypotheses and less on the practical. Unless you’re working on research, being able to produce real world software is a must for landing a software internship.
You don’t need to have built the next Facebook on your spare time, even just a slight modification on a tutorial based project shows passion and interest (of course, publishing something on an app store is even better). Also, learning how to use industry tools like Git will also beef up your resume, even getting familiar with IDEs (e.g. Eclipse) used in your company of choice helps.
Show companies that you’re prepared to do more than the norm. The tools and tutorials available these days make getting a side project started a cinch and working on them shows companies that you love what you do, and that a career in CS is not going to just be a paycheck.
3) Know how to talk to people
This extends to both your cover letter and interview. Above all, you want to take the opportunity to convey your passion and interest in the company and its products.
I remember one internship I applied for a month or two ago where their main product was in computer networking. I got an interview and part of my own prep since I hadn’t done a networking class yet, was to blitz through a networking textbook so that I would be able to explain the basic theory of how their product works. Companies want to see that kind of determination and keenness. Working in CS doesn’t mean that you know everything there is to know about technology X, it just means that you are the kind of person who can seek out the necessary knowledge and apply it quickly and correctly.
And don’t just stop at the formal recruitment process when trying to engage with a company. There doesn’t need to be a limit to your interaction with a company. One of the questions that interviewers ask themselves when trying to find the right candidate for a job is, would I want to work with this person? The recruitment process should ideally be a dialogue between two interested and like-minded parties, not an interrogation.
As an example, a few companies I applied to didn’t have any information available online about their interview process but I’d gone to campus and recruitment events earlier on during the year and was able to capitalize on that information during the informal Q&A sessions after. Anything else I wanted to know I picked up by just searching for connections on LinkedIn. People in the tech world are generally extremely helpful. And when it comes to recruitment, everyone is always keen to help their company seek out new, talented engineers since they’re a rare commodity!