When you see 1000 moves ahead
Sorry for my english, which is not my native lang, ok?
Insomuch as you are looking for a measurable indication, you are right: such a question like yours is, as a matter of fact, so open to speculation that you yourself rightly found out you needed a measureable entity for a START.
Of course, the reason you felt you need one is that... you feel there isn't a clear one.
You seem to have believed that it might be a matter of time - that is you say: "how much time would a good developer need to create an exact duplicate".
Unodubtely, time was a reasonable pick to look for an indicator.
Unfortunately, it isn't. One programmer may need one year, another 5 months, and the product still be the same: now, we'd evaluate basing on the results, not on time. Two great ferraris are still GOOD no matter if one took 1 year to be assembled or the other 9 months...
So one might argue about things like: are there in the codes the comments, are there the good naming conventions... and yet once again, you can have great codes and bad naming conventions applied, and of course nothing of the latter would diminish the value of the former.
But then, what is a great code?
You know, actually one parameter is available: security.
But if you really want to know what is that can make you guess how much of a good programmer you can be, I know what the indicator is. It is elusive as you rightly felt because it doesn't stay in the measurable outer world, but within.
Programming is like playing CHESS. In fact, do you know WHAT is that makes a great chess player? Have you ever played chess? We know as an objective matter of fact what this is.
It's envisioning the moves ahead.
The chess player who wins, is the one who outranges your ability to foresee his(her) next move with his own ability to foresee yours. His move, yours, his next options, your next moves, his next options, your next moves... who stops first, is the lesser player.
Because there is a LIMIT to how much a man's mind may control and coordinate at once, how many wires you may pull at the same time.
If a programmer writes a code and sees one or two moves ahead, he/she isn't good. If per each line of code you write you see 20 moves ahead, you are good.
How can you tell that you "saw a 'move'"? Because each line of code you write, makes you THINK about many possible outcomes and about how many possible combinations of the inputs there can be round the corner, and round the next corner, and the other corner again and again and again. You have a VISION.
Those are the "chess moves" applied to PROGRAMMING.
Eventually, you will find that a specular indicator of what type of programmer you are is, if it is seeing many moves ahead, that your fellow programmers do NOT follow you anymore and do NOT understand AT ALL what the flick you're talking about.
It's the time when they start saying YOU are bad........
When your fellow programmer will say to you that you're bad, and that you talk nonsense, THEN you are GOOD.
That is, you are good when you become LONELY. That's the chrism. Genius does not go in teams.
When everybody can't understand you, when they MOCK at you because you CAN see things that they can't even imagine go figure understand, and therefore you start finding also the manuals as pretty lousy and crammed with unsecure advice, particularly the most affirmed manuals, particularly those where TONS of programmers worked, particularly those where worked programmers that think manuals are the Bible and therefore they transmit from one programmer to the other their lousy habits as templates.... when you see all of this, when you are out there in the wilderness, when it's just a matter of you and the codes in MORTAL COMBAT, and the far horizon you see is open to your eyes only because no one else has hat scope, when you start INVENTING because manuals FAIL to see what you see and you need to trash templates - then you DO are GOOD.
You can tell you are very good when nobody understands you any longer, and when you read the manuals feeling a shiver in your backbone at seeing what they have been able to pass as a sound advice over there...
[QUOTE=chaosTheory;3210689]Hi guys, just wanted to ask a question, how should we rate ourselves as php developers?
There was a thread at sitepoint that talks about how good a programmer are.
Most of the replies in that thread are about aptitude, for example, clean codes, comments, etc. But those can't be measured.