As a hiring manager, I am often faced with the question of Education verses Experience. This extends beyond hiring experienced candidates, to entry level candidates as well. A usual rule of thumb for experienced hires is that 5 solid years of experience is equivalent to a Masters Degree, assuming that person already has a Bachelors. And I will go further to say, that if the candidate with 5 years experience worked on at least one hard core project that was released and supported in a production environment, that experience is worth much more than a Masters.
Convention of most firms dictates that we only hire candidates from the top schools and the top of their classes. For entry level candidates you will often see firms at Career Fairs and other Campus Recruiting events advertising requirements that state a GPA of 3.5 or above or something similar.
In my experience both the GPA and the school selection limits your ability to find quality candidates.
Specifically for programming and other Information Technology related jobs, we as hiring managers and human resource professionals need to broaden our searches.
A student with a 3.0 GPA which is still pretty good, who has spend their personal time working on programming projects, perhaps posting them on Source Forge or other Open Source directories or collaboration sites is much more worth my time as an interviewer, than a student who spend 100% of the time head deep in the books getting that 3.8 or even a 4.0 GPA.
The fact that the student takes time out of their personal schedule to program for fun or simply to help an open source project along, demonstrates that they are enthusiastic about programming and that they have experience working outside the safety of the classroom setting; which although challenging in it’s own way, the classroom and the programming problems given by the majority of Computer Science programs have known solutions and are achievable. Not all problems in the real world have easy or predictably achievable solutions like they do in the classroom.
I do understand some students of computer science student and research very abstract problems which may not have a solution for many years or even decades, but those are usually very academic problems. Again this blog is about Real World Enterprise Programming, so I don’t cover those cases including in this post.
The majority of programming jobs out there do not involve these very academic problems; we live in a practical world and practical solutions are usually what Enterprise level development demands.
Having stated my case that I obviously value Experience (both professionally and personally) over education, I still believe you need a solid basis of a computer science curriculum to be successful in Enterprise Programming.
From a Enterprise Programming view point, additional course work with Databases and Unix Programming (A Great book for this is: Advanced Unix Programming, this book helped me build my own Unix SHell: The PASH SHell) are also extremely important.
Universities, like my own, NYU Polytechnic usually focus on the theory and no so much on the practical. The professors expect you to sit in the labs, your dorms, your homes, and learn the programming languages inside and out, on your own time. For example, I had a project involving P-Threads in my Operating Systems course, which we were expected to either already know or learn on our own.
And during any of my interviews, I ensure myself or whoever I delegate the Interview Process to, covers Data Structures, Object Oriented Programming and Design, and the other topics I described above. However we can’t just stop at the theory; my interview process involves writing actual code, and tests to see if the candidate can apply the basic topics they learned in school to real world problems faced by developer on the job in the industry for which they are applying.
This just goes to show me that experience wins over education 10 times out of 10. I know my friends and family who work at Universities and other educational institutions are going to hate me for saying this, but it’s true, at least in my business…
This extends to experienced hires as well. I read 100’s of resumes every year and the candidates who demonstrate an interest in programming outside of the workspace, for example, have open source projects which they are a part of, or have their own web site or blog about programming or other Information Technology topics, always have a one up in my mind.
This post is going to eventually lead into an article I’ll write about “How to Interview High Caliber Developers”…Just Another Stream of Random Bits… – Robert C. Ilardi