And over the last year, I've built a small, though an unbelievably helpful collection of resources for learning the asynchrony concepts and the concurrency model in JS well enough.
Specifically, this collection can be helpful in learning:
- Promises, callbacks
- Event Loop model and queues
- async/await operators
These are not obvious as they might seem and sometimes may be difficult to crack.
🔮 "Async & Performance" book from You Don't Know JS series by Kyle Simpson (aka. getify). Specifically, take a look at chapters 1,2, and 3.
There are many useful examples (but they take time to understand fully, sometimes) - and I recommend you to play around with them in a Codesandox so you really feel comfortable with them.
By the way, the article author - Jake - posts quite friendly and interesting articles in general, so you might want to check out those later as well.
➰ Talk "What the heck is the event loop anyway?" by Philip Roberts - one of the best talks about Event Loop model which is what is the foundation of the concurrency in JS. It's a must-watch. The talk is both fun and enlightening.
➿ Talk "In The Loop - JSConf.Asia" by Jake Archibald (the author of promises introduction at the top) - it's related to the Philip Roberts talk, and is a great follow-up.
On top of that, it covers aspects of the Event loop that are important to the actual understanding of Promises (which Philip Roberts didn't cover).
The visualizations there are especially helpful to keep your knowledge in the long-term. Those visual images not just ease the learning but also reinforce your memories in the brain, so you are less likely to forget.
And it also covers
async / awaitconcept - synchronous like syntax to write Promises-based code in a more straightforward way.
Async / awaitare essential tools for writing readable and maintainable logic based on Promises in modern projects.
In what order to learn using this collection?
In the beginning, try to use the default order - as they go in the list above.
But if you find yourself struggling with the 1st item - as I said, it's relatively harder than other recommendations - use the alternative order:
- Start with the article series by Lydia Hallie: 5
- Go through the 2nd to 4th items: 2, 3, 4
- After that come back to the 1st to deepen your knowledge and help yourself to ace the tech interviews 😉: 1
Why I don't use the alternative order as the default in my mentoring practice? It's easy: to challenge the mentee.
The book "Async & Performance" really makes you go through the complex concepts that stay in the basement of JS asynchrony. If you can handle those - there will be fewer subjects in JS that will be able to make you break a sweat, that's for sure 🙂
If you like these resources, you might also be interested in BandaWorks twitter community.
Every day we post valuable content for junior developers there, among those:
- Daily advice to help you become a stronger developer
- Learning resources for web development
- Overview and our own thoughts on the development articles by other authors
Banda Works@bandaworks#BandaDaily #1:
When #coding something, always approach the problem iteratively.
That means that as #developer you go through roughly 5 stages:
1. Make a straightforward solution
2. Cover edge cases
3. Improve the performance
4. Improve the design
5. Reduce complexity
🧵👇13:11 PM - 07 Oct 2020
Join us if you are the same as we - focused on continuous improvement! 😉
Top comments (0)