Now What?

You can expect to keep learning about programming as long as you continue to program. I've been at it for a long time, and I still learn new stuff constantly! This page lists some of the topics that I think will be useful to you. Don't worry about it if something is too confusing for you now; just come back to it later.

I'll keep this page updated as I find additional resources.

Review

Now that you've finished (and well on your way to being JavaScript rock stars!) I highly recommend going back to the beginning and learning everything again from scratch. Some of the topics that we originally talked about will make more sense now that you've been coding longer.

"JavaScript 101" by the jQuery Team

For now, skip these sections:

Eloquent JavaScript

We didn't cover these chapters in this class, so you may want to skip them for now:

We didn't cover these in class, but read them anyway. They might be useful:

Read these chapters after you've been programming a few years:

And I'd recommend ignoring this chapter entirely:

JavaScript Guide

This one is written more for people who are familiar with programming, but new to JavaScript, so it's not quite as beginner-friendly. Also, some of the material it includes only works on newer browsers.

That said, I'd recommend looking over these chapters:

More Programming Topics

After you've mastered that material, here's what I would recommend learning:

Error Handling

More on OOP

More on the "this" Variable

By default, the value of "this" is:

However, it's possible to manually set the value of the "this" variable for a function when calling it. Check out these resources to see how:

Version Control Systems

Version Control Systems let you "save" your project, give it some comments, and then later review your history and optionally revert back to a previous version of your code. Most companies with more than two developers also use them to help developers collaborate on projects.

There are many VCSs, but one of the most popular right now is called Git. Here are some resources to help you get started with Git:

Note that most of these tutorials assume you're familiar working with the command line on your computer (either Terminal.app on Mac or cmd.exe on Windows). You may want to look us some tutorials on that first.

More on Scope / Closures

Recursion

Timers / Animation

In JavaScript there are two built-in functions made specifically for running your code after a delay.

Also in modern browsers, there's a special way of doing loops for animating, which is more efficient than just using setInterval().

Regular Expressions

Regular Expressions are a special "language" used for matching patterns, and are available in most (maybe all) programming languages. They're particularly useful if you want to find some text in a string and replace it with something else.

Model/View/Controller Architecture

Called MVC for short, this just means that you separate your code into three parts:

  1. The Model, which holds your business logic. For frontend coding, this tends to be just your data.
  2. The View, which displays your model to the user.
  3. The Controller, which sets up and manages the interaction between your Model and View.

There are TONS of different viewpoints on what MVC actually is, but that's how I like to think about it. Here is some light reading on the topic:

Design Patterns!!!

If you actually understand and can utilize these, it will put you way ahead of most other JS programmers:

Notable JavaScript Projects and Tools

I'll leave it to you to look up tutorials and examples for these.

jQuery

DOM manipulation and AJAX library

jQuery UI

A JS/CSS package of user interface widgets designed to compliment jQuery

Underscore.js

A collection of functions to help you do stuff. Particularly useful for functional programming, when you get to doing that.

Backbone.js

A JavaScript framework designed to help organize you JS code into an MVC architecture. Uses jQuery and Underscore.js. This video seems to be a good introduction.