Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gmac/professional-javascript

Curriculum for Professional JavaScript classroom workshop.
https://github.com/gmac/professional-javascript

Last synced: 29 days ago
JSON representation

Curriculum for Professional JavaScript classroom workshop.

Awesome Lists containing this project

README

        

# Professional JavaScript

This workshop introduces professional-level JavaScript development. The curriculum covers foundation concepts of JavaScript programming and basic computer science. The goal of this workshop is to establish a technical knowledge base for our participants to continue building upon in their careers. While this is a beginner-level course, the curriculum is expansive and highly technical. Participants of all experience levels should come prepared to be challenged.

## Pre-requisites

You should be familiar with basic HTML and CSS. A pre-course primer on JavaScript will also help you succeed. You can pursue free lessons on these subjects at [dash.generalassemb.ly](http://dash.generalassemb.ly).

## Takeaways
- Foundation concepts of computer science.
- Intermediate-level concepts of the JavaScript programming language.
- Foundation knowledge of how JavaScript makes the web interactive.

## Day 1: Fundamentals

Our first session will cover the basics of computer science, using JavaScript as our language of study. For participants with past programming experience, this cirriculum will be generally familiar.

**Morning**

- Introduction
- JavaScript Fundamentals
- Datatypes
- Variables
- Conditionals
- Arrays & Objects
- Enumeration
- Passing Value vs. Reference

**Afternoon**

- Simple Functions
- Intro to DOM
- Selecting elements
- Reading and writing document data
- Binding event handlers
- Lab exercises

## Day 2: Functions & Object-Orientation

Our second session will deep-dive into the exceptionally unique aspect of JavaScript: Functions. The concepts discussed here are significantly more advanced than those in session-1, so participants should come prepared to be challenged.

**Morning**

- Introduction
- **Part 1: Basic Functions**
- Arguments & Return
- The "arguments" Object
- Invocation vs. Reference
- Declaration vs. Assignment
- Functions as First-Class Objects
- **Part 2: Closure & Scope**
- What is Closure?
- What is Scope?
- Declarations & Scope Chain
- Hoisting
- Scope exercises

**Afternoon**

- **Part 3: Contextual Invocation**
- What is "this"?
- Function Invocation
- Call Invocation
- Method Invocation
- **Part 4: Prototypal Inheritance**
- Constructor Invocation
- Prototype Chains
- Using "hasOwnProperty"
- Using "typeof" and "instanceof"
- Invocation exercises