Monday, April 05, 2004

An open request

Would you want to recruit a person who knows the syntax of a programming language thoroughly, including every comma and syntax (or as the case might be, every control of a form or every trick of a tool; you get the idea) or would you rather recruit a person who can analyse and wants to solve problems?

For me the above question is a basic no-brainer. Any given day of the week I will go for the latter. Knowledge of syntax, tools etc. will surely help but are not essential. The keys traits that I require are curiosity, analytical skill, and above all a driving need to solve problems and take on challenges. For a long time I have interviewed people on these basis. To be entirely frank I have had to recruit freshers into the company after checking on only their basic theoretical skills but that was due to the fact that the company was on head-hunting spree and to meet the numbers we were trying in to get in every potential candidate. However for interviews to my own group I try to be much more stricter and really require people who are ready to solve, who know more about software engineering than just the tools of the trade, who have some inkling of what is going on around them. I strongly feel hat every person should aspire to be problem solvers rather than expert of an inanimate thing like a language or a protocol.

After reading the above paragraph you must be having a fair idea of where I stand on the matter of interviews and interviewing. (For an even better idea check out my favourite links about this subject : Joel on Software - The Guerrilla Guide to Interviewing & "MadMan" on interviews) Imagine my surprise( or a rude shock depending on how you look at it) when I found from my friend that in all the interviews she has attended (as an interviewee) they always ask her syntactical questions( of the variety of how is a certain interface called and with which keyword or which function in which java library is required to do XYZ job). Come on!!! That’s what manuals are for. Why in the name of heaven would a person want to learn this information by rote?!?

I could rant on forever but that is not the goal of this blog.

The main concern I had, which made me write this blog, is to do with the advice that I regularly give people (yup, people actually come up to me for advice!!!)
Whenever a kid (broadly meaning younger to me either by age or experience in IT) has approached me with request for guidance for career growth I have always told them to be problems solvers. My normal advice is to not just be an expert in a certain language or tool. Instead I ask them to be an expert in the domain they are working in and gain enough expertise in tools to help them solve problems faster. Key phrase being ”to solve problems”. Now with this new knowledge of how interviews are being held I am worried whether I have been giving the wrong advice all the time.

So now to my request…can you my readers please give me an idea (from your practical knowledge) of what my advice should be? I would not want to mess up people’s chances making them conform to some idealistic professional Shangrila I have.

Many Thanks for the same.