One morning, about 17 years into my career, as I sat down in front of my terminal to begin a day's coding, a thought occurred to me. I knew, with the certainty of muscle memory, that any idea I could think up, I could turn into working code. What was more important, I realized that this hadn't been true a year ago. There were things I wouldn't have dared attempt because they seemed to me too hard or ill-defined.
Seventeen years is a long time to master a craft. I'm sure there are people who became master craftsmen in fewer years. I'm also sure that anyone who thinks they have mastered software development in one year, or in five, is delusional. Mastering the craft of software development is like mastering a martial art, sport, or musical instrument. There are aspects of the craft that just take time to develop. There are no shortcuts.
You are an Old Hand when you know you are one, with the certainty of completely internalized reflexes. There is no test. There is no certification. There is no course of study. You cannot buy mastery with any currency but time and practice.
That does not mean you cannot improve. Mastery is only obtained through study, but study doesn't lead to mastery. Study does lead to knowledge, and to improved practice. But mastery comes from a different well.
Mastery doesn't mean you cannot improve either. With considerably more years practice behind me, I find coding tasks come easier and easier. And I'm still learning too.