JavaScript for Programming

The Two Different Sides of JavaScript

Did you know that there are two different sides to JavaScript? There’s the programming side and then there’s the browser interactivity – and they involve different concepts!

Check out the video to learn more.


Free Courses

Intro to JavaScript – Udacity

This free course from Udacity has a great mix of lectures and quizzes. It’s a good introduction to JavaScript for absolute beginners.

Introduction to JavaScript – CodeAcademy

CodeAcademy’s introduction covers a few more advanced topics like Classes, Promises and Requests.

JavaScript Algorithms and Data Structure – FreeCodeCamp

FreeCodeCamp probably needs no introduction. It’s a free and comprehensive resource to learn JavaScript.

If you’re a beginner, here’s the order of sections I recommend you to cover in FreeCodeCamp’s JS Algorithms and Data Structure section:

  1. Basic JavaScript
  2. Debugging
  3. Basic Data Structure
  4. Basic Algorithmic Scripting

Take a break and go through some exercises in Rithm School or Edabit.

  1. Object-Oriented Programming
  2. ES6
  3. Functional Programming
  4. Intermediate Algorithm Scripting

Try harder problems in Edabit and maybe in CodeWars!

Note: I put ES6 later because ES6 is basically another way to write JavaScript, but it’s rather confusing to keep the two ways straight in your head when you’re just starting out.

FCC doesn’t use ES6 syntax until the Functional Programming section.

At the end, go back to Regular Expressions. It’s one of those “nice-to-have” skill, but you aren’t going to be using it on a daily basis as a developer.


Lynda Courses

These Lynda courses offer a great mix of theory and practical knowledge. Not only will you learn how to do things but also why they work. Lynda offers a free 1-month trial, and many libraries also offer free access, so check your local library website!

Programming Fundamentals

Explore the core concepts and structure of programming languages and helps you grasp what’s going on under the hood.

The course compares how code is written in several different languages and provides guidance on the criteria to use when choosing a programming language.

Learning the JavaScript Language


Practice Exercises

W3School JavaScript Exercises

These exercises are fill-in-the-blanks to get you to start writing some code! It’s a great start for beginners.

Rithm School Introduction to JavaScript

Test yourself on boolean, how to manipulate arrays and objects, as well as write some basic functions!

Rithm School Intermediate JavaScript I

Tackle more advanced exercises with nested array, nested objects and iterators.

Feel free to skip over the Document Object Model and Events and LocalStorage if you haven’t learned JavaScript for the Front-end yet. (The course mashes the two together).

How Well Do You Know JavaScript? – Lydia Hallie

This Github repo has over 140 multiple choice questions to test how well you understand JavaScript code. There are also detailed answers that you can toggle.

Even the basic questions can be challenging as it’s testing how well you understand the nuances in JavaScript. However, there’s no better way to learn them than with these exercises!


Projects

The quest to improve our programming skills is endless – and solving ever more difficult coding challenges from Edabit, HackerRank or CodeWars would be the “project” for this topic.

Edabit

Edabit has hundreds of programming challenges ranked by difficulty. The exercises tend to be easier than CodeWars, so start here if you’re just getting started!

CodeWars

Ninja-themed website with thousands of challenges (katas) to go through. This is more challenging than Edabit.

The challenges often has sneaky edge cases that they test for, so makes it more fun / frustrating, depending on your view.

Next Steps

  • Learn JavaScript for the Front-end
  • Learn a JavaScript front-end framework (e.g. React, Angular or Vue)
  • Learn a NodeJS framework for back-end / full-stack development (e.g. Express.js)

Have a resource you love that’s not mentioned here, please let me know!