Content / Part 0 / General info

This course is an introduction to modern web development with JavaScript. The main focus is on single page applications implemented with Vue and supporting them with RESTful and GraphQL web services implemented with Node.js. The course also has parts on TypeScript.

Other topics include debugging applications, configuration, managing runtime environments and NoSQL databases.

Prerequisites

Participants are expected to have good programming skills, basic knowledge of web programming and databases, and have mastery of the Git version management system. You are also expected to have perseverance and a capacity for solving problems and seeking information independently.

Previous knowledge of JavaScript or other course topics is not required.

Course material

The course material is meant to be read one part at a time and in order.

The material contains exercises, which are placed so that the preceding material provides enough information for solving each exercise. You can do the exercises as you encounter them in the material, but it can also be beneficial to read all of the material in the part before starting with the exercises.

In many parts of the course, the exercises build one larger application one small piece at a time. Some of the exercise applications are developed through multiple parts.

The course material is based on incrementally expanding example applications, which change from part to part. It's best to follow the code along while making small modifications independently. The code of the example applications for each step of each part can be found on GitHub.

Taking the course

The course contains eleven parts, the first of which is numbered 0 for consistency with past iterations. One part corresponds loosely to one week (averaging 15-20 hours) of studying, but the speed of completing the course is flexible.

Proceeding from part n to part n+1 is not sensible before enough know-how of the topics in part n has been achieved. In pedagogic terms, the course uses Mastery Learningopen in new window, and you are only intended to proceed to the next part after doing enough of the exercises of the previous part.

You are expected to do at least all of the exercises that are not marked with an asterisk(*).

Course credits and certificate

In the original course University of Helsinki enabled students to submit exercises to their system and get a certificate upon completion of the course. Since this version is not maintained by University of Helsinki, this option is not provided.

Before you start

Using the Chrome browseropen in new window is recommended for this course, because it provides the best tools for web development. Another alternative is the Developer Edition of Firefoxopen in new window, which provides the same range of features.

To save your progress during exercises it is recommended to use Git. For instructions, see Git and GitHub tutorial for beginnersopen in new window.

Install some sensible text editor that supports web development. Visual Studio Codeopen in new window is highly recommended. A lot of Vue developers use the VS Code extension Veturopen in new window which includes handy features like syntax highlighting and autocompletion, though it is generally recommended to type everything manually for a better learning effect.

Don't code with Nano, Notepad or Gedit. NetBeans isn't very good for web development either. It is also rather heavy in comparison to Visual Studio Code.

Also install Node.jsopen in new window. The material has been done with version 14.8.0, so don't install anything older than that. See Node.js installation instructionsopen in new window.

Node package manager npmopen in new window will be automatically installed with Node.js. We will be actively using npm throughout the course. Node also comes with npxopen in new window, which we'll need a few times.

Typos in the material

If you find a typo in the material, or something has been expressed unclearly, or is simply bad grammar, do a pull request to the course material in the repositoryopen in new window. For example, the markdown source code of this page can be found in the repository at https://github.com/BunnyTheLifeguard/fullstack-open-vue/docs/.vuepress/0/part0a.mdopen in new window

At the bottom of each part of the material is a link to propose changes to material. You can edit the source code of the page by clicking on the link.


Propose changes to material