I read a perfect article about 'how to be an expert' today. And the most notable section of if was this quote from Dr. K. Anders Ericsson:
"For the superior performer the goal isn't just repeating the same thing again and again but achieving higher levels of control over every aspect of their performance. That's why they don't find practice boring. Each practice session they are working on doing something better than they did the last time."
I think what separates good coders from great ones is this little point: Great coders are never happy with what they know and the way they know how to do things.