While looking for talent to help grow my consultant company, I went to a lot of career fairs. In my mind this is a great opportunity to meet budding developers fresh from their CS courses. The challenge I have (and all employers who come to these fairs) is how to differentiate the great developers from the masses. All the resumes look the same, and after a while all the students do as well. With potentially a hundred or more people to wade through, I only have a few minutes to size up a candidate and decide whether to invest the additional time of performing a phone interview or even bring them in.
I have a single question that does more to separate the interesting developers from the masses better than any other I have come up with, I merely ask “Tell me about a program you wrote for fun, not for school or any job, just for yourself, for fun”. I get all kinds of blind stairs and stammering. I have even had students tell me “why would I ever write a program just for fun?” I have no interest in working with someone who calls themselves a software developer and never writes code for the pure joy of it.
Occasionally I still write programs just for fun, but back in the day when I was a serial entrepreneur of software companies, I was always writing code for fun. If I was asked this question in an interview I could regale the interviewer for hours with programs, both large and small, that I wrote with no thought of commercial gain, or the whip of a school taskmaster driving me to do it. I never did get a chance to commercialize my Lunar Lander game for the TRS-80, but I had a lot of fun writing all that assembly code. Let me put it this way, I have never met a single great software developer that doesn’t write code in their leisure, especially as a student.
Not everyone agrees with this idea, but let me ask you, if you were hiring an artist to paint your portrait, would you pick an artist who never worked outside of the classroom? You may say “but painting is an art, programming is just engineering”. I believe that crafting a great solution is just as much an art form as painting.