I'm relatively new to web development and I'm currently trying to learn new technologies like Angular.js, Node, etc.<p>I'm finding myself reading through all the documentation, but I feel like I'm wasting my time. I don't know if I should just jump right in and start coding.<p>What's the most efficient way for you to learn new technologies?
Jump in and start coding. The type of knowledge you get from reading docs is very different from the type of knowledge you get from solving problems. The former may get you a job but is generally pretty useless when it comes to solving more problems. The latter is harder to do, but once you do, you find that it compounds and you can solve harder and harder problems.<p>I usually try to start with a nearly trivial problem and work my way through it, eg. right now I'm learning Polymer and started by taking the landing page of my previous startup (written in Django/vanilla-JS) and porting it to Polymer. It is slow going, partially because Polymer is really bleeding-edge (still in developer preview) and core functionality changed as recently as a few hours ago. But I've learned a dozen or more technologies in my career, and each one of them was through actually building something and wrestling with the framework enough to grok it.
It depends how 'new' you are to it. Personally, if I know nothing about a technology, I find that trying to figure things out myself is extremely inefficient and a waste of time. The best things for me in this situation are watching videos of people coding, or taking an online course if there is one available. Once you've got a bit of a handle on it, it's much easier to progress on your own just by using documentation and StackOverflow.
Make things.<p>There's no substitute for having a concrete problem to solve, <i>then</i> hitting the docs, reading around and implementing a solution.<p>You'll also find out what it's like when things <i>don't</i> work, which is something you rarely get from documentation.