Philip Guo (Phil Guo, Philip J. Guo, Philip Jia Guo, pgbovine)

JavaScript Language Fundamentals

ES6 using Google+Airbnb style guides
Summary
Here are 12 video lectures introducing the fundamentals of JavaScript using the ES6 version of the language and inspired by style guides from Google and Airbnb. Their goal is to give you a practical understanding of JavaScript as a programming language so that you can more easily learn specialized frameworks and libraries later as needed.

I regularly teach web development and HCI courses. One thing I've found lacking in many such courses (including mine!) is that they never teach students the fundamentals of JavaScript as a programming language. Rather, they either assume that students already know JavaScript or somehow pick it up on their own.

Over the past five years of teaching these courses across three universities (MIT, University of Rochester, and UC San Diego), I've found that even students who are experienced web developers have some major gaps in their understanding of JavaScript as a language, which hinders their ability to develop reliable and scalable web applications. So in Spring 2018, I tried to fill this important knowledge gap by creating a set of 12 introductory video lectures to accompany one of my courses.

The goal of these videos is to give you a practical understanding of JavaScript as a programming language so that you can more easily learn frameworks and libraries later as needed. They assume that you have prior programming experience, so they shouldn't be your very first introduction to code. They're also not meant as formal lessons on programming language theory; I give only enough details to let you use basic language features in practice, but I don't dive into their inner-workings.

JavaScript is still quickly evolving as both a language and a software ecosystem, so I had to settle on some curriculum that would be practical yet durable. Thus, I decided to target the ES6 version of the language (released in 2015) and be loosely inspired by coding style guides from Google and Airbnb.

Here are some resources to supplement these videos:

1. Intro: What will these lectures cover? (7:44)

2. Variables and values of primitive types (7:05)

3. Variable scoping (11:05)

4. Arrays hold ordered collections of items (16:06)

5. Objects associate pairs of items (15:35)

6. Functions create new scopes (9:39)

7. Functions are just objects (4:33)

8. Functions can be declared in two ways (6:09)

9. Functional Programming: passing functions to other functions (17:24)

10. Asynchronous Programming introduction (11:23)

11. Asynchronous Programming handles concurrent requests (9:58)

12. Epilogue: JavaScript features we didn't cover (1:31)

Keep this website up and running by making a small donation.

Created: 2018-04-17
Last modified: 2018-04-17
Related pages tagged as programming: