Using StackBlitz
Using StackBlitz to learn about web programming
One of the potential hurdles to learning web programming is to have or set up an environment that is conducive to this. If you are willing to use Virtual Machines, then this guide to creating an Ubuntu VM, could be a good way to do this. However, if you are new to programming in general, it is easier to use StackBlitz as your programming environment. This is because using StackBlitz lets you get started without having to install or configure any software. In addition, you can use StackBlitz from just about any computer that has a connection to the Internet and has a decent sized screen and a keyboard. So, you can use a Chromebook, or even an Android tablet (if you have an external keyboard that works with that Android tablet).
Getting a StackBlitz account
If you have a GitHub account, this is the easiest way to get a StackBlitz account as you can just use your login credentials for that GitHub account to login to StackBlitz. You can also use a Google account in the same way. If neither of those options appeals to you, you can create your own username and password.
You can see details about setting up your StackBlitz account and opening a new project on this page: Setting up a StackBlitz Account
StackBlitz vs CodeSandbox
StackBlitz is similar in some ways to using CodeSandbox. Originally, many of the lessons I created used CodeSandbox as an option to use in doing the lesson. However, over time, I realized that some of the difficulties in getting some things to run, were caused by the way the CodeSandbox’s environment works. CodeSandbox uses a different bundler and makes certain assumptions about how the programs should run that I consider to be non-standard. Since StackBlitz does things in a very similar way to what you would do if you do your web programming locally, I revised my lessons to use StackBlitz.
StackBlitz does something that is relatively unique at least at this point in time. Many web programming projects make use of Node.js. Node.js is a way to run JavaScript on the server side. JavaScript itself is meant to run inside a web browser. So, to allow for more powerful programs that use JavaScript as the underlying language, Node.js was created. As just mentioned, Node.js utilizes a server to be able to run. This means that web programs that use Node.js for the backend, are using two servers. One server is the server running Node.js, and the other server is a web server. This way of serving out a web program is tried and tested, and is one of the standard ways of running a web program. But, StackBlitz does something different. StackBlitz uses a version of Node.js that has been converted into WebAssembly. This WebAssembly version of Node.js runs natively in the web browser, just like JavaScript runs natively in the web browser. So, instead of requiring two servers to run a web program that uses JavaScript, StackBlitz projects are running with just one server. This certainly has performance benefits, but it is supposed to be more secure as well. In a few years, it may be that more web programs that use JavaScript will be using the WebAssembly version of Node.js. Therefore, getting used to doing things inside of StackBlitz is probably a very useful experience to have.