> Please help us improve and share your feedback! If you find better tutorials or links, please share them by opening a Pull Request.
# Hack Your JavaScript
Here you can find course content and homework for the JavaScript 1,2 and 3 modules
## Composition (Module goals)
|Week|Topic|Read|Homework|
|----|-----|----|--------|
|0.|Preparation for your first JavaScript session|[Reading Week 0](https://github.com/HackYourFuture/JavaScript/tree/laurens_thomas/Week0)|-|
|1.|• Intro JavaScript (What is it, where can you
use it for)
• Basic Data types [Strings, Numbers, Arrays]
• Variables
• Operators
• Conditions
• Naming conventions| [CLI Reading Week 1](https://github.com/HackYourFuture/CommandLine/blob/master/Lecture-1.md)| [Homework Week 1](https://github.com/HackYourFuture/JavaScript/tree/laurens_thomas/Week1/MAKEME.md)|
|2.| [CLI](https://github.com/HackYourFuture/CommandLine) session with Unmesh :heart:|[Reading Week 2](https://github.com/HackYourFuture/JavaScript/tree/laurens_thomas/Week2)|[JS](https://github.com/HackYourFuture/JavaScript/tree/laurens_thomas/Week2/MAKEME.md) + [CLI Homework Week 2](https://github.com/HackYourFuture/CommandLine/blob/master/HomeWork.md)|
|3.|• Loops (for/while)
• Functions
• Closures
• Scope
• Advanced data types [Objects]
• Array Manipulations
• Basic DOM manipulations [img src, innerHTML]
• Code commenting|[Reading Week 3](https://github.com/HackYourFuture/JavaScript/tree/laurens_thomas/Week3)|[Homework Week 3](https://github.com/HackYourFuture/JavaScript/tree/laurens_thomas/Week3/MAKEME.md)|
|4.|• First Git Session with Unmesh :smiling_imp:
• JSON
• Code debugging using the browser
• Functions + JSON/Arrays
• Code flow (order of execution)
• (capturing user input)
• Structuring code files|[Reading Week 4](https://github.com/HackYourFuture/JavaScript/tree/laurens_thomas/Week4)|[JS](https://github.com/HackYourFuture/JavaScript/tree/laurens_thomas/Week4/MAKEME.md) + [Git Homework Week 4](https://github.com/HackYourFuture/Git/blob/master/Lecture-1.md)|
|5.|• Second Git Session :see_no_evil:
• Events
• Callbacks
• XHTTP Requests
• API calls|[Reading Week 5](https://github.com/HackYourFuture/JavaScript/tree/laurens_thomas/Week5)|[JS](https://github.com/HackYourFuture/JavaScript/tree/laurens_thomas/Week5/MAKEME.md) + [Git Homework Week 5](https://github.com/HackYourFuture/Git/blob/master/Lecture-2.md)|
|6.|• Async VS Sync
• Polling
• Structure for a basic SPA|[Reading Week 6](https://github.com/HackYourFuture/JavaScript/tree/laurens_thomas/Week6)|[Homework Week 6](https://github.com/HackYourFuture/JavaScript/tree/laurens_thomas/Week6/MAKEME.md)|
|7.|• Third Git Session (Git Workflow :muscle:)
• (re)writing data structures (in JSON)
• Map, reduce filter|[Reading Week 7](https://github.com/HackYourFuture/JavaScript/tree/laurens_thomas/Week7)|[Homework Week 7](https://github.com/HackYourFuture/JavaScript/tree/laurens_thomas/Week7/MAKEME.md)|
|8.|• Closures
• Promises|TBA|TBA|
|9.|Test Driven Development|TBA|TBA|
__Kind note:__
We expect you to __always__ come prepared to the class on Sunday.
## Module goals:
### Week 1-3:
A basic program with multiple functions (reacting to user input)
### Week 4-6:
A tool capable of loading a JSON file and repreenting it in the DOM
### Week 7-9:
A web app with external data source using at least one API 《〠_〠》
### Overall
A good understanding of all the above mentioned topics. Want to check your Knowledge? Go through the [JavaScript Fundamentals README](https://github.com/HackYourFuture/JavaScript/tree/master/fundamentalsand) and research/ ask for help (Slack!) with the concepts that are not entirely clear.