What is your definition of a "True PHP Developer?"

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 a bit of CSS In the web development industry, there's a clear distinction between front end and back end developers. CSS and JavaScript fall into the former and PHP to latter category. Only a tiny percentage of developers are gifted with both the skills. A PHP developer should be able to write some CSS.
  • A good PHP programmer knows a bit of JavaScript.Like I noted in the above point, JavaScript belongs to the front end department. But a PHP developer should know how to manipulate DOM, use AJAX and widget libraries. Knowing JavaScript is a great boon especially when working in small teams with limited resources.
  • 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.

Conclusion

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?

Taxonomy upgrade extras: 

Comments

A good PHP programmer knows a principles of HTTP and other net protocols

Thanks for adding that point.

This is a good attempt at describing a true php developer but I guess everyone will always not agree with one or two points mentioned, but non the less a very good read.

1)A good PHP programmer knows how to consume and build web services
I have mixed feelings about this one particular point, I have used both soap and restful web services but that was because the projects I was working on required it. what happens if this was never a part of any project requirement ? cannot dismiss one because of that.

2)A good PHP programmer knows at least one CMS very well
I know about 10 CMS but only in reference, never had a need to use one.

3)A good PHP programmer has thought about Zend PHP certification.
I have been postponing this exam also but I think it should play a big role in determining how well versed a developer is with php.

Thanks for the comment.

Even though building and consuming web service is not a part of project requirement, the good PHP programmer must know how to do it.

You've presented some good points here. That said, I'd like to comment on a couple items:

>>Many people think a PHP developer can also perform DBA tasks. This is not true.

Why do you claim that this isn't true. In fact, I've found that very disciplined and educated developers can be better DBAs than many "pure" DBAs.

Also, though I agree with the following:

>>A good PHP programmer feels at home when using Linux

I would also add that it would be advantageous to be comfortable and competent with Linux and Windows operating systems.

Again, good article...thanks for sharing :)

Some PHP programmers might be good a good DBA as well. In my experience, most good PHP programmers don't make good DBA. Just like most PHP programmers aren't good at CSS.

Although closely related, a person good at one doesn't necessarily mean he or she is good at the other.

Thanks for the comment.

I like that you started with pointing out the question was entirely wrong. It makes sense that it came from LinkedIn (probably from a technical recruiter with no technical background.) However, the very nature of the question suggests that php developers are just that: Folks who write php all day. However, in the real world, anyone working with php *absolutely* has to have some awareness of the way the internet works. You could replace every one of your rules with any other language and they would still hold true.

A better question might be to asks: What makes a web developer a good web developer?

There is a survey which says who is an average person working on PHP projects :)

http://emission-framework.com/article/vitche.wordpress.com/php-framework...

I have a friend and he has PHP background skill but today he work for ruby on rails company, so I agree with this point "A good PHP programmer learns other programming languages."

A good developer will spot an incompetent interviewer very quickly

i havent tried php development

I am new in this field I can't say more about it. But personally i felt PHP developer must know everything. I agree with you. I'll try to be a good PHP developer.

goes always to manual. ;-) (and reads comments too).

Whatever your chosen tool, PHP, PERL, VB, C, etc., a true developer is someone who can create a solution to a problem using their chosen tool. It is no as much about the tool, as it is the ability to create something from scratch to solve a problem using your chosen tool.

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
By submitting this form, you accept the Mollom privacy policy.