Graduation time again. Newly minted grads will be taking to the streets looking for a job and many may well have applied or being looking to apply for graduate programs at companies both large and small.
These programs may look to rotate recent grads through the different departments over an 18 month to 2 year period to allow them to find their ideal niche or just be a direct pipeline into a single department. Given the current economy, even a half dozen spaces on a graduate program are going to have several hundred application for each space.
This raises an obvious question for a technology company looking to recruit into their development organisation: how the hell are HR, who we all know lack the understanding of what makes a good technologist, able to winnow this ridiculous volume down to something where developers can get involved? At my current client we would love to be able to interview every candidate. Given that we like to spend at least half a day doing an initial assessment, that just won’t scale. Because of this I was asked to help come up with a solution that could be completed by the candidates and/or the HR folk to generate a way of ranking candidates. So: non-technical people assessing technical people? It’s going to have to be some sort of list.
Based on a list of behaviours and achievements that we’ve seen in our best graduate recruits in previous years it’s important to say that what we came up with is not a dumb checklist, but rather something to assess candidates against each other where a ‘no’ in one category is not an immediate fail and a phenomenal score in a one important category may put you at the top of the rankings.
So here we go -
- Good academics
- Anyone who achieves a 1st is impressive but the University it is from is also important. In my experience a 2:1 or 2:2 from a top tier University (Ivy League for US or Russell group for UK) can be equivalent to a higher grade degree from another University
- Has been awarded academic prizes or scholarships
- Has done internships at prestigious companies
- Has taught undergraduate classes (more common in postgrads doing MSc/MPhil)
- Takes part in local programming user groups. An example being the GDC in London
- Commits to open source projects or better yet runs an open source project
- Has a blog/twitter account and posts/tweets on technical subjects
- Has done programming projects on their own initiative
- Has a social coding account – Github preferably but SourceForge or Freshmeat are also good
- Codes in multiple languages
- especially if they have a mix of static/dynamic or strong/weak typing and mentions the pros and cons
- bonus points for real world usage of academic-ish languages like Scala, Clojure, Haskell, Lisp, Erlang
- bonus points for iPhone, iPad or Android Apps
- Has attended conferences or better yet has presented at Conferences on CompSci topics
- Has taught themselves a programming language with no outside help
Now the good news is, for those without a stellar academic record the importance of things like open source projects, being able to code in multiple paradigms and being involved in the technical community mean that if you are involved in all of these you have an equal or better chance of being selected.
For the HR folks reading this
Some of the best programmers and engineers I have ever worked with didn’t even go to University/college. In some cases didn’t even finish high school. This list is only useful in sorting graduate candidates when all of them have gone to University and should not be used as a blunt assessment tool for every candidate. You will need to speak to the people you are recruiting for to find out exactly what they want from their candidates to know how to weight the questions on this list.
For the graduates that are reading this
Your CV will be used to distinguish you from the other candidates, that is a fact of life. In an ideal world you would be able to come in and we would both get to know each other personally to understand your desires and abilities along with our work culture and aims. This is never going to happen so you need to make the best of your CV. That said, a great CV will still not get you the job. I’ve previously mentioned what I think are the characteristics of a good developer, why passion is so important and why you need to be about technical skills and more and you might want to consider these topics when you think about how you can show why you are the best person for the role.
A good CV will get you the interview – a great attitude and awesome skills will get you the job.
Edit: there is a great post here by James Turnbull which covers similar ground