Learning from Code
Reading and exploring existing code is often the fastest way to learn programming (!). Sure, it's important to write a lot of code, get stuck, fix your problems, and build cool things. But how can you expect to write great code if you've never seen any before?!
Learning to run, explain, and modify existing code is a crucial skill to learn early in your programming life. Besides being an effective learning strategy, this is also what you'll spend most of your time doing as a programmer.

Don't rush, understand!

    Programming is hard.
    It's better to study slowly and learn from your mistakes than to code quickly and not understand what you wrote.

Read, Modify, Create

Think of these three steps in your learning each time you encounter a new skill or language feature in programming. Even experienced developers go through these steps when learning new technologies!
    Read: Learn to step through, predict, and understand code that other people wrote.
    Modify: Learn to change the behavior of other people's code with small modifications.
    Create: Learn to write your own code from an empty page.
Don't worry about making to Create as fast as possible. The more time you spend learning to Read and Modify, the better you will master Create.

Read the code out loud

Learning to read your code aloud and to pronounce the strange syntax in JavaScript is super important! Practice alone, practice with a friend, record yourself and play it back. When you watch video tutorials pay close attention and practice repeating how the teacher pronounces their code.
    Is new vocabulary you don't understand?
    What JS syntax do you recognize?
    What syntax is new to you?
    How should you pronounce the code?
Some links:

Predict what will happen

before running the code
    Will there be an error? What kind of error? On which line?
    What values will be in memory at the beginning of the script? At the middle? At the end?
    Which line of code will execute first? second? third? ... last?
    Which test cases will pass, and which will fail? Why?

Run the code and explain

without stepping through
    Was there an error? What kind of error? Why?
    Which test cases passed, and which failed? Why?
    What values were logged to the console? Why those values?
    What can you learn about program memory from the output?
    What can you learn about the order of execution from the program output?

Visualize program memory

Browser/VSC debugger, JS Tutor
Step through line by line and take turns explaining every other step:
    Which line executed before the current one? What did that line do?
    What does the current line of code change in program memory?
    Which line of code will execute next? What will that line do?
Last modified 1yr ago