More than most professionals (perhaps with the exception of doctors) software developers contend with change and growth.
Outsiders identify the instigators as advances in hardware and new deployment platforms, but when you're deep inside the works -- a fish in the fishtank -- the view of change and growth are quite different.
From inside you see your assignments and what the nearby developers are creating, along with occasional somersaults from the development environment. Food drifts down in fits and starts. Occasionally you get a new bubbly castle.
In the workplace you tend to get caught up in the office rivalry to impress your boss with your capabilities; you want to eventually move up the ladder from programmer1 to the lead software architect. In this industry staying static -- just creating with the same level of technological adeptness -- is a certain downward spiral. It's like being a plastic plant: you may look really good all the time at just one thing, but nobody is going to get terribly excited over what you have to offer. After awhile you will disappear amongst the accumulated algae.
People acquire skills on the job in various fashions, with as many styles of growth as fish have personalities. One key element to success however is to challenge yourself by volunteering when you smell opportunities. The way you move beyond what you currently know is to step outside of your comfort zone and offer to assume responsibility for something that is slightly beyond, slightly harder than what you think matches your present capabilities. Then the only way out of this predicament is to learn new things and to ask for help.
You need to make an occasional leap out of the fishtank into a new body of water, spawn and reseed yourself once in a while. Growth is all about the research, the struggle, and the experimentation. And more than anything growth is about the stretch.