How To Land A Software Engineering Job As A Student In A Different Field
I’m a biochemistry student at Western University. Biochemistry is pretty cool, but I’m not sure if it will lead me to a job I want to be doing for the rest of my life. I’ve grown into a position where I’m qualified for some software engineering jobs, and I’ve written this guide for students like me who are looking to make the jump.
This guide is written for those of you who are feeling unconfident, apprehensive, and uninitiated. Don’t worry about not being good enough. You have the privilege of being a university student in an era in the tech industry where individuals who can learn, adapt, and think on their feet are in extremely high demand. You don’t need to have a computer science degree to demonstrate your potential to be an excellent software developer.
The 4 items listed below are not in any particular order, and should be initiated as soon as possible. Depending on how far you are in your degree and how many electives you can take, you may want to enrol in some computer science courses to supplement this with formal learning.
Make technical projects
Having projects outside of school has become almost a requirement for a job at a top tier tech company. Luckily, the bar is set pretty low, and such projects need not be very high quality work. The aim is to show that you have enough interest and aspiration to commit time to personal projects, and that you’re willing to try to learn new things.
I highly recommend attending students hackathons for this purpose. Hackathons are 24–36 hour long events where people get together to make websites, mobile apps, or hardware projects. They are a wonderful place to make projects fast, learn new technologies, and win prizes, surrounded by a community of knowledgeable, helpful, and generally inspiring people. The Major League Hacking website maintains a list of upcoming hackathons.
Get semi-formal software development experience
Ideally, you want to have at least one credible and relevant job on your resume. I accomplished this through Google Summer of Code, where I was paid $5500 USD to contribute to an open source project. Other students work with professors to do research projects in their original major that involve software development. These are both great options because you can 1) access these opportunities by networking and demonstrating a willingness to learn and 2) leverage your existing expertise in your field of study.
Find people to refer you to companies.
The best way to get a job at a top tech company currently is to get a referral. Leslie Miley has written a wonderful article about why this is problem that exacerbates the lack of diversity in the tech industry.
Working as an engineer at Google, Apple, and Twitter has afforded me a view of the hiring process that for years has…modelviewculture.com
In any case, you want to be meeting people at hackathons, tech networking events, conferences, and in your school’s software engineering/computer science student community. Give yourself maximum exposure to potential mentors and friends who are doing what you would like to be doing.
Practice technical interviewing
Once your resume has passed the initial screening for a software engineering position, you will likely be put through several stages of technical interviews. These are mainly about algorithms and data structures. Commonly cited interview resources include books such as Cracking the Coding Interview, Programming Interviews Exposed, and Programming Pearls, as well as problems from the LeetCode Online Judge and Project Euler. The Palantir blog has a nice set of articles about acing their interview process as well.
Palantir builds software that connects data, technologies, humans and environments.www.palantir.com
It’s a good idea to get started practicing for these interviews, especially if you are a novice programmer, to get used to the kind of thinking involved and to learn how to do it under pressure. If you have not taken any computer science courses, you may benefit from a basic data structures and algorithms course online. For those of you who are aiming for a top tier tech company, this step is crucial and you should get started right away.
I don’t have a job at a tech company, but am in the host matching process for a Google internship. This piece is composed from my personal thoughts, which are currently not backed by evidence, anecdotal or otherwise.
Update: I matched to a Google team in NYC for the summer of 2015!
Thank you to Sam Leese and Andrew Ho for asking me the question that I’ve attempted to answer here. Thank you to Jonathan Lucas, whose photograph I have stolen for the cover picture.