What you'll learn
- the differences between function declarations, expressions, and arrow functions.
- when the `this` keyword is relevant.
- intricacies of types - coercion, null vs. undefined, truthy, falsy, and more.
- why and how almost everything is an object.
- the differences between let, const, and var.
- a handful of ways to create object clones.
- closures, function factories, and higher-order functions.
- constructor functions
- prototypes and the prototype-based inheritance model.
- asynchronous code.
- and much more!
- Minimal experience in another language will help. But it's not necessary. You can be a beginner.
- If you're more experienced, start the course at a later section. It would be valuable to go through the interview question videos - no matter your level.
Here's how the course journey will go:
First: the Basics. You'll ramp on the console, syntax, objects, and other language fundamentals.
Second: Functions. There are a few ways to create functions. So you'll explore those differences, and important concepts like the `this` keyword.
Third: Types - Digging Deeper. There are some big questions about types: what is type coercion? How are truthy and falsy different? What is null vs. undefined? In this section, you'll cover those questions and more.
Fifth: Objects - Deeper Concepts. This section will introduces more features that can clean up code around objects. The larger topic in this section is a series of videos on creating object clones.
Sixth: Functions - Deeper Concepts. The theme of "Deeper concepts" continues. This time, it's functions. In this section, you'll dig into big terms like closures, function factories, and higher-order functions.
In addition to the interview-question based videos, there are resources like quizzes to help reinforce your learning.
Who this course is for:
David is a software engineer at Zendesk, with a Bachelor of Computer Science from the University of San Francisco.
David has gained valuable experience from the tech industry. By incorporating the best practices he has learned at work, he hopes to create the highest quality learning experiences possible.
Feel free to connect with David! He is always curious about the cool project you're working on. And he loves to discuss ideas on how to build impactful technology.