Using Modern JavaScript Today

what every web developer needs to know
4.4 (155 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
1,398 students enrolled
$19
$50
62% off
Take This Course
  • Lectures 68
  • Length 16.5 hours
  • Skill Level Intermediate Level
  • Languages English, captions
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 1/2016 English Closed captions available

Course Description

This course’s purpose is to introduce any JavaScript developer on any platform to the powerful world of Node.js, task automation, package management and module loading. Basically: Modern JavaScript.

This is course that I wish I had before years of trial and error, source-code spelunking and documentation reading; so with it I hope to save you guys all the trouble and get going writing modern, maintainable, and organized JavaScript today!

Node.js? I thought you said ANY platform!

While this course is a great introduction to writing server-side applications in node (certainly not wasted time, even if you don’t intend to use a node server), we spend most of our time using node as a development tool.

If you’re writing an application in PHP, ASP. NET, or anything else, no problem! Node won’t need to be installed on the production server for it to do it’s thing. We simply use it to process our assets; there’s no need for it to be deployed into production unless your backend server also uses node.

Especially if you’re an ASP. NET developer, Microsoft is incorporating these tools right into Visual Studio and ASP. NET 5! Node.js isn’t just for Linux and servers anymore! But on the other hand, that means you have to have a good grasp on these tools to stay ahead in the world of ASP. NET - and that’s why I’m here!

Modern JavaScript

To write modern JavaScript, we need three things: a JavaScript transpiler, a module loader, and a module bundler.

A transpiler is what takes modern JavaScript and turns it into legacy JavaScript that will run in any browser! Using a transpiler these days is practically the norm. There is no reason why we should be stuck writing 5 year old JavaScript because some of your customers are stuck with ancient browsers. We will be using Babel extensively for this purpose.

In addition to the new features of JavaScript, modules are one of the most important aspects to writing highly maintainable, modular (see what I did there?) code for applications from the small to the enterprise. I’m going to show you guys some tools that makes writing properly organized modular code in JavaScript so simple that there’s no reason not to use them, even for small projects!

What else will be covered?

Since a lot of these tasks are going to require a bit of automation, we’re going to be introducing you to Gulp (version 4). Gulp is an awesome task runner that allows us to write code that can perform automated tasks, such as transpiling or bundling our JavaScript. Note: Gulp is supported as a first class citizen in Visual Studio 2015! It’s even used in the project templates for ASP. NET 5!

We’re also going to take a look at Bower. Bower is a client-side package manager that makes it easy for us to install third party dependencies.

Finally, we’ll also take a look at LESS - the CSS preprocessor. I know that’s not much to do with JavaScript, but it will give us a reason to look into automating the building and bundling process of our styles. Besides, once you use LESS, you’ll never want to use vanilla CSS again!

What are the requirements?

  • Experience building web applications or sites, using JavaScript and common libraries such as jQuery, is required
  • Have a basic understanding of how to navigate your platform's terminal or command line

What am I going to get from this course?

  • Use Modern JavaScript tools and language features on all web platforms
  • Organize their JavaScript, images and stylesheets into modules with a clear dependency hierarchy
  • Quickly iterate on code in development, using file watchers that re-compile code on any change
  • Easily deploy production-ready asset bundles
  • Use a build step in order to allow code transformations so that other languages (such as Less, Sass, CoffeeScript, and TypeScript) can be used in the browser
  • Automate common tasks during development and deployment using Node libraries and Gulp

What is the target audience?

  • This course is NOT an introduction to JavaScript
  • This course IS for JavaScript developers who want to develop using leading edge technology and techniques
  • This course is ESPECIALLY for ASP.NET developers who wish to learn more about Gulp, Bower and Node for use in ASP.NET 5

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Fundamentals: How To Node
04:47

Welcome! This video briefly goes over what we will be learning in this course and what the requirements are.

13:26
This video goes a little further and breaks down each of the things we will be learning. We discuss each technology, what it does and why we are learning it.
14:43

First thing is first: we must get our development environment setup. Here we install Node.js and talk about how we’re going to be using it.

09:42

Next up, we talk about the all important node executable. We discuss the REPL (read, evaluate, print loop) and how to execute JavaScript files right from our file system.

19:33

Now we need to know how to load up multiple JavaScript files from within node. In this video, we explore the CommonJS module format.

16:25

Before moving on to looking at other tools, we introduce many “nodeisms” (including asynchronicity) and the general way that the platform works by working through a simple example.

14:41

I don’t think that was enough. Next up, we start with a second example that shows even more of how node likes to work. In this example, we create our own web server using nothing but built-in modules!

19:47

And we finally wrap up the last example, finishing our exploration of how node likes to work.

Section 2: NPM: Never manually download a library again
09:45

We introduce the Node Package Manager by showing an example of downloading a global module from the NPM registry that installs a very handy tool on our system that we will be using a lot of.

15:15

Next up, we explore local modules, how they are installed and how they are located and resolved at runtime.

13:28

I had to sneak this in here… This is an introduction to arrow functions - an ES2015 feature that I wanted to introduce early so I could use it in future examples.

14:27

A library that I find invaluable is lodash. We take a look at it in this video, so that we can use it in future examples.

20:14

NPM packages are vital when using node - either as a backend server, or as a build tool.

07:59

We must have a good grasp on how NPM versions packages (semver), to ensure we have no version conflicts.

16:01

NPM provides a neat utility to place console commands or shell scripts right in our project for re-use. This video explores them.

Section 3: Bower and Less: How to make CSS bearable
11:01

This video talks about the simple package manager, Bower.

09:31

This video introduces the Less CSS pre-processor, and shows how we can compile our .less files into .css files using NPM scripts.

19:25

Next up, we explore a handful of features in Less that makes working with it so enjoyable.

19:29

We further our example, and discuss things such as source maps - which allow our browsers to show proper line numbers on our source.

09:48

We wrap up our example and talk more about mixins.

Section 4: ES2015: How to make JavaScript bearable
10:17

This video introduces ECMAScript 2015, how it related to JavaScript, and some history.

19:33

In order to run ES2015 on our browsers, we need to use a transpiler. This video introduces Babel for that purpose.

04:45

This short video goes over a few things you may run into while using VS Code.

20:14

We kick off our discussion on ES2015 by talking about let and const bindings.

20:34
Next up, deconstruction!
10:55

ES2015 gives us some new syntax when working with object literals, and we explore them in this video.

12:43

JavaScript finally has classes! Well, mostly. We discuss ES2015 classes in this video and how to define and use them, and how they get translated for browsers that don’t support ES2015 yet.

13:16

Symbols are a way to hide members of objects from other source code files. This video breaks them down and discusses their syntax.

20:31

ES2015 now supports “generators” - known in some languages as “literator blocks”. Very very useful constructs.

17:02

Just for fun, let’s see how far we can push the concept of iterables and try to write a simple little collections library similar to lodash!

20:52

Promises aren’t a new language feature, but they’re a new type of object we can create in ES2015. We use them to simplify async code.

01:51

And that’s a wrap on ES2015 features!

Section 5: Gulp: How to automate your life
11:08

This video shows how to install gulp on both our machine, and our specific project.

18:18

Now we get to the fun stuff, showing how we can incorporate Babel into our Gulp automation.

17:15

This video talks about how dependencies between tasks are managed in Gulp 4.

19:44
To understand how gulp works, we must dive into Node streams.
08:15

Streams and push down objects as well as strings - and this video talks about the kinds of streams Gulp uses.

18:34

Gulp uses a file wrapped called “vinyl-fs”. In this video, we explore it.

14:18

Gulp can do a lot of things ,but there’s a handful of things people often use gulp for. This video talks about common things we may want to do.

17:47

So far we’ve been working with development builds - suitable for working with while in development, not so suitable for deploying to production. This video talks about how we can fix that.

19:49

One of Gulp’s best features is its ability to watch files for changes, and perform a task when that happens. This video goes over that feature.

11:46

It’s not needed all of the time, but sometimes it’s handy to organize your gulpfile in certain ways if it grows too large.

20:08

While hopefully not necessary, I’ve provided a “downgrade” guide for people who for some reason are stuck on the older version.

01:26

And that’s gulp!

Section 6: Modules: How to organize your assets
13:52

This video begins the discussion on modules. We start off by creating our basic demo app that we will be using to showcase all of our loaders/bundlers.

20:43

Although we have no way of loading the modules yet, we can certainly take a look at the syntax required to do so. This video introduces a new bit of ES2015 syntax that will be used to import and export code from one file to another.

17:04

AMD? UMD? CommonJS? SystemJS? What is this madness?! This video talks about the different formats that we can have our modules outputted in.

19:12

We start fleshing out our example app in this video.

08:17

This video completes our basic example app.

Section 7: Modules: RequireJS
18:02

This video introduces RequireJS and includes it into our example app.

14:24

RequireJS sometimes doesn’t know how to deal with certain malformed modules, or files that don’t expose themselves as modules. Shims are a way to fix misbehaving JavaScript.

17:24

Next up, we look at how we can do production builds in RequireJS.

12:12

Another form of optimization is to factor out common modules that are shared between JavaScript files. This video discusses that.

Section 8: Modules: Browserify
08:41

This video shows the installation and basic use of the bundler Browserify.

17:16

This video imports browserify into our application, and shows how we can use it within our gulpfile.

15:03

Next up, we import our CSS into our bundle using Browserify and a special loader.

09:51

Now we implement a watch task in our gulpfile using watchify.

08:18

And that’s Browserify!

Section 9: Modules: Webpack
15:47

Next up is Webpack! We show a simple example of using Webpack in a small application.

19:07

Loaders are what is responsible for most of Webpack’s magic. Here we talk about how we can import many different kinds of modules using them.

20:06

Now we take Webpack and import it into our example app!

19:22

Like we did with browserify, we can get more control over Webpack by executing it from our gulpfile. This video shows Webpack’s node-level API.

12:52

Webpack provides a super-slick, hot-reloading, watching, blazing fast development server. While it’s not for production use, it certainly speeds up your coding!

20:49

Next up, we take a look at common plugins we may want to use.

05:29
And that’s Webpack!
Section 10: Modules: JSPM
15:53

We kick off our discussion on JSPM by taking a look at its module loader: SystemJS.

19:57

Next up, we import JSPM into our example application and use it to load our modules and handle our frontend library dependencies!

Section 11: The End
04:13

And that’s Modern JavaScript!

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

3D Buzz is a company dedicated to providing the world with quality technical education over 3D animation, programming, game design, and much more. We have been producing training videos since 2001, always pushing the envelope in the development of informative lessons with an engaging and personable format. We try to make the viewer feel more like they're involved in a classroom discussion with an energetic teacher as opposed to being stuck in a dry, uninspired, run-of-the-mill training video.

But 3D Buzz is so much more than just training videos. We maintain one of the most helpful online communities on the internet. We do our very best to keep in close contact with our community, and to make sure that when you're here, you feel at home.

Ready to start learning?
Take This Course