Welcome to Part 1 of ‘JavaScript for Visual Learners’
This is the free portion of an otherwise paid four-part course. You are welcome to enroll and to get full access to all video tutorials and supplementary materials without any obligations. If you enjoy the teaching style, you can decide to purchase parts 2, 3 and 4 of the course. Note that these have not yet been made available. Otherwise, please enjoy the materials that has been provided.
When I set out to put together this course, I wanted to make this the most visual JavaScript set of tutorials out there.
I wanted to put together video tutorials full of 2D and 3D models and to use visual metaphors to make explaining the complicated parts of the language easier. I intended to use code examples that are clearly labeled and easily understood.
I think that I am personally happy with the result.
Why this JavaScript course? Please watch before you decide to enroll.
Who is this course for?
1) This course will be perfect for you if you like to learn visually
We use visual models and metaphors whenever possible to illustrate what are sometimes difficult concepts in JavaScript. We will also often show how code breaks apart into its components. This course will especially work well for you if you are the type of person that likes to to understand something before you start doing it.
2) In this course, videos are for theory and interactive exercises are for practice.
You will be able to practice what you have just learned directly on the lesson page by using interactive code snippets. You will see some code and you will then run the code yourself to see the result. You will be able to experiment with the code, make changes, and see how these affect what gets executed.
Test the interactive code snippet below by pressing the green 'run' button.
3) This course has been designed to be beginner friendly, but there should be something for everyone.
No prior knowledge of JavaScript is assumed. We will in fact start with the most basic thing we can start with in programming: the question of what a value is. But the visual models presented, and some of the dig deeper sections included, will be useful to everyone, even for advanced JavaScript developers. We will not avoid and sugar coat advanced topics in this course.
The main objective of this four-part course series is to give you an in-depth understanding of vanilla JavaScript.
Course content
- Introduction to primitive data types   (3:41)
- Introduction to the string data type | [code]   (1:38)
- (Dig Deeper) Understanding character encoding (Part 1)   (13:39)
- (Dig Deeper) Understanding hexadecimal notation   (6:51)
- Introduction to the number data type   (5:56)
- (Dig Deeper) Understanding numbers in depth   (21:47)
- The boolean data type   (1:08)
- The undefined and null data types   (4:43)
- The symbol and BigInt data types   (3:55)
- A review of primitive data types   (3:01)
- Introduction to objects   (1:37)
- Objects overview   (5:44)
- More on objects (references, literals)   (8:13)
- Objects as hash tables (a mental model)   (8:33)
- Objects as tree structures (another mental model)   (6:12)
- Copying by reference versus value (part 1)   (4:22)
- Copying by reference versus value (part 2)   (7:54)
- A review of value types in JavaScript   (4:12)
This is Part 1 of a four-part JavaScript course series:
Part 1 introduces the course and gives an overview of the JavaScript language. We cover topics such as the key characteristics of the language, an overview of the history of JavaScript, what are values and variables, an overview of primitive data types and the regular object data type. Most of the focus is on the last two topics. The course will delve deeply in these subjects because they are fundamental to understanding everything else that follows.
Part 1 is completely free to all enrolled students. It consists of close to three hours of video tutorials and a large number of course snippet examples and exercises. If you like the teaching style, you can consider signing up to one of the paid parts of the course (Parts 2, 3 and 4).
Part 2 will focus on understanding expressions and statements in JavaScript. These are important fundamentals of the language, and they would not be covered lightly.
We will go through the different types of expressions. We will learn about operators and the related concepts of precedence and associativity. We will have an in-depth look at logical and relational expressions and type coercion.
We will discuss the topics of accessing array and regular object values, as well as function invocation expressions.
We will understand the different types of statements in JavaScript and control flow. These will be illustrated with visual models and animations.
Part 3 will focus on functions and classes. We are really going deep into the subject matter here because these are some of the most complicated parts of JavaScript. We will discuss scope, closures, execution contexts, what happens on the stack during function calls and nested function calls, as well as topics such as prototypal inheritance, constructor functions, and classes. As with the other parts of the course, these concepts will be explained using purpose-designed visuals.
Part 4 will deal with more advanced topics, such as modules and asynchronous JavaScript. We will discuss and understand the event loop, callbacks, promises and then some recent additions to the language, such as the sync/await.
Note that this part is still under development. Supporting the course will greatly help in it being completed.
Your instructor:
Hi, my name is Boyan. Thank you for checking out my course.
I am self-taught. My background is in Earth Science. I have over a decade-long experience of teaching at both universities and industry.
I taught myself programming while managing a multi-year project that was spun off as a private company, which included a significant web-application component.
When I first started looking into JavaScript online courses, I was disappointed with what was available. In my other life, I often had to communicate complicated ideas, but this was always done visually using 2D models, 3D models and illustrations. Yet, most computer science tutorials that I came across mostly involved someone coding and me watching.
One thing led to another, or as they say "life happened", and I decided to put together my own course on JavaScript, trying to right this wrong. This course is the result of this effort.