While the asynchronous nature of JavaScript is one of the aspects of the language that can confuse a lot of people. Having a good understanding of its primary async constructs however, can reduce a lot of confusion about the language.
Aj Meyghani will guide you thought async programming in JavaScript and provide you with the necessary techniques to write clean and maintainable async code.
Asynchronous programming in JavaScript takes practice. Over time you will get better at it if you experiment with different abstractions
Make sure to check out his Async JavaScript pocket references here and his other pocket references: JavaScript functions, JavaScript Prototypes.