Looking for a full time job is about the same process as looking for an internship, but you will have more options, as well as more intensive interviews. For an internship, you will likely have far fewer final round interviews in an interview loop than you will for full time. But the application process and resume process will look the same.
Don't be scared off by the requirements for jobs you are applying for. If you don't know a language yet, but the job is entry-level, and you know other languages, it will be easy enough to learn another language.
Start applying early! If you aren't graduating until the end of the school year, you can still start applying at the very beginning of the year. And it's better if you do, because it gives you more time to get something.
You want to start by getting an internship. Internships and personal projects will help you get the experience you will need to get a full time job in the field.
Most companies will only be looking for students who have experience with Data Structures and Algorithms for their normal Software Engineering internships. But there are still companies that will hire Freshmen/Sophomores with little to no experience.
Look at the minimum qualifications for the job. Some jobs will specify that they don't need as much experience for the internship. And some will specifically target Freshman and Sophomores. For example, the Meta University program or the Google Step program. I'd also recommend looking at non-tech companies that have technical roles.
Most companies will only be looking for students who have experience with Data Structures and Algorithms for their normal Software Engineering internships. But there are still companies that will hire students with little to no experience.
Look at the minimum qualifications for the job. Some jobs will specify that they don't need as much experience for the internship. And if you don't get an internship right away, there are other opportunities you can pursue. There are bootcamps you can sign up for, and self-learning you can do. You can look into summer classes to get ahead in your degree. Or you can work on personal projects to stretch your coding skills! Find problems that you are interested in solving and see what your current CS skills can do to solve the problem. Projects will look great on your resume and help you get an internship or job in the future.
If you are graduating in under a year, you likely should be looking for a full time job. Most companies, especially the larger ones, only allow students to apply for internships if they will be returning to school after the summer is over. Now, this is not always the case, and smaller companies may be happy to let you apply for an internship after you have graduated. But be aware that this is not likely.
You can instead start applying for full time jobs now.
Getting an internship is a great place to start! Internships and personal projects will help you get the experience you will need to get a full time job in the field.
There are a few things that go into getting a job. The primary three things you'll need to prepare for are:
We'll walk through each of these three areas of applying to get a job, why each of them are so important, and how you can do your best at each of them.
Everyone has the potential to create a great resume even if you have no technical job / internship experience (class projects, personal projects, and more can show your software experience).
Recruiters spend under 10 seconds looking at a resume. Your job, above all else, is to make your resume skimmable. Someone should be able to get a sense of your experience and skills in just a couple of seconds. This is the one test every resume needs to be able to pass - it doesn't matter if it looks fancy or plain, if you won this hackathon or built that project - none of that matters if it's not easy to read.
Resume Example -- No Work Experience
Note: When submitting your resume, send it in as a PDF, not as a .docx file!
Now that you have a resume, you're ready to start applying for internships. You can search on Linkedin, Handshake, indeed, Google jobs, or other sites to find companies hiring for interns. I'd recommend looking both locally at companies that have tech roles and elsewhere in the country for internships that sound interesting.
START APPLYING EARLY. Be aware of recruiting cycles. A decent rule of thumb is that the best time to apply is in the first half of a given semester. Companies are looking as early as September of one year for employees to start work after the Summer of the next year. That being said, it is never “too late” to apply, including a couple months before a job starts (and in some cases, much shorter time frames apply).
Check the minimum qualifications. For international students, most of these will mention if the company will sponsor visas or not. Apply to anything you're interested in, even if you're not nominally qualified for it, e.g. if it says “new grad” but says they want Python experience ... even if you don't have it, you can still apply. Especially when you're trying to get your first internship, you will likely get more rejections than you want. But you only need one acceptance, so keep trying! Something will come through in the end.
Some companies may ask for cover letters with your application. You can have a somewhat standard cover letter that you use as a base for every company, but make sure to change it for each company you apply for. Before an interview, and hence before you apply, you'll want to know a bit about the company you are applying for. Talking about why you want to work there, with regards to what the company does, will be important in both a cover letter and your interview.
Now that you've gotten your resume ready and you've started applying for jobs, you need to make sure you're ready for the interviews. Ideally you've started doing interview prep even before applying for jobs.
Do your research for the particular company / role you're applying for, including asking the recruiter directly what you might be able to expect in the interview.
Practice is so important
We can view interviewing like a sport or a new game. You have “building muscles / athleticism” through your coursework, but even athletic people need to practice to become good at a sport that's new to them.
Some research shows that you double your chances of passing a technical interview once you have done 5+ interviews.
Failing your technical interview does NOT mean you are not a good engineer. It just means you need more practice at the “game” of interviewing.
These priorities are in order, so don't go and practice graph algorithms if you don't feel like you can take an easy problem and just go in whatever language you're best at. Things like being able to write a binary search, reverse a string, or any other "easy" coding tasks (they can even be greedy /naive approaches to harder problems). The way to test this is to do practice questions where the solution is immediately obvious to you, or you already know it, and see if you can write correct code pretty quickly. If you haven't ever done this before, LeetCode and HackerRank are great sites to get questions, write code, and see if it works.
Once you've cleared that first hurdle, it's time to get comfortable solving questions with an audience. The second most important tip I have for you in this module is this: practice interviews with other people. You can be really good at solving coding questions alone in your room and then walk into an interview and freeze up. This is because communicating with an interviewer adds another layer of difficulty to the interview question, so it's not uncommon to get confused on problems you'd have no trouble with under normal circumstances. Practicing by having someone else pretend to interview you is the absolute best bet here, because you'll have to simulate that process of thinking out loud with another actual human.
Aside from coding interviews, there are other technical interviews you might encounter. For the most part, these take significantly less time to prepare for than the coding interviews you may see, but it is still important to practice and be aware of them, especially because many smaller and older companies rely on them more than coding interviews. The formats include
Note that you do not need to answer every question perfectly to get an offer and be a good fit for the job. Also, asking your recruiter in advance what kind of interview it might be (e.g. “Will I expect a traditional coding interview or might they also ask some mobile development questions? Will they be interested in discussing my previous projects?”) is the best way to know what to prepare for for a particular opportunity.
Teamwork is very important in industry, and these interviews are used to judge your fit and maturity here. They want to see you are an effective team player and individual contributor: empathetic, good at resolving conflicts, clear with communicating, motivated, and more.
For each question, think to yourself “What is the interviewer trying to understand about me?” and answer authentically with an appropriate example.
Be sure to reflect beforehand on your strengths and weaknesses and be prepared to talk about them.
Be prepared to talk about the projects on your resume and why you were excited to build them.
Research your company's culture, values, and mission to answer “Why do you want to work at this company”.
In the process of researching your company, note if there are any principles / values that should influence your answer. For example, a value of “Be Frugal / Smart with Expenses” would suggest the company values being savvy about how to cut costs while still achieving results, while “Achieve More Impact with More Resources” would suggest alternative company values. If natural, you can reflect these in your answer.
Prepare stories / examples for common interview questions. Consider using the STAR format when asked to “tell me about a time when…”
Applying for jobs can be a long and draining process. Don't give up! In the beginning, you may get more rejections than you'd like. Just remember, you only need to get one acceptance, and then you're all set. That first line on your resume will open up doors and make getting the next job so much easier. You can do it!
Author: Batya Zamansky, Software Engineer at Meta, Engineer in Residence at GSU
Last updated: April 28th, 2023