I am about to be a new college grad and I am trying to get an internship or a jr software engineer position. However, I have no experience at all in the field. All I will have is my degree and my in class projects that I have completed. How can I make my resume more attractive so that I can get an interview? Also, how should I structure the details of my in class projects? Should I provide extensive detail? Any help is appreciated.
There's a few things you can do:
|show 10 more comments|
I second @psynnott's answers for how to get more experience to add to your resume. They are all great ideas. I'm particularly partial to work you can show - the first bullet - because then your interviewer can really dig into it ahead of time and you can get into some really interesting discussions. I've only seen that in a few college grad candidates and I really enjoy the discussions that result.
I should start off with admitting that I'm a hiring manager at times, and I do a lot of interviewing of college grads. Every interviewer is different, but here's my take - my #1 priority is to see that the candidate has faced some hard problems and been successful, despite some really big challenges. When I say that, I mean that I'm looking for a little more than the demonstration of a progressively hard series of guided labs done in a classroom... I'm generally looking for what I call the "killer project".
Here's the qualities of a "killer project":
When it comes to resumes for college grads, I don't expect that they will stick out tremendously. I know that my HR will have screened for:
Keep in mind that I work in an enormous company. The general state of affairs is that I get a resume after my HR has gone through it for a general qualification review that managed to match enough good engineering sounding words on the resume to our job requirements. I get the resume a few days before hand, and I generally look at it half an hour before walking into the interview. I don't take a ton of time to scan it, and I don't expect it to be longer than a page. More important than lots of content is to be able to quickly get a grasp of the candidate's basic background so I can ask something smarter than "so.... what are you good for?" :)
The make or break for me is to have a good enough interview with the candidate that I can turn around and say to my management and my HR team - "not only does this guy seem smart and qualified, but If I had an opening, I'd want him on my team". Wanting someone on my team is more than exactly what technology they've worked on in the past - the real key is how they talk about their experience and their team mates - if the candidate can clearly describe a problem, clearly describe a process for finding a solution, assess what was good and bad about previous work and be able to get along with others well enough to work out typical team issues - then it's a good sign that I'll like having the person on my team.
Disclaimer: I haven't graduated. I am a sophomore in college (nontraditional - I'm 23). However, I've worked as a software developer for eight years (my first job was a summer internship at a local tech company). This is what I've read/experienced about getting started in this field:
Class projects are neat, but they don't really matter so much. Come up with your own projects. They don't have to be complicated, but write them, do bug fixes, and keep them in BitBucket or GitHub under open source licenses (BSD/MIT, GPL, whatever. That's a religious argument for another thread). These will serve as your credentials while your resume can't quite speak for itself yet. Contributing to an open source project can be just as good. A lot of companies even ask about that specifically.
Were you involved with school activities around the department? Words like "President" and "Captain" and "Founder" say good things about your initiative. I'm the president of my school's cybersecurity team, and have gotten job offers because of it.
Research constantly. You did not learn everything you need to know about this field in the classroom. Read blogs. Participate in StackOverflow. Even if you can only confidently answer a question every great once in a while, answering those and helping people is a great way to establish yourself, especially combined with SO Careers.
Also, start your own blog. Write about problems you had and solutions you developed when working on those projects I mentioned earlier. These are things you can point to in an interview.
tl;dr: Care about the field, and have something tangible you can point to.
In terms of finding a job:
In terms of the structuring your CV:
Early in your career online searches won't help. At that point you have to get through HR. Your beat options are either on campus recruiting, or if that is passed, network like crazy. Be polite and assertive but not so aggressive that you willscarebpeople. Be prepared to make 50 calls and 50 emails to get 10 introductory meetings, 5 first rounds, 2 all day interviews, and 1 offer.
Once at the interview show your eagerness. Research the company deeply first. Show up to the interview 10 minutes early. Be polite to the receptionist. Bring code samples. Don't talk about money. Do talk about finding a good mentor. Send a Thank You to everyone you meet. If you do this, even people who don't want to hire you will be willing to help out.
You make an initial assumption that you need experience to get hired. That is not a true statement. Plenty of companies hire new grads. And, they don't expect you to have experience at all.
So what do they want from a new grad? They want you to be smart. They want you to have natural talent for coding. That's basically it. If you have that, you're hired.
How do they determine that you're smart? The best measure of that is your GPA. You're pretty far along now, so hopefully you have a 3.5+ GPA, and failing that, you have a high GPA in your CS coursework. If you have the high GPA, put it on your resume. If you did any significant projects in school, put them on there as well.
Now, not all companies hire new grads. So, once you have your resume together, you need to find the companies that might hire you. One place is a career fair at your school. A second place is on linkedin. There are tons of recruiters on linkedin. Find them. Message them. Ask them if they're hiring for new grads. Hint: Larger companies are more likely than very small companies to do this. Also, get a linkedin account and link against everyone who is good in your CS program. You'll discover after you get hired someplace that companies pay $$ for engineering referrals. All those people you talk to in class every day can turn into serious coin in your pocket down the line.
Finally, you get some interviews. This is where they try to figure out if you have programming talent. The standard fare is data structures and whiteboard coding. Make sure you know data structures cold. Make sure you can code on a whiteboard. As in, "write a function that verifies a binary search tree is valid (in the sense that every node to the left is less than, and every node to the right is greater than)." Make sure you can do it well enough that the code (mostly) would compile. It doesn't have to be perfect, but it better not be 1/2 java, 1/4 pascal, and 1/4 random sloppy pseudocode. This takes practice to be good at. I suggest you spend time practicing with friends or you'll have a rough time your first few interviews.
Now, if you can do this, you WILL get offers. If you're in a big city, you'll probably get more than one. You don't realize it yet, but finding good programmers is hard. And companies snap them up (even new grads with no experience) when they find them.