One of the interesting conversations I had during Zendcon was while talking to a recruiter. She asked what questions she could ask to help guage how strong a PHP developer is. The best one I could come up with was "name 6 of the 10 variable types in PHP". I've had the pleasure of being able to interview several people for working at Zend and that is usually one of the first questions I ask and I can usually get a good feel for how long the conversation will be after that. It's an esoteric question but by asking it I can guage a) how well that person knows PHP, and b) how easy it will be for me to work with them. If they know the answer (and correct it) they know their PHP. If they don't know the answer but get flustered or angered by it, then they will probably be harder to work with.
But the truth is that most of the people I've interviewed, and who have eventually worked with me, I've recommended after simply talking with them without a script. I've interviewed a bunch of people for Zend Services and I think that the best interviews were the ones where we just talked tech. The times when I was going off of a script was usually when I got the feeling that they wouldn't be a good fit. Especially if they had attitude issues. They would be going out in front of customers and if I thought they would have attitude problems I would start pounding them with questions that they probably didn't know and see what their responses would be. They could answer correct or incorrect but what I was looking for was their reaction. More often than not it was quite easy to pick out the people that I would not put in front of customers. In fact, I would take someone who got more questions wrong, but could keep from getting frustrated over someone who would get them right but act incredulous. I was interviewing one person one time who would be working as my counterpart in Services who got kind of upset with me and said "I don't need to know those things to do this job." That conversation didn't last much longer than that. Not because he didn't know, but because he lost his cool.
But, I'm getting a little off-topic, mostly because I like reminicing over some of the more colorful interviews. That is what brings me to the point of this blog posting. I can interview for certain (but by no means all) PHP positions because I know a fair about PHP and I believe that being smart but being an asshole does not make you a good PHPer. But not everyone who interviews knows that. And not only that, it is getting difficult to find good PHP developers. A lot of the good ones are being taken up by top companies, but even they are having trouble finding all the good developers they need.
Because of that, I would like to see if we couldn't (pseudo) standardize on deciding what makes a good PHP developer. In other words, if someone asks "what does a good PHP developer look like" we could give a concise answer. Jim Plush actually blogged about this a few years ago and I think that what he said there was quite accurate.
But it doesn't end there. Knowing what makes a good PHP developer is not enough. In order for PHP to succeed we need to raise the competance of all professional PHP developers. And when I say "make PHP succeed" I'm not talking about the simple number of domain names where PHP is run on. What I mean is increasing the quality of PHP developers to the point where companies who run PHP-based applications are able to fulfill their need for good PHP developers. What I also want to do is get a feeling not only for what good PHP developers look like but also what they can do, specifically, to increase their value. Being a ZCE is one example, but the ZCE exam can only do/tell so much.
For example, if someone should know XHTML, WHAT should they know, WHERE can they learn it properly and HOW will they know when they know enough. We're real good at saying what, in general, developers should know (e.g. Unit Testing), but we're not so good at being specific.
For the record, I have my idea of what should be done, but I'm one person with one point of view. What is your point of view?
Specifically (since we're being specific)
- Is there really a shortage of good PHP developers?
- Is there an interest in some level of semi-official developer standards beyond being a ZCE/ZFCE?
- What are the significant topic areas that PHP developers should be reasonably expected to know well?
- Should these questions be broken down by discipline? (e.g. backend developers, web page designers, performance gurus)
If you have answers/thoughts concerning these questions you can either post them in the comments or email me at kevin at zend . com.