What are the indications?
I think, a good indicator is to look at old code. Use code which is about a year old and compare it to your current architecture. Try to see what you have changed and why you think your current code is better. You will immediately see the things you figured out over the past year! The code you write is always a reflection of your current level, so there is no better scale than the code itself.
When you get good enough to take a look at code you wrote a year ago and don't think "Ah, what did I do there, that's so unmaintainable, I will have to rewrite everything to get the changes done", then it's a good indicator that you grew a lot. Well, even I think that I might write better code today than back then, but imho, it was pretty ok back then and I feel confident to make a change and release the old code as-is without worrying too much about other people (other professional devs and veteran FOSS devs) seeing it.
hmmm depends programming should be split into different topics
And I guess this is still to crude and we could argue about my groupings.
But you can improve in most of those fields and still suck in another ... After 10 years I still think I suck.
What really helps is writing things down before hand and do the hard part to abstract your thoughts in any form you choose -> TDD, UML, Flow-Diagram ...
it sucks and is hard to formulate things but it helps to improve your structure, break things down ...
So in the end .... it's really hard to decide if you got "better" because who decides what's good ? coding is a lot like art .... it's a lot about taste and mindset.
The reason I assume I am not the worst is that I get rehired by certain companies where I met some good devs.
Peter Scheler
JS enthusiast
You look at your code from [ yesterday / last week / last month / last year ] and think: "which stupid idiot has written this s**t?"