The number of active PHP devs here at Sitepoint has always interested me. To get the numbers, please take part in the poll below. If you aren’t sure where your level of expertise lies, see post #12. Thanks for your participation in advance!
That said, I pretty much NEVER call myself an Expert (or anything above), because there’s always sooooo much more to learn, things i’ve never used. Large scale products at a professional level. Entire chapters of the PHP manual i’ve never done anything with. How can I call myself an expert when there’s all this stuff I don’t know?
I consider myself intermediate because I can generally figure out a way to do something in PHP somehow, someway (usually).
So I have a lower scale then you. I consider you an expert because you can take your knowledge and apply it to other situations / help people. While I can figure stuff out, I’d be wary of giving advice.
What he said.^
+Interesting scale, at present Intermediate is top and no Gurus or Gods. Maybe there should be more choices in the mid-scale than the top. Intermediate is a very grey area with many levels.
It would be interesting to have a list of ‘milestones’ that describe the stages: beginner, intermediate, expert, guru, etc. I build php web applications for clients, quite proficient in procedural php, working my way into more expertise in OOP, MVC and am building my first real application in Laravel 5. But I see so many developers out there who are way more knowledgeable and experienced in php, that I think I will be stuck at intermediate forever.
Novice: You’ve used variables, conditions, loops, functions, etc.
Intermediate: You’ve used OOP, namespaces, exceptions, autoloading, testing, etc; and familiar with security issues, coding styles, etc.
Expert: You’ve used the larger PHP ecosystem, such as libraries (Symfony components, Doctrine, Guzzle, Markdown, etc), frameworks (Laravel, Symfony full stack, CodeIgniter, Cake, Yii, etc), and tools (Composer, CodeSniffer, XDebug, etc); and familiar with design patterns (MVC, decorator, strategy, DI, etc), and other concepts such as SOLID, composition v inheritance, etc.
Guru: You’ve made significant contributions to the PHP community and ecosystem. This is the category I would imagine people like Fabien Potencier would fall into, with things like Symfony, Composer, and Twig.
God like: You’ve worked on an execution engine for PHP. This is the category I would imagine the developers for PHP7 or HHVM would fall into. (Ironically, these guys probably work in C++ on a daily basis rather than PHP.)
One of the key points I agree with is that to be considered a Guru one goes beyond just working for clients. They assist others contributing back to the community via sharing knowledge in the form or writings and/or code to well known open source projects. A keyword there is also SIGNIFICANT.
For that reason I would consider myself an expert since I have contributed to some open source projects but nothing of HUGE value – bug fixes here and there when I find them.
I semi disagree with Jeff_Mott in regards to “God Like” for no other reason than the people described there are not “php devs” in the traditional sense of the word as they are working in compiled c/c++.
Instead I think “God like” would be the minds behind the MAJOR, well-known open source projects and sub-ecosystems like Symfony, Drupal, etc. The only thing that really makes them different than just “Guru” is the “reach” of their work.
I stand firm on my belief that anyone who has worked on PHP projects in isolation but has RARELY made contribution(s) to the global ecosystem can only EVER be considered an expert REGARDLESS of 10 or 20 years experience with the language.
I think memorizing the manual is the least important thing when it comes to judging skill level. The most important thing is given ANY project being able to stand-up an environment to work on it and resolve business problems with LITTLE guidance in terms of PHP questions. For example there seem to be a lot of questions lately on standing up basic environments to get projects running a local instance. Those people can not be considered experts and could probably hardly be considered intermediate in most cases. Knowing the language is useless without practical application in real world set-ups with continuous integration set-ups and basic server admin architecture to stand-up an environment or at the very least knowing how to google for the answers to the right questions and resolve them ones self. Though now I guess I’m heading more towards genera; web development expertise which isn’t really “php” but I don’t think being an expert in"php" isn’t without being an expert in building websites. Similar to being able to play an instrument but unable to read sheet music.
I would say a developer could be considered intermediate if their expertise in a language is of a certain level in general even though there are areas that they have never had the need to explore (using the GD library for example - although I have used that in a digital signage project several years ago) and even though until recently they have never had the need to work in any other local type of environment than xampp, etc. The use of virtual machines for development is not a requirement for being proficient in php, maybe just useful. I would be interested in finding out how many self-proclaimed intermediate php coders regularly use local virtual environments other than xampp, wamp, etc. And I am sure that all developers who consider themselves intermediate have reached that level by Googling for answers to their issues and working hard to resolve them themselves, but I find it difficult to believe that they are always successful using this approach and never have to ask for help. I would suggest that only the experts, gurus and godlike developers never have to ask for help.