1. Pick a Project

Pick a project and just build it.

People attempt to study a language when starting out. This strategy is ineffective. Pick a project and learn whatever you need to learn to get it done. This gives you context and forces you to be creative. Some of the best learning comes from solving unique problems that no one has solved before. This process is tough but tenacity is the name of the game.

2. Teach

Teaching ensures that you know your shit by creating an incentive to have a deep understanding of the material.

I am making a Twitter game tutorial because I want to learn AngularJS. Teaching allows you to help others, satisfy your curiosity, and increase your value.

3. Pair

Pairing is the fastest way to learn but you are limited to shared knowledge. You absorb knowledge, workflows, and problem solving strategies without the difficulties of learning from personal experience.

My skills have rapidly improved since I began working with other developers but you should not stop here. Working on individual projects allows you to expand beyond shared knowledge and bring fresh ideas to your team.