How Do YOU rate yourself as a PHP Developer?

December 27th, 2006 by rvdavid Leave a reply »

Surfing through sitepoint, I came across this post by one of the new comers.

“Hi guys, just wanted to ask a question, how should we rate ourselves as php developers?”

I thought it was a rather valid and interesting question. It got me thinking about my very own rating process. Personally, I rate myself on level of code quality, work rate compared to research rate and elegance of the source code I produced to provide solutions.

I don’t keep a scoreboard or anything like that, but in no particular order, I rate myself intrinsically. Following Web Development Standard conventions such as variable naming and documentation is a given, but usually, I’d be going through the following in my head:

General PHP Code/Application Quality and “best practice” compliance.

  • Am I doing what everyone I perceive to be developing online applications at a professional level is doing
    (Versioning System, Unit Testing… etc)?
  • Are my database tables normalised correctly?
  • Is the application I developed scalable?
  • Have I broken any of the OOA&D design principles?

PHP Application Design Questions

  • Did I settle for any god classes?
  • Does coupling occur in my code where they shouldn’t be occurring?
  • Does my code have Meaningful relationships?
  • Is it free from repetition (copy and paste)?

Answers to these questions would mean that I either need to do research on some things later on, or I’ve climbed up to the next plateau. While being extremely self critical, I also focus on the good things that I’ve done and take those on board.

Beyond Scope of the PHP Project

I also spare some thoughts for my performance while developing the project. Ideally, you set a comfortable iteration timeframe and then try to develop and finish the application earlier than the iteration.

I ask myself questions like; Did I spend too much time on any aspect of the project? If so, did I solve it and learn something from it? or did I abandon what would have been an elegant solution (which needed more research but no time to mess around) and go for an easier, but more hacked together solution?

I rate myself yearly or half yearly. I sit and study what I’ve learnt the past few months and set goals for my next auto-didactic adventure.

The Imaginary Haughty PHP Web Developer

When I’m developing a project, I’m constantly imagining a haughty coder looking at my scripts and snickering at the low quality of my source code. (He has a smirk on his face before he utters those oh so cutting words “frickin’ n00b”).

I always set aside some time for refactoring for each project. If I have time at the end of the project, I will keep tweaking it until I can perceive that the imaginary developer in my head understands the conventions I’ve used, design patterns I’ve applied and that he or she can refer to my documentation and follow what my classes and methods do. My aim is to have the imaginary coder in awe at the elegant solution I’ve provided for such a complicated problem.

I guess this rating system is not so much a “rating” system, but more an indicator of how much I’ve learnt and how much I need to learn. These questions give me the answers I need to rise to the next level.

If I can consistently do that and gradually spend less time refactoring/tweaking my PHP source code, then I’d consider myself to be at the same level as any professional web developer – this goes primarily for Object Oriented PHP, but also to my procedural PHP projects to a certain extent.

if you enjoyed this post, make sure you subscribe to my RSS feed!
You can also follow me on Twitter here.

No related posts.



  1. Kevin says:

    Nice post. Good to get an inside view as to how a professional OOPer thinks and the dillemas one goes through.

    Good post rvdavid :)

  2. DevGirl says:

    I think I’m $hit hehe jk

    Nice site, I sent you an email asking you a question because I’m too embrassed to ask you here :)

Leave a Reply

Notify me of followup comments via e-mail. You can also subscribe without commenting.