In my 12 year career I've worked in a variety of development roles and seen periods of extreme growth and periods of stagnation. The periods of growth are highly rewarding and exciting. They are periods where all you see is opportunity for innovation and you just want to build and build and build. The periods of stagnation are quite the opposite, you get bored, your solutions become less innovative and you risk burnout. Not to mention your career goes nowhere if you remain in a permanent state of stagnation.
Ask yourself this question. How many times have you learned something new and then either quickly delivered extra value because of it, or looked back at a previous project and realised how much pain you could have avoided if you'd only known this new exciting thing back then? That is the danger of stagnating, not only is your work life not full of fun and exciting things, but the quality of your work suffers.
So how can you maximise the periods of growth and avoid the periods of stagnation?
The danger of working full-time in one job for an extended period is that you start to think in terms of your current architecture, tools and processes. You get this tunnel vision without even knowing it, though you might suspect it. You have this hammer and every problem looks like a nail. That is when stagnation sets in. There is a famous line about experience: Do you have 10 years experience or just 1 year repeated 10 times? I see it all the time, sometimes with really experienced developers, and I see them get rings run around them by younger guys with a handful of years experience but who have the hunger for growth and knowledge.
There are ways of avoiding this fate and if you have the hunger and the passion it will be easy for you. First of all, regardless of your situation, I highly recommend listening to podcasts. You don't learn the nitty gritty details of technologies but you learn the landscape - you learn what you need to learn. It is also really interesting listen to different experts and giants in the industry discuss technical subjects. Check out my Reading page where I also list my favourite podcasts.
Work on personal projects, preferably in a different technology stack or a different area of the stack to your work. Even better, though a little scary at first, you can contribute to an open source project.
Write a blog or answer questions on Stack Overflow. You will be amazed at how it forces you to learn things in more detail when you are writing about it. Having a private conversation about technology with a friend or coworker just doesn't cut it. Blog posts go on the internet with your name on it, your reputation is at stake. When you say something wrong on StackOverflow at best you'll be ignored, more likely you'll get shot down in flames. Now that is motivation for knowing what you're talking about! Which means learning, which means growth!
Finally, there is consulting. There is no stagnation in sight when you do consulting. No one problem is the same, there is no universal architecture. Every client is a unique snowflake and they'll be using different mixes of technologies in different ways with different needs. If you care anything about your work then you'll be obsessive about delivering value. In such the varying technlogy space that is consulting, if you're not growing continuously then you're not delivering value. Yes there is pressure to deliver but there are rewards also. Not only can you reach a higher level of mastery and faster, but you also get paid far higher.
But making the jump to consulting can be scary, how do you find clients? Maybe marketing yourself isn't your strong point or sales just isn't fun for you? That is where the TopTal Web Developers Network comes in. They only accept the top 3% of developers who apply, that means if you get through you're like the Top Gun of software developers. Being recognised as a Top Gun means you get the best projects at the fastest moving, most innovative companies. Seriously, do think you could achieve better growth than that working on a side project at home? If you're serious about becoming a master software developer then you've got look for growth opportunities. Don't waste your time stagnating when you could be learning, growing and getting paid for it too.