After learning the basics, I learned mostly by building my project (social network site) and googling for solutions whenever I encountered a problem outside of my knowledge. Most of the time the answers were in the Stack Overflow, but sometimes I cloned other people's repositories and reverse engineered them until I got my answers. Here's my repository if you want to do the same: github.com/mikey1384/twin-kle Hope it helps.