Jamie asks on LinkedIn.
The short answer
The question is wrong.
The long answer
A true PHP developer is a programmer who knows PHP. A false PHP developer is someone who doesn't know PHP. That's the closest correct answer I can think of.
I think, Jamie wants to ask, "what's your definition of a good PHP developer?". There is no correct answer to the question. All, you can do is highlight some of the good things a PHP developer does.
Let's seize this opportunity to talk about the traits of a good PHP developer. Most of the things that apply for a discussion about good PHP programmer also applies to a good web developer and good programmer in general.
- A good PHP programmer writes PHP code everyday. Needless to say, I don't mean all three hundred and sixty five days a year. You can safely ask a PHP developer how long they have been programming in PHP. A good answer is a number greater than 1.
- A good PHP programmer constantly improves his or her PHP programming skills. Like any other good programmer, a good PHP programmer reads blogs, tutorials and books dedicated to PHP. If someone read a "learn yourself PHP in 24 hours" book and clams to be a good PHP programmer, it's a clear signal. As a matter of fact, PHP is the first programming language for many people. This is because PHP is easy to learn and start building an application immediately. This raises the question, is the application written by a beginner PHP programmer really good? Probably not because it might
- have security vulnerabilities
- have been poorly written. Other programmers might not understand the code.
- have performance issues. When the application is used on a production setting, the real issues crop up soon. You bet, performance is one of them.
- not be scalable.
- have annoying bugs the programmer didn't care to test
- have deployment issues
- the list goes on and on. But I'm going to stop here.
Software architecture skill comes with experience.
- A good PHP programmer always keeps security in mind.In the golden days of PHP 3 and PHP 4, there were a lot of open source PHP applications that had questionable number of security vulnerabilities in them. The argument also holds good for home grown applications written by poorly skilled PHP programmers. Take a look at OWASP top ten list.
- A good PHP programmer has a good understanding of SQL. I haven't met a PHP programmer who haven't used MySQL. SQL itself is a big topic for study. A good PHP programmer is willing to work with other relational databases like SQLite and PostgreSQL. Many people think a PHP developer can also perform DBA tasks. This is not true.
- A good PHP programmer knows how to consume and build web services. If the candidate in question has never heard of or worked with web services, you can immediately come to the conclusion that he or she is not so good PHP programmer. Talking about web services, reminds me of XML. Not knowing XML is a huge loss to a PHP programmer.
- A good PHP programmer frequently attends PHP conferences and user group meetings. Our ideal PHP programmer is a member of the community. A good PHP programmer probably often speaks in such events.
- A good PHP programmer learns other programming languages. For a PHP programmer, it is enticing to use PHP for every programming task out there. But real programmers know the right tool to use for the right job.
- A good PHP programmer feels at home when using Linux. PHP programmers come across the term LAMP on a daily basis. PHP is widely deployed on the Linux platform. A PHP programmer pushing for Linux platform for deployment is not uncommon. I expect a PHP programmer to install PHP, MySQL and Apache on a Linux server.
- A good PHP programmer keeps an eye open for trending technologies. Good programmers know that learning never ends. Although the learning curve is high in the initial stages, not keeping oneself abreast of trending topics can lead to sizeable loss.
- A good PHP programmer doesn't play the "know it all" geek game.We're talking about a good PHP programmer not the perfect PHP programmer, agree?
- A good PHP programmer knows at least one popular framework very well
- A good PHP programmer knows at least one CMS very well.
- A good PHP programmer has thought about Zend PHP certification.Before proceeding further, I would like to mention that I intend to write a full blog post on this topic. In short, if you think a true PHP developer must be certified by Zend, you're wrong.
- A good PHP programmer contributes to open source projects.Almost every PHP developer thinks he or she should contribute to some open source project someday. The reality is, not all do. Being zealous and discarding a candidate because they did not contribute to any open source project is irrational.
- A good PHP programmer embraces industry best practices.There is no manual or bible describing what are industry best practices. The perception of best practices varies from person to person. The best practices don't remain constant. To keep oneself updated about the current best practices, one should often talk to a lot of successful PHP programmers.
- A good PHP programmer writes unit tests and functional tests.
- A good PHP programmer is comfortable working with version control systems.
- A good PHP programmer makes good use of project management tools.
- A good PHP programmer keeps a tab on PEAR and PECL.
- A good PHP programmer writes articles.
- A good PHP programmer understands what IDEs are available for PHP and what they offer.
Recruiters, look for these traits in the candidate. The perfect candidate will have all these traits. If you come across such a PHP programmer, you can truly call him or her a PHP rock star.
A good PHP developer can be a jack of all trades web development related. But he or she can only be master in few.
What do you think?