- Memorize the basic language features in JS.
- Step through simple scripts exactly like the computer does.
No matter how smart you are, or how good you are at what you did before learning to code, be prepared to struggle. This is totally normal. Being good at programming (or learning it quickly) are not indicators of how intelligent you are. They are indicators of how close your thinking style is to that of a computer programmer.
Don't be discouraged! If you master these fundamentals now, you will be prepared to learn the principles of software development and real-world problem solving.
So study hard! Dig in now, and keep at it every day. The more you prepare, the more everyone will benefit.
- Deliberate Practice: It's not enough to complete exercises and make your code work, every exercise is an opportunity to learn. Learning to code will be very different from anything else you've learned before so take a look through these tips specifically for learning how to program.
- Variables & Types: Learn to diagram variables and their values. This covers: hoisting, let, var, Primitives vs. Objects, objects without methods, arrays, garbage collection.
- Scope & Control Flow: Learn to diagram block scope as it's implemented in code containing control flow operations. This covers: block scope, conditionals, loops, error handling, evaluating operations by hand.
- Scope & Context: Learn to diagram execution context. This covers: the call stack, context, lexical scope, functions, return values, closure.
- Objects with Methods: Learn to diagram the peculiarities of context & lexical scope in object methods. This covers: _this, object methods (w/ inheritance), method closure.
- Asynchronous Behavior: Learn to diagram asynchronous behavior. This covers: callbacks, promises, the event loop.