34

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?

3
  • 3
    Most college graduates are like yourself. The people with internships have an advantage over you, because they a connection, to somebody who might employee them. You should provide accurate detail about the project. You should attempt to build a portfolio of your work. Anything that can show of your skills should be available at request. I would suggest picking up writting as a hobby and just blog about "programming" things you learned, if you are not a good writter, that can hurt your chances.
    – Ramhound
    May 13, 2011 at 18:45
  • 4
    Never work for free if someone else is making money off of you! Open Source is a different story, that shows you are passionate about what you do. Working free for someone making a profit off you directly, shows you are a CHUMP.
    – user7519
    Feb 12, 2012 at 5:02
  • Plenty of companies hire new grads. They don't expect you to have experience. Have a good gpa to get interviews, and know data structures and be able to whiteboard code in an interview. In a large city, you'll get multiple offers with those skills alone.
    – Kevin
    Feb 12, 2012 at 7:40

7 Answers 7

21

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":

  • Team work - almost always the project involves more than just the candidate. That gives plenty of good conversational material about how the team made decisions, resolved conflict, overcame problems or got each other motivated. In fact, I'm looking to see if the team had any serious problems... IMO, they should have a few problems. The story "everybody got along, we had a good time and we all got As" means that this was not a "killer project".
  • Ambiguous goal & path to success - the goal and the means to acheive it were not clear cut. This is what distinguishes the "killer project" from your average set of lab assignments where you get told week by week what the next steps to success must be. With the "killer project" you start with an unclear goal. At a college grad level this can be a Senior Project, where your team is given a really ambious 3-10 page project description document that lists a complicated application that can't really be developed in a single semester, or a challenge where you have to vet your idea for a successful project with a mentor or counselor. The thing is, I want to see that you and your team are trying to figure out at the outset (1) how much is "enough" to be successful, and (2) how much can you bite off and still meet your deadlines. Inevitably the team finds out that some stuff was way harder and some stuff was way easier and this learning experience is what I'm looking for.
  • Unexpected problems - the project has to be big enough to have unexpected problems. Something had to go not according to plan. Getting the through these things as a team is the key, IMO, to being an engineer and I want to see how that first attempt went. It never goes smoothly, so the essence is in learning from it.

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:

  • GPA - below a certain level we generally don't pass them on for interviews.

  • Schools that have yielded good engineers in the past are at the top of the list, also we do recruit more heavily in close proximity to our offices. That's not to say we wouldn't review a submission from out of our sphere of influence.

  • Coursework - I want to see the general battery of courses. Since I'm generally looking for JEE projects, I put a slightly higher priority on web development and database electives, and also security courses, due to the nature of my business. But this is hit or miss, mileage varies - no one resume is perfect for every job - all I can say is, learn what you can of the business - your best bets will be places where your skill set matches their skill needs.

  • Highlight the nature of your "killer project(s)". One is enough, but if you've had a few interesting projects and/or interships, highlight them. Talk about the technologies and the nature of the work in your experience section.

  • Highlight technical jobs - internships & coops.

  • Highlight work where you were a teacher, mentor or leader - knowing that you can talk to humans and explain stuff is a big win. I've seen a lack of internship experience be balanced by good work in assistant teaching, tutoring, group leadership or self leadership of any activity where it's clear you had some serious responsibility and no minute-by-minute oversight - in particular any role where the next person up the chain was comfortable leaving you in control and trusting you to ask for help when you were in over your head.

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.

2
  • Very good advice!
    – MathAttack
    Feb 12, 2012 at 15:54
  • Although long, reading your answer was a delight. I wish more programmers would focus a bit on their communication skills, like you have :) Dec 1, 2013 at 22:00
16

There's a few things you can do:

  • Do programming projects at home. Put them up on a website for the community to see and use / give feedback on. You might even be able to make some money this way! Employers love this - it shows you love programming and have an interest in it outside work / college.
  • Take part in the programming community. Keep up to date on the latest technology so you can talk about it in interviews. For example with PHP you might want to keep up to date on various frameworks like Zend or jQuery. Twitter is great for this.
  • Talk with companies and say you want the experience. You might be able to get a short term contract (with no pay), but it's something to put on your CV and you'll learn a lot! The employer likes it because it's free work for them, and gives them a chance to see you working to see if you will fit in with the company. If you do, they might even offer you a job at the end of the temp contract.
  • Go to conferences/meets. They are sometimes free and gives you a great chance to network with people already in the industry.
15
  • 30
    Ew, unpaid work. I've never done that. Nobody ever should. Contribute to an open source project if you want something to point to. Working for free devalues your skills. May 13, 2011 at 18:32
  • 5
    @Sean, how is unpaid work any different then donated open source? May 13, 2011 at 18:36
  • 18
    Because you can show someone else your FOSS code. If you work for free on a closed source project, you come out with nothing. Also, many companies ask specifically about work done on open source projects. If you're going to spend time not getting paid to write code, it may as well be for something your future employer cares about. May 13, 2011 at 18:38
  • 8
    And I maintain that you get better value per hour by working for free on an open source project than you can get by spending the same time working for free at a company. That's all I have to say. May 13, 2011 at 18:56
  • 8
    As another idea, charities can also use free programming help at times.
    – HLGEM
    May 13, 2011 at 19:48
10

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.

1
  • 4
    +1 for "You did not learn everything ... in the classroom." As a hiring manager this was one of the rudest shocks I could give to new grads (a couple with PhDs) from MIT, UCB, or Stanford. School != Real World. May 13, 2011 at 18:46
4

In terms of finding a job:

  • Take advantage of any career services that the college has and check as often as you can to see if they know of any new job listings. Likewise, talk to professors in your department and see if they know of anyone that is hiring as well.
  • In the same line as the previous item, also talk to your professors and see if they need any help with projects that they might be working on.
  • Learn to network, show up for meetings of local computer clubs and talk to the members. Join a professional organization (e.g. IEEE Computer Society, Association for Computing Machinery) while you still quality for the student rate and attend meeting, get to know the other members and talk to them about what they are working on.

In terms of the structuring your CV:

  • The CV of a college graduate is expected to be a bit sparse in terms of professional experience. As such, don't add things just for the sake of adding them to fill up space. If you did something that is relevant to the job your are applying for or demonstrates some sort of "soft skill" (i.e. leadership) then feel free to leave it, but trim down such things as "bagged groceries" or the like.
  • High light relevant courses you took as part of your degree program, mention major projects that you worked on or if you had a capstone course or senior thesis to write. Include a cover letter with your CV where you can high light things even more and also let us know if you have a portfolio or sample code that you can let us see.
2

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.

2

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.

Good luck.

0

One thing I'll tell you is that colleges have a tendency to not teach very much at all in their CS degrees, compared to what they should. As in, you really need about two or three times the technical expertise that you will get in a basic CS Bachelor's to fully know what you're doing as a programmer. Some people study or work extracurricularly, which helps a lot, but core classes alone are a limitation.

...So what will set you above other candidates?

  1. Knowing at least a few more languages than they teach you in college, as well as how to integrate a database into a program.

  2. Be experienced enough to no longer be "green".

You would do well to put together the following: Make a web service whose implementation is in .Net, and which uses an instance of SQL server. Make a web site with a scripting language that makes calls to that web service to store and retrieve information in the database. Make sure you can use that web site over the Internet, and not just with your own computer or office LAN. It's fine if the site's small, but make sure it does something useful. If you put in enough research, coding, testing, debugging, etc. to actually do something like this, that ought to impress an employer.

Not the answer you're looking for? Browse other questions tagged or ask your own question.