Welcome to Pete Brown's 10rem.net

First time here? If you are a developer or are interested in Microsoft tools and technology, please consider subscribing to the latest posts.

You may also be interested in my blog archives, the articles section, or some of my lab projects such as the C64 emulator written in Silverlight.

(hide this)

Getting a Job after Graduation Requires More than Just GPA and Resumes

Pete Brown - 25 May 2010

Ahh, graduation time.

I just came back from Redmond and found my 10rem contacts email full of several messages like this:

I'm a computer science graduate with a 3.x ... 4.0 GPA, and am looking for a job. Can you help?

In my previous life, I hired a number of people, and also helped my clients interview prospective employees. It has been a while since I went to school, but let me tell you what worked then, and some of the things I looked for as a hiring manager at my last job, whether the candidate was coming right out of school, or had a few years of post-graduate employment.

Position

First, some background.

The positions I typically needed to fill were consultant positions. Consulting requires people who can code well, stay on top of new technology, communicate with the client, write documents and contribute to proposals. It requires the ability to look and act professionally, and the ability to always be one step ahead of the client in terms of technical ability and knowledge.

Most importantly, the people I hired had to be flexible in terms of what technology they'd work in. They could have a favorite technology, but had to be able to incorporate others as the project dictates. You can be passionate, but not a zealot.

Foundations

There are some core things that I think are always needed, preferably in your education. There's a lot more than what I list here, but I figured I'd cover the ones that are not often considered.

Writing, Spelling, Grammar

It is rare to find the old "shove a pizza under the door and leave me alone" programmer jobs these days. Programmers, especially ones on teams or working for consulting companies, need to be able to communicate in writing. Writing, Spelling and Grammar all count. No one is going to hang you for a dangling participle, but confusing "you're and your" in documentation or an email to a client makes you, and the whole team, look uneducated. Typos can be forgiven, but using the wrong "it's or its" is rarely a typo.

If your spelling is sub-par, use a spell-checker. If your grammar is poor, make an effort to fix it using books and on-line courses.

In all cases, have someone review your resume to make sure you don't

Data Structures, Algorithms

Most Computer Science programs include information on data structures and algorithms. Understanding how pointers work and how linked lists can be built is essential from a thought process standpoint. I've only had a few instances where in modern times I've needed to create low-level data structures. However, there have been many times when I've needed to understand how existing ones perform in order to select the right one for the situation.

Languages

I like to see a couple languages in the candidate's past, including at least one unmanaged lower-level 3gl like C, C++ or Pascal, with a experience with pointers and memory management.

Patterns

A decent understanding of patterns is essential these days. It's one of the things that makes it possible for you to cross language boundaries, and make the most of your skills. I don't know if schools today teach patterns (the closest we came was an algorithms class). If they don't, pick up a decent book or surf a bit to understand the basic patterns and their uses in software development.

Extracurricular Activities

Once you get past the foundations, you should be working on your own time to improve. Sure, you don't have to, but it will greatly improve your chances of being hired.

Reading

This may be controversial, but I've found the correlation between people who read regularly (not necessarily technical, could be, and often is, fiction or non-fiction) and people who do well in the community and on the teams to be pretty high. I would usually ask about the last few books the candidate read, and what they liked to read.

It has been proven that reading helps keep your brain sharp. I also think it helps your imagination, something I consider important for developers. I also think you shouldn't force yourself to read. Instead, you should find something you like to read. For example, despite having tried a bunch of times, I simply can't read books about business or being successful - they bore me to tears. If Neil Stephenson puts out a new book, though, you bet I'll be all over it.

Here are the results of a recent informal twtpoll I conducted. If you compare this with the national numbers outside of our field, you'll see that developers tend to read quite a bit more.

image

 

The poll shows the developers were pretty evenly split between 2-4, 5-8 and 9+ books read in the past 5 1/2 months. I've read around 8 books, mostly science fiction.

This poll shows that 1:4 adults read no books last year (poll from 2007). I've seen other statistics that said 1/3 of high school graduates never read another book. On NPR one day, I even heard the number 65%, but I find that hard to swallow given college enrollment. The state of being able to read, but deciding not to, is called Aliteracy.

So, this is highly subjective, but all other things equal (which they probably wouldn't be) I'd take a reader over a non-reader. It never came down to that decision, but it was a data point in a few cases.

Coding for Pay

I went through a few iterations of things that did not work for me in school. The final one which worked, and worked really well, was to arrange my classes so they were all in the morning. I then worked in the afternoon. I wasn't flipping burgers, though, I was working as the sole programmer/it department (later had a total of three people) at a medical billing company in Massachusetts. The real-world experience I gained there was worth almost as much as my education. The two combined were exactly what I, and my future employer, needed.

If you can code for pay, even if it is low pay, do it. Few things are worth more than experience when it comes to making your resume pop.

Coding for Fun

I always looked for people who were passionate about programming. Few things prove that like coding for fun. If programming is not only your education and your job, but also one of your hobbies, chances are you like doing it.

So, I would ask candidates what side projects they worked on, even if simple or incomplete. Writing some apps for your sister-in-law's business, writing code for a cool lego robot, or creating a game were all plusses. Running an open source project was a huge plus as it showed not only coding, but also collaboration and a number of other skills.

Blogging and Speaking

This  is not essential, but I always considered it a huge plus. I like developers who give back to the community either by speaking/teaching, or writing. This not only goes back to communications skills, but also shows (in most cases) continuous improvement and leadership.

Keeping up with the Joneses

This falls under "Extracurricular", but I wanted to call it out as it is one of the single most important things

You need to continuously improve your skills and knowledge.

You should be reading blogs on a regular basis, maybe subscribe to a magazine, maybe even buy books. Whatever you do to keep your skills fresh should be a continuous process.

I can't tell you how many people interviewed for positions at my last company, and told me they only learned what they had to for their day job. That is a complete and utter FAIL when it comes to succeeding in our industry. If you don't branch out and learn things from other people working on different projects, your skills will stagnate and your code will stop evolving.

It sounds cliché, but your graduation really is the beginning of your learning, not the end.

Keep Busy

So, if it takes you six months to find a job, and you really do want to find a job, be sure to do some of the things here. You should be coding, speaking, writing. You should be able to put something new on every batch of resumes you send out. If you can't, all you're doing is serving up the same information that was rejected in previous rounds.

Want to get started writing applications so you can learn more, but aren't sure how? Check out my post on creating awesome apps when you're clueless.

 
posted by Pete Brown on Tuesday, May 25, 2010
filed under:  

3 comments for “Getting a Job after Graduation Requires More than Just GPA and Resumes”

  1. Chris Andersonsays:
    Great post Pete. I particularly believe in the point of coding for fun. It shows motivation and dedication - two really important qualities that make a great developer (in addition to passion, and a willingness to learn on their own). I don't believe that universities prepare students for the real world, and are too far behind the times. Graduates that have worked on their own projects on their own time (using current technologies), and teaching themselves along the way (because this career requires constant learning and staying up to speed) are the ones you want to hire.
  2. Robert Iagarsays:
    Very nice and inspiring. Sometimes a feel nerdy that I'm the only one who tries to make side-projects for school and other students don't. I just want to learn how to code. One of my key plus is that when I don't know the best way to do something I improvise and usually it works. Not the most efficient way but it works.

    Keep these kinds of posts coming!

    P.S. This year I'm going to finish High-School. So this inspirational words came right on the spot.

    Thanks!

    Robert
  3. Sebastiansays:
    Another quality entry. While I do not fully agree with everything (e.g. I would favour proficiency with a non-imperative/oo-language over the pointer-stuff and I do not think that reading blog posts is necessary as books may be a fair source for acquiring extra knowledge), I especially like the reading point - to me, reading non-programming literature implies a broad interest and openness that is very helpful when communicating with other people, especially customers from non-technical backgrounds.

Comment on this Post

Remember me