If you're seeing this message, it means we're having trouble loading external resources for Khan Academy.

If you're behind a web filter, please make sure that the domains *.kastatic.org and *.kasandbox.org are unblocked.

Have you watched all of the talk-throughs and completed all of the challenges up until this point? Awesome!

Before talking about what you can learn next, let's review what you've learned so far: JavaScript and ProcessingJS.

Review: JavaScript

There are many programming languages in the world, and JavaScript is one of the most popular ones. A programming language typically includes ways to store data in computer memory, ways to manipulate that data, ways to organize code and run code repeatedly. You learnt how to do all of that in JavaScript via:

  • Variables: how to declare variables, assign, re-assign, and local vs. global scope.
  • Data types: numbers, booleans, strings, arrays, and objects.
  • Functions: how to group code into functions, pass arguments to them, and return values from them.
  • Conditionals: how to use if/else statements and logical expressions.
  • Loops: how to use while and for loops to repeat code.

If you learn a new programming language, you will probably discover that it shares many of those constructs in common with JavaScript, and they often differ only in the exact syntax or subtle details.

Review: ProcessingJS

To give you a fun way to learn JavaScript here, we gave you a drawing & animation "library" called ProcessingJS. That library is a collection of functions that you learnt how to use, and those functions know how to draw pixels into a canvas on the page. Here are examples of what you learnt how to use from ProcessingJS:

  • Shapes: like rect(), ellipse(), and line()
  • Colors: like fill(), stroke(), and background()
  • Text: like text() and textSize()
  • Events: like draw() and mousePressed()
  • Math: like random() and dist()

If you just use JavaScript without loading the ProcessingJS library, you will not have access to any of those functions. That's why we always load the library for you here.

Learning More

Now, there are a ton of ways that you can keep learning programming, both by going deeper into what you've learnt so far or learning something related.

Learn More JavaScript

There is still more to learn about JavaScript as a language, and several places that you can learn online. You may find that you already know the basics in these tutorials, so skip over them until you don't know something, or review them as practice.

Learn More ProcessingJS

ProcessingJS is a powerful library, and we only introduced half of it. You can read the ProcessingJS reference to learn about everything possible with the library.

You can also watch tutorials created by members of our community:

Work on a Big Project

Sometimes, the best way to really learn how to program is to work on a project that you're really passionate about.

  • Brainstorm ideas for a game, simulation, or story, and pick one that you think would be hard but not *too* hard.
  • Plan it out, using pseudo-code, sketching on paper, or writing it up in a document.
  • Start programming it. When you're stuck, try to find programs that do similar things (either from our official talk-throughs or from the community) and ask questions on them.
  • Share it with your friends and family when you're done. Reflect on how much you learnt.

Learn Web Development

Webpages are all written in HTML (to define their structure), CSS (to style them with different fonts and colors), and JavaScript (to make them interactive, like animating on user click). You already know the basics of JavaScript, but if you want to make webpages, you also need to learn HTML and CSS, like via these online tutorials:

Once you feel comfortable with HTML and CSS, you then need to learn how to use the JavaScript "DOM API", a library that lets you manipulate a webpage using JavaScript:

Learn New Languages

If you feel very comfortable with JavaScript, maybe you'd like to learn an entirely new language. Here are a few languages you might want to learn: