What does it mean to be an Advanced PHP Programmer?

Written by Chris Roane
advanced-php-programmer

On a previous post I had someone comment that they did not agree that the code implementation that was presented in the article was advanced (which was described in the title). They also claimed that I was not an advanced PHP programmer.

This made me think. Not because my programming skill or knowledge was challenged. But because I’m not sure what makes code or a programmer “advanced”. This article is meant to take a look at this from an analytical perspective. I’m less concerned about general labels, and more concerned in how to improve going things going forward.

What makes a PHP programmer advanced?

  1. Is it the programming concepts they understand? If so, which concepts do they need to understand in order to be considered advanced?
  2. Is it the amount of experience they have or the size of the websites they’ve worked on? If so, how long do they need to have programmed or how large of a website do they need to have worked on to be considered advanced?
  3. Is it how fast or efficient they program? If so how fast do they need to be?
  4. Or maybe it is dependent on how modular their code is?
  5. Does it depend on how much they makes?
  6. Does it depend on whether the PHP programmer went to college or not, and which college they went to?
  7. Or does it depend on the conferences the programmer has been to?

The point I’m trying to make is that the term “advanced” is a relative term and is subjective to the person using it. A person may define a PHP programmer as advanced if they understand object oriented concepts. Or they may consider a PHP programmer advanced if they make a six figure income. But the fact of the matter is that you can use whatever labels you want, but that doesn’t define your value as a PHP programmer. Outside of general programming knowledge and concepts, there are many other factors to consider when analyzing the value of a PHP programmer. On top of that, the term “advanced” does not always equal “best” or “most valuable”. I wrote an article last year that goes through Analyzing the Value of a PHP Programmer.

What makes PHP code advanced?

Similar to the previous section, I think this question is very subjective…and honestly I think it is irrelevant. You can have the most “advanced” PHP code in the world for a system, but it could also be the most worthless code because it is impractical in most situations. I also think it misses the point.

In any given scenario, the best solution is sometimes a simpler solution than a more advanced implementation. A real world example of this that I’ve experience is the use of object oriented PHP code. In a framework system such as Zend Framework, using object oriented code makes a lot of sense. But for a simple site with only a few pages and one simple form, using objected oriented code may be overkill and take much more time to implement. At one point in my career I had built a custom object oriented framework that I used with all of the custom sites I worked on. This worked okay at the time, but looking back I now realize that I had spent a lot of time that I didn’t need to spend creating a framework system when I could have used countless other systems that were already created. On top of that, there were some websites where I had used this system where it would have been faster to just put together a more simplified solution.

Summary

Instead of throwing around general terms in labeling code or other programmers, let’s come together and figure out ways in improving code together. Practical applications. Questions such as, when does it make sense to use OOP? Or how can we make this code more modular in a site that needs to re-use the code? These are the questions that are worth pursuing. This is how we can help others improve their code (without caring how “advanced” they are) and this is how we can improve our own code and increase our value as a PHP programmer!

Did you like this article?

Enter your email address below to get notified when the site is updated. Or you can always subscribe to the RSS Feed.

Please help us spread the word about this site by tweeting, digging and sharing this article around the web (see the buttons immediately above).

Friday, June 3rd, 2011

19 Comments or Pings to What does it mean to be an Advanced PHP Programmer?

  • Andrew Heebner says:

    So, by using someone else’s code (i.e., Zend Framework), it helps you to become an “advanced programmer”?

    This I hardly believe. I’ve been swallowed up in an in-house MVC platform here at my job, and quite frankly, it sucks. There’s a million and one ways to do things, and while portable code is convenient, it’s not always the best path… nor does it make you “advanced” by any means.

    Being “advanced” is in the eye of the beholder. To some, you could be viewed as a genius, while by others you could be viewed as an idiot.

    My two cents.

    • Chris Roane says:

      That is why I was taken back by that comment in a previous article. Taking that a step further…just because you are using a framework type of system, doesn’t mean that you are utilizing it in the best way possible. Which is part of what I understand you are saying.

  • Hi Chris… Well, after I’ve read your post I started to wonder that too… “What makes a PHP Developer become ‘advanced’?”.

    I contribute to several portuguese developers’ communities and we have several types of coders there. From totally novice to experts, we get acquainted with several distinctions.

    From my point of view, it depends of the user’s knowledge… If a user understands less than you, he/she’ll think you’re a pro (an advanced php developer), if it has the ‘same’ knowledge you’ll be bumping and have ‘friendly’ discussions but will have your own sides…

    (to refer that some coders may understand more about a specific topic/question than others).

    … on the other hand if another coder knows for sure that you’re wrong and is absolutely right, than you go from number 1 to less than zero…

    … but hey, such is the life of a democracy :) freedom of speech :)

    • Chris Roane says:

      Ricardo…that relates to my feeling on this as well.

      I think some people like to think of themselves as advanced to make them feel good. Honestly, I don’t know if I would consider myself an advanced php programmer, just because I know there are a lot of people out there who are more knowledgable than myself. But I also know that compared to some programmers, I may be considered advanced. But who really cares? It does me no good to look at myself as advanced. In fact, it probably would make me more arrogant and less willing to learn from others!

  • But in something like programming, is being advanced really something worth striving for? Isn’t writing “advanced” code usually something you do because you do not have the skill to break down your problems so they can be solved by easier, readable code?

    Seeing how some of the most most common principles mentioned when discussing programming is stuff like DRY and KISS, I think it is obvious that writing “advanced” code is rarely the best way to go :-)

    Jesper Jarlskov

  • @Chris Rone
    Well, I would like to think of myself as a correct coder, rather than advanced. We have an old saying that says “All the paths lead to Rome” … There are many ways to solve a problem, usually more than one are correct… If you do the job and you can still maintain the code… than I guess it’s ok, hum?

    @Jesper Jarlskov
    In a matter of “Advanced PHP Developer”, I believe it means you have “Advanced Knowledges” so that you can work and fix more complex problems….

    … in a matter of “Advanced PHP Code”, still you can see it in both sides:
    - Either you have such a complex code (“advanced” in a negative way) that you need advanced skills to maintain it…

    - … or you’ve made such an advanced code that you reduced the lines of code, made it faster AND IS STILL MAINTAINABLE… that would be my “advanced code” type :) .

    ;) Hugs

  • Boaz says:

    Nice article. I agreee that labeling someone as advanced is a subjective process. We may want to ask ourselves what we’re trying to accomplish by determining whether someone’s advanced or not. If it’s a personal opinion then its relative to the skill level of the one defining another’s programming level.
    If it’s to decide who to hire, then of course it’s relevant to the type of product bring developed or the requirements of a project.
    That said, if someone has been programming for 20 years and is making a good living, its likely that their programming skills are more advanced than someone who just started out. Being a core contributor to a major project like a widely used framework or site would require having advanced skills. Bottom line, i would sat that the level of a programmer goes with their accomplishments.

  • Dave Smith says:

    I didn’t see the previous post, nor the comment on it, so my view may be erroneous. But I’d weigh in on the side that says “if code looks advanced, you’re Doing It Wrong”.

    The best developers are those who can solve problems, simple of complex, in such a manner that they all become simple problems. In fact, in any field, the most “advanced” are those who “make it look easy”.

    It sounds to me like your commenter is not yet sufficiently advanced in his or her development to appreciate that.

  • Abou Kone says:

    Interesting conversation, I agree with Chris that the answer is subjective and this applies as well to other languages. An advanced programmer in my opinion would be one whose experience allows him to solve problems in the most optimal way. As somebody mentioned earlier, that would results in having simple answers for complex problems. It takes a good deal of intuition, creativity and experience to achieve it and it’s a moving target in the end. Do we ever stop learning?

    • Chris Roane says:

      I agree with what you are saying. But even the term “most optimal” is subjective. Some programmers might consider modular code the most optimal code to implement in most cases. Others may look at speed as being the most optimal codebase.

      But you do bring up a good point that often times, the best solution, is the simplest. I have found in my own experience that most problems are not complicated when you break them down into smaller problems. It’s when I over complicate things that I end up getting myself and other programmers into problems…

      Thanks for sharing!

  • Sam Katoozi says:

    I think the “Advanced developer” is always the one who knows more than me! so if I’m someone who just start learning PHP or someone who has been in PHP development for 10 years if you know more than me in one subject in PHP then you are more “Advanced” in that area for me.

    As for accomplishments I think if you are a core programmer for a big project and a very large contributor of a project that alone does note make you an Advanced developer but because, you need to learn more to do your job or contribution more effectively(or at all!) that would make you more Advanced.

    I would say the same argument goes for the experience or education or the rest of the criterias that you mentioned.

  • Thanks for u r blog while i was searching across the advanced PHP programming i catches u r blog really it helps me a lot!!!

  • gaurav garg says:

    Hi chris ,

    Your codes are really cool and helping all to became Advanced developer . The Developer that uses the basic concepts in the clever way to make the things easier and faster is the Advanced developer .

  • Kim Pastro says:

    Good discussion, I’ve learned a lot just reading the post and comments. Thanks.

  • Jason Davis says:

    I know this is just an opinion so here is mine. I think Advanced PHP would be someone who has a good concept of MVC and several other Object Oriented patterns, who can write clean code that utilizes these patterns to get the job done. An Advanced PHP dev should be able to tweak the code to get the maximum performance out of it as well

Trackbacks & Pings