This morning I spotted a BBC article noting that the level of unemployment in graduates has risen 25%. If you have tried to hire any graduate, then this figure probably doesn't surprise you, or if it does, you maybe thinking it should higher.
We sometimes hark back to the good old days, when at the end of every year, if you didn't pass the exams you were asked to leave the course. In my university course, of the 200+ that started in first year, only 30 odd managed to make it to year 5. Knowing 40% of a subject does not make you an expert!
Yet in this day and age of higher education, we are scared to tell people they don't know, and for whatever reasons (funding?) they are kept as long as they keep showing up for lectures.
We are seeing the result of this wisdom as the pool of talent coming from the UK universities is quite frankly embarrassing.
We have even had resumes coming from lecturers of said students (after hearing of jobs going in the area). Having gone through the usual process with them, we can see why some of the graduates are in the shape they are. It truly is not their fault.
Recruiting for junior roles
We've been actively recruiting for the last 6months and have been receiving resumes from graduates from all over the UK, but mostly concentrated from Scotland. Our catchment discipline is of course computing and software engineering degrees. We have a couple of positions for junior roles as well as a couple for senior roles.
There are two broad types of graduates we've been seeing. Those that are about to graduate looking for their new software engineer career, and those that have graduated in the last 18months and have still yet to find a job in the software.
One thing that we can say about both groups - there are a lot of people that should never be anywhere near a keyboard let alone be let loose with coding, yet their respective university degree has convinced them that they know their subject and could benefit mankind in some shape or form.
We are recruiting for coders. The resumes we pick to interview (either via phone or inperson) have shown an interest in coding and proclaim a whole manner of achievements in this field. For example, anyone that lists Word and Excel in their skills, are automatically removed.
We have some standard questions we ask to gauge their software engineering prowness. From simple object-orientation, inheritance and polymorphism through to data structures with a sprinkling of design patterns mixed in. Nothing language specific. You will be amazed at how many people cannot answer even the simplest of questions. For example, a software engineering graduate should know the difference between a hashmap and a list, or when to use to interfaces or even what a base class is.
Very few can offer any design pattern examples. Many just look with a blank stare, with no idea what you are asking.
We then have a very simple Java coding challenge to complete. This is a very simple class they have to fill in the code for some methods. Here we are really wanting to see how they tackle a simple problem. Do they handle exceptions properly, can they follow simple instructions, can they think around a simple block. The ones that pass this simple test, get to come for an interview. This is where most fall. This is no Google test by any stretch, and you would be amazed at how simple this test really is. Yet we've seen some howlers contributed.
What we have noticed though, is that very few graduates know anything about open source. Those that do, can't tell the differences between license types or name any open source body other than Apache. Very few keep uptodate with industry news or follow any tech RSS feeds. We have yet to find one that has contributed to any sort of mailing list.
Graduates that are currently doing work (shelf stacking, bar work etc) while they wait for their "real" job are the ones that I feel could do a lot more to help themselves than simply firing their resume off. We've had a number of them come in, begging for an opportunity to get started, stating they are all self-starters, self-learners and all the usual buzzwords they think we as employers are wanting to hear.
Yet none of them are. The industry is craving for good developers and one of the places we all look for a pool of talent is open source projects. Many people have been plucked from a mailing-list or project to be given real-paying work by a company. An open source project gives people the opportunity to learn from seasoned experts, build relationships and contribute back (either documentation, support or code).
If any of our potential job candidates could point to a piece of contributed effort to an open source project they would be offered a job on the spot.
Top 10 Tips for Graduates seeking a career in Software
Here are some things that any graduate can do to help their chances in securing their dream role in the world of software.
- Clean up your resume
This is the first thing we read about you. Keep it simple, and remove all the fluff about you knowing WindowsXP, Word and Excel. If you are listing PHP as a skill, then it is safe to assume you know HTML.
- Remove buzzwords
Don't overload your resume with buzzwords and lots of fancy catchy acroymns that you really don't know. Listing all the J2EE subcomponents doesn't impress anyone, especially if found when asked you don't really know them at all.
- Learn the basics
Be prepared to be asked about the basics (simple object orientation concepts, data structures for example).
- Learn to read code
Practice looking at other peoples code. You will most likely be asked to read someone elses code and comment on it. This is something you will do every day in your career. Learn to read past formatting.
- Leave an online persona
Find out what happens when someone searches your name. Do you pop-up in the right mailing lists or software forums? Or is it all social-network stuff? Are you someone that has shown they can ask questions and get a problem solved?
- Play with Open Source
Getting involved with a good open source project will almost assure you a job. Anyone that can demonstrate an ability and aptitude in this area will not be sitting on the fence very long. This communicates so much to an employer it cannot be overstated. Even tinkering on your own home project will go a long way. There is no barrier to entry to write code. So do it.
- Know your industry
Software is always changing. You never stop learning. Read up on the latest trends, be prepared to be answer questions on what you think of the latest technologies and ideas (for example Web2.0 or cloud computing).
- Know what you want
Software touches every aspect of life. Figure out just where you want to be in that world. Does mobile coding excite you? Server-side coding? Embedded? User interfaces? Web pages? You don't have to necessarily decide, but you should be showing an interest in one over another.
- Don't be scared to say "i don't know"
It really is okay to say you don't know something. By all means offer up an educated guess, and preface your answer by saying that. It demonstrates that when you do hit something you don't know, you are prepared to seek help and keep moving forward.
- Research the company interviewing you
It is interview technique 101, but learning about the company you are interviewing with will help both in knowing if you want to really join them and if they really want you to join them. A job is more than just a monthly salary, it is about joining a team, sharing their vision and helping them move forward. You are recruiting the company as much as they are recuiting you.
Software graduates have a difficult time for sure. They have so much competition, on paper, from their peers it is difficult for the employer to pick out the rough diamonds from all the stones. That said, they are the ones in power, and if they can demonstrate the will and passion, they will land their dream job and who knows where they will end up.