2 Copy edited. Added some context. Used the official name of Stack Exchange - see section "Proper Use of the Stack Exchange Name" in http://stackoverflow.com/legal/trademark-guidance (the last section).
source | link

I think, as with anything, practice makes perfect, just. Just don't pigeon holepigeonhole yourself into always doing the same thing or always using the same language and keep continuing to learn things on every project.  

I think you can easily draw a parallel to something like learning to play a guitar. AnyAny good musician can learn to play a new song in a very short period of time, because they already know all the chords and all the theory behind why the chords are played the way they are. HowHow do they get that good? TheyThey just have played so many songs that all the patterns have just blended together, while at the same time supplemented their knowledge with actual documented theory that those patterns subscribe too.

So maybe you can play a few songs very well, but you can't deviate or pick up new songs quickly. ThisThis is probably the equivalent of a .NET.NET programmer that continues to make the same CRUD appCRUD application over and over, at some point try something new, add in some web service calls or an advanced UI, or writing it in a whole new language. WhenWhen you hit a snag look into why things happen the way they do, ask questions on stackexchange..etcStack Exchange, etc. EventuallyEventually, you will see all the patterns that continually come up and know some of the underlying theory and learning a new language won't seem nearnearly as daunting.

I think as with anything practice makes perfect, just don't pigeon hole yourself into always doing the same thing or always using the same language and keep continuing to learn things on every project.  

I think you can easily draw a parallel to something like learning guitar. Any good musician can learn to play a new song in a very short period of time because they already know all the chords and all the theory behind why the chords are played the way they are. How do they get that good? They just have played so many songs that all the patterns have just blended together, while at the same time supplemented their knowledge with actual documented theory that those patterns subscribe too.

So maybe you can play a few songs very well but you can't deviate or pick up new songs quickly. This is probably the equivalent of a .NET programmer that continues to make the same CRUD app over and over, at some point try something new, add in some web service calls or an advanced UI, or writing it in a whole new language. When you hit a snag look into why things happen the way they do, ask questions on stackexchange..etc. Eventually you will see all the patterns that continually come up and know some of the underlying theory and learning a new language won't seem near as daunting.

I think, as with anything, practice makes perfect. Just don't pigeonhole yourself into always doing the same thing or always using the same language and keep continuing to learn things on every project.

I think you can easily draw a parallel to something like learning to play a guitar. Any good musician can learn to play a new song in a very short period of time, because they already know all the chords and all the theory behind why the chords are played the way they are. How do they get that good? They just have played so many songs that all the patterns have just blended together, while at the same time supplemented their knowledge with actual documented theory that those patterns subscribe too.

So maybe you can play a few songs very well, but you can't deviate or pick up new songs quickly. This is probably the equivalent of a .NET programmer that continues to make the same CRUD application over and over, at some point try something new, add in some web service calls or an advanced UI, or writing it in a whole new language. When you hit a snag look into why things happen the way they do, ask questions on Stack Exchange, etc. Eventually, you will see all the patterns that continually come up and know some of the underlying theory and learning a new language won't seem nearly as daunting.

1
source | link

I think as with anything practice makes perfect, just don't pigeon hole yourself into always doing the same thing or always using the same language and keep continuing to learn things on every project.

I think you can easily draw a parallel to something like learning guitar. Any good musician can learn to play a new song in a very short period of time because they already know all the chords and all the theory behind why the chords are played the way they are. How do they get that good? They just have played so many songs that all the patterns have just blended together, while at the same time supplemented their knowledge with actual documented theory that those patterns subscribe too.

So maybe you can play a few songs very well but you can't deviate or pick up new songs quickly. This is probably the equivalent of a .NET programmer that continues to make the same CRUD app over and over, at some point try something new, add in some web service calls or an advanced UI, or writing it in a whole new language. When you hit a snag look into why things happen the way they do, ask questions on stackexchange..etc. Eventually you will see all the patterns that continually come up and know some of the underlying theory and learning a new language won't seem near as daunting.