Check out a free preview of the full The Hard Parts of Asynchronous JavaScript course

The "Wrapping Up" Lesson is part of the full, The Hard Parts of Asynchronous JavaScript course featured in this preview video. Here's what you'd learn in this lesson:

Wrapping up "JavaScript: The New Hard Parts", Will reviews material covered in the course, congratulates the students for completing the course and urges students to improve their technical communication.


Transcript from the "Wrapping Up" Lesson

>> Will Sentance: This sort of under the hood, understanding of JavaScript is the foundation of getting a senior developer position, or a midlevel developer position. It's also deeply satisfying. So I run Codesmith, a community of people building compelling open source projects. Whether it's Reactide, an ID for react. Whether it's a remarkable Kubernetes, tool that was developed by a great group in New York at CodeSmith in the last month or so.

All of these are built as part of the CodeSmith residency, a collection of people who are saying, I wanna go deep on JavaScript. And that's my goal. I want to part of the community to do it. And as a side effect at the end of this 12 week, 100 hours per week residency, yeah, they go and get very nice roles.

Avocations for CodeSmith open every 7 weeks for the next 12-week cohort. While if you attend online, the hard parts workshop that moves through some of this material in live online every week. You get access to a special challenge code that guarantees you interview if you complete the coding challenge.

There is also a regular online application, I encourage you to try it. It gives you access to the CodeSmith interview if you put together a very nice collection of words about your background and what inspired you down the path of software engineering. So I encourage you to complete that challenge.

But also I encourage you to look into a new online part time program, CodeSmith CSDL. CSDL, CodeSmith, Deep Learning. Four weeks, live online, evening weekend where you get the chance to build neural networks from scratch. It's very nice. Every two months, I think it kicks off. If you go to CodeSmith, you can have a look at that program as well.

All right, we have done it. We have made it through the day. Pure perf, no. Pure, no cuts,
>> Will Sentance: One cut. We've made it through the day with clarity and all of you should feel genuine pride, every last one of you. It's very, very special to have seen how far every single person here came in the quality of technical communication.

That's what's most special for me. In the end, what makes a great senior developer, which many of you are and some of you are aspiring to, is the ability to take any feature and empower one's team to build it out with you. And that is based on the quality of technical communication.

And there are multiple people in the room today who talked through their code with a level of clarity that was genuinely impressive and it's a mindset. This is not something which we are born with, it's not something inherent and demanded of day to day and yet it is a thing that accelerates engineering teams.

We often say when I add a team member to my engineering team, I go from having 1 engineer to 1.3 engineers, not from 1 engineer to 2 engineers. If you improve your technical communication, which is really the essence with what we're doing when we're diagramming through, you take yourself from one engineer to genuinely two engineers.

Maybe more, maybe a multiple. Because you're now shared you've now shared your internal mental model of a code. It is now a shared resource between you and your team members and that's very empowering and very special. So today we saw all of the hardest parts of the new spec of JavaScript, ES6 and ES7.

We saw the foundations of JavaScript that led us on this journey. Memory thread, execution context, call stack. We saw that get augmented by a whole new set of pieces of that architecture. The web browser features. The callback queue. The event loop. We then discovered there's a new built-in asynchronicity feature of JavaScript.

Our promise objects whose deferred functionality is not assigned to the callback queue, but to the microtask queue. Two additional pieces of our model. We then added this whole new way of thinking about how collections of data can be accessed and then have functionality applied to them known as iterators.

That rethink collections of data as instead of being static things we go and get elements from, instead these beautiful flows of data that when I run a function, switch the tap on, I get the next element. Switch it again, get the next element, like a stream of data that I can access and bring, access and bring.

I think it's very beautiful. And then we discovered we could control the nature of those flows, what element we got each time, ourselves manually. Not rely on a sort of prestructured set of data but instead, dynamically create those sets of data, dynamically, determine what the next element would be.

By defining it in a function and setting ideal keywords to return out those elements as we went. And then we realized what that was doing was allowing us to exit and re-enter an execution context. In other words begin the correlative function, leave it and come back. And that is what lets us rethink our asynchronous code.

It gave us, in the end, a single weight, where we enter a function to initiate a background slow task, an asynchronous task. And then only return to that function, leave it and then return to that function, when we get our response back from the slow, long-term tasks. These are all the core features of the new JavaScript spec.

The new features of JavaScript in ES6 and ES7. So very well done everybody. I was absolutely delighted by how well you talked though the code and I am very, very happy to have had you all here along with me today. Thank you.

Learn Straight from the Experts Who Shape the Modern Web

  • In-depth Courses
  • Industry Leading Experts
  • Learning Paths
  • Live Interactive Workshops
Get Unlimited Access Now