To answer your questions, I find awesome code and techniques through books and from the internet. Keep reading new books even if you have become familiar with the language. Try working on your own projects because different problem sets demand different way of solving things which will not be offered through normal work environment. Write small games, puzzle solvers, etc. Understand how things work and be familiar with the tools which you can then incorporate back to your work.
Another way of improving your programming skills is by learning a completely different programming paradigm. That will make you think differently when solving problems even if you don't end up using that particular language.