What do you look for when you hire a PHP programmer? Or a Java developer? I would like to ask this question to someone putting out an ad for one. I have believed that language expertise is necessary, but not sufficient. Unfortunately, I have not been able to concretely and generically say what else is required. So let me list some abilities, other than the language skills, I expect in a 2-3 years experienced PHP programmer. He/She should:
- understand the basic request-response system of the Web
- know HTML and should be aware of Web standards
- know I18N and L10N
- differentiate between client-side and server-side programming/scripting
- install and setup the local development environment, including the Web server and required tools, libraries or frameworks
- setup the debug environment
- use a version control system
- use a bug tracking system
- use at least one editor as an expert for development
- use at least one OS effectively enough to complete development tasks
- communicate with the team
- ask doubts and questions
I am sure this will turn out to be a subset if you consider it in the context of a particular project.
Note that the list does not talk of any programming language expertise. They are populary called adminsitrative and project management tasks. However, from a team member perspective, I am just expecting someone who knows a real world project setup, at least the minimal one.
Also note that we can easily replace PHP with another language that can be used for Web programming – Python, Java, Ruby, … Because it is not about the programming language. In this case it is about practial Web development. But how many times do we use this while interviewing people? The advertisements, the telephone round, the written tests and even the face to face interviews hover around the programming language.
I do not mean to say that language expertise is unimportant. However, learning programming languages can happen through education. Whereas these abilities can be gained only through first-hand experience. If you want to test a programmer’s experience this list will help you get the true picture. And if you are a programmer, be assured that unless you develop these abilities, you will not be able to be productive with your language skills.