For those of you who don’t know me personally, I’m a development manager. The most important part of my job is to interview and hire software developers. With mediocre software developers, you get mediocre software. No one wants mediocre software.
I like to believe I’ve become pretty good at identifying talent and weeding out less-than-desirable candidates. During my career I’ve interviewed many candidates, possibly in the hundreds, and built successful development teams from scratch more than a few times.
Last week I received an email from our HR recruiting manager about a young, fresh out-of-college candidate that we really didn’t have a position available for, but had an internal referral and really wanted the opportunity to talk to us.
Our resulting conversation, or rather, the fact that I’ve had this conversation at least 3 times in the past year, is why I decided to write this post.
Here was my feedback to the recruiting manager:
This was a nice conversation, he’s a pretty smart kid. As I expected, his answers were wordy and rehearsed, pretty standard for someone fresh out of school with only scholastic experience.
That being said, after a few softball tech questions I drilled into his knowledge a little bit and really uncovered how junior he is. When I asked him about Agile, he recited a Wikipedia definition that most likely would get him a “B” on a test, but he couldn’t give me any specific examples of how he and his team used it or why it was “better than waterfall for modern projects” (his words).
We spoke only briefly about his Java and JSP experience, but I got the feeling that if I had dug in, he’d fall short on design patterns and implementation standards outside of what was written in a book.
Education is important, but more important than what you know is how you’ve taken what you learned and used it in your career/life.
When I talk to programmers, especially young ones, I’m looking for eager curiosity and self-taught experience. You can’t get this in a college classroom, it’s a personality. You either have it or you don’t.
As I interview more and more of our millennial generation I am finding that interviews like this are becoming more common. And that concerns me greatly.
What I really wanted to say during the interview was “An interview and an exam do not share the same purpose, therefore they do not have the same answer. I’m not asking you about agile SDLC because I want to know if you know the definition. Frankly, I don’t care if you know the definition.” But I did not. Maybe I should have.
Many of the best programmers I’ve worked with have no formal college education, and many of them have no certifications of any kind, but they are still brilliant developers. Getting a degree in Computer Science does not make you a programmer any more than wearing feathers makes you a chicken.
Walk into your kitchen, unplug the toaster, take it apart and find out what makes it work. If this activity doesn’t interest you, maybe you should pick a field outside of engineering.