JavaScript
The first step towards becoming a code master is to become JavaScript.
- Memorize the basic language features in JS.
- Step through simple scripts exactly like the computer does.
Neither of these skills are as easy as the sound, and both of them are the foundation for everything else to come. Your end goal is to write applications large and small that provide practical solutions to real-world problems, but this is for later. You won't be able to do this until you've mastered your primary tool - the JavaScript language.
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.
Index
Learning Objectives
- Fundamental JS syntax & language features
- The JavaScript Notional Machine
- Sketching runtime behavior on paper
- Using online code visualization tools
- Stepping through code
- Using console.assert to test tracing predictions
Specifications
- Set aside a chapter in your notes for JavaScript language features:
- You'll want to build your own 'vocabulary list' to keep track of the built-in JS language features as you come across them. One of the most common difficulties in the early stages of programming is just remembering all of the language features available!
- Having a complete list of everything you know, written in your own words, will be invaluable as you try to start to solve programming challenges on your own.
- Start building a collection of clear code samples & sketches that have helped you understand key concepts, we recommend trying to store them in a directory of Markdown files.
- Familiarize yourself with the JS Tool Kit, especially:
- Study JS Fundamentals through 4.iii:
- The JS Notional Machine
- Deliberate Practice
- Visualize Behavior
- Self Assessment
- JS: Variables & Types
- JS: Scope & Control Flow
- JS: Scope & Context
- Practice whatever keeps you motivated. If you find one tutorial too easy, hard, or boring, move on! What's important is that you can predict how JS will execute simple programs, not the tutorials you complete.
- Stay involved! Studying a little bit (even 15 minutes) every day and staying active on Slack will make you life a lot easier.
Resources
Below are some recommended resources for learning JavaScript. Take a look at each one and see what works best for you. If you find another one you like better, send it our way and we'll put it up!
What is JS?
- "Preface" from You Don't Know JS
- "Intro" from JavaScript.info
- "What is JS" from Practical JavaScirpt
- "What is JS" from MDN
Great online Tutorials:
- JavaScript for Cats - Fun website with good examples to study.
- FreeCodeCamp & video series - Great community support.
- Khan Academy - Visual & interactive programming environment with guiding videos and detailed lessons.
- Headfirst JavaScript: PDF, GitHub - very thorough and hand-held introduction to using JS in simple websites. You will learn from this even if nothing else works.
References from the web
- Javascript.info. General Reference for JavaScript, DOM
- W3Schools
- Beau Teaches JS - youtube series
- You Don't Know JS. General reference for JavaScript, not super beginner-friendly.
- Learn-JS
Study Support:
- Slack! Don't forget to ask each other for help.
- Let us know if we're missing any great resources!