How to Become an Expert Quickly
How do you become an expert developer quickly ... and skip ahead in the job line...? ... most senior developers would claim that becoming an expert takes time, but there is a trick :-)
Jump onto the New Technologies
When I started as a Java developer, Java was new. About 2-3 years old. As a Java developer, I was thus competing with developers who had at most 2-3 years of experience in Java. They might have 20 years in C, C++ and other languages, but only 2-3 years in Java. At most. It was easy to look like an expert on the paper, that way. No one had 10 years of experience.
If you start in Java today, you will be competing against developers with 10-12 years of experience in Java. 2-3 years of Java experience will not look like much. When you have 10 years of Java experience, you will compete against developers with 15-20 years of experience etc.
The trick is, to start with a new technology. For instance, Android is only 2-3 years old, but it is already a huge success. If you start now, in 2-3 years you will be one of the "old" guys in Android. When companies hire for Android you will be competing against guys with at most 3 years more experience than you. Thus, it is much easier to look like an expert in Android, than in Java.
Hot Technologies in 2012
The same opportunity exists today (2012) in new technologies like Scala, HTML5, iOS to some extend (it's not that new anymore), and other newer technologies. Especially HTML5 is destined to be a game changer. You can easily become one of the experienced guys in HTML5 today, since you will be competing with developer with at most 2-3 years of experience here too. Many have less.
You might think that the old Java guys will jump onto Android now too, and that you will thus still compete against developers with many years more experience. But this is not true. Many experienced Java developers are busy making money on their expertise right now. Many have families that take a lot of time too. They don't have much time to learn new stuff. Some may even feel a bit discouraged, knowing how much time the spent getting into Java etc. And now they have to "start all over". Plus they still have to keep up with the developments in Java too.
The Story Repeats Every 5-10 Years
So, there is the trick - if you want to jump ahead in the job line, and become an "expert" ahead of time :-) ... it works. I've done it before, and so have many of my colleagues.
Additionally, these opportunities keep ermerging, whenever a new, promising technology arrives. In 5-10 years it will be something else that is new and hot, that new developers can jump onto.
If you jump onto a new technology now, in a few years we, old Java developers will become dinosaurs, watching with envy as you Android, Scala and HTML5 guys become the new rock stars, while we complain that we, the dinosaurs, deserve to be the kings, refusing to accept that we are heading for extinction....
... no wait, what am I saying? Don't do that... I don't want to be a dinosaur already ;-)