Last active
January 18, 2023 18:49
-
-
Save v0lkan/e485b3b4c0c970c55d5c94f206c5bf7e to your computer and use it in GitHub Desktop.
“JavaScript: from Zero to Hero” Course Outline
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* | |
*/ | |
(function closure() { | |
const courseOutline = [ | |
{ | |
title: 'Introduction', | |
lessons: [ | |
{ title: 'About “JavaScript: from Zero to Hero”' }, | |
{ title: 'How to Learn a New Language' }, | |
{ title: 'How to Think Like a Developer' }, | |
{ title: 'How to Make the Best Use of This Course' } | |
] | |
}, | |
{ | |
title: 'Development Setup', | |
lessons: [ | |
{ title: 'Installing Node.js, NPM, and Yarn' }, | |
{ title: 'An Overview of Popular Editors and IDEs' }, | |
{ title: 'Installing and Using Docker' }, | |
{ title: 'BONUS: Debugging Node.js in Webstorm' }, | |
{ title: 'First Time Development Environment Setup on a Mac' }, | |
{ title: 'First Time Development Environment Setup on Windows' }, | |
{ title: 'First Time Development Environment Setup on Linux' }, | |
{ title: 'Use Case: Verifying Our Setup' } | |
] | |
}, | |
{ | |
title: 'Organizing Your Code', | |
lessons: [ | |
{ title: 'Placeholder 001' }, | |
{ title: 'Placeholder 002' }, | |
{ title: 'Placeholder 003' } | |
] | |
}, | |
{ | |
title: 'The Baby Steps', | |
lessons: [ | |
{ title: 'A Gentle Introduction to Functions' }, | |
{ title: 'A Gentle Introduction to Data Types' }, | |
{ title: 'A Gentle Introduction to Objects' }, | |
{ title: 'A Gentle Introduction to Asynchronicity' }, | |
{ title: 'Use Case: Convert a Website to PDF' } | |
] | |
}, | |
{ | |
title: 'Basics: Operators', | |
lessons: [ | |
{ title: 'Operators: Arithmetic Operators' }, | |
{ title: 'Operators Relational Operators' }, | |
{ title: 'Operators: Logical Operators' }, | |
{ title: 'Operators: Binary Operators' }, | |
{ title: 'Use Case: Searching For Your Favorite Book' } | |
] | |
}, | |
{ | |
title: 'Basics: Flow Control', | |
lessons: [ | |
{ title: 'Flow Control: if/else' }, | |
{ title: 'Flow Control: switch' }, | |
{ title: 'Flow Control: while/do-while' }, | |
{ title: 'Flow Control: for/for-in/for-of' }, | |
{ title: 'Use Case: Building a Simple Event Calendar' } | |
] | |
}, | |
{ | |
title: 'Basics: Strings, Numbers, and Booleans', | |
lessons: [ | |
{ title: 'Strings: Overview' }, | |
{ title: 'Strings: Template Literals' }, | |
{ title: 'Numbers: Overview' }, | |
{ title: 'Booleans' }, | |
{ title: 'Use Case: Creating a Tip Calculator' } | |
] | |
}, | |
{ | |
title: 'Basics: Dealing With Date and Time', | |
lessons: [ | |
{ title: 'DateTime: Overview' }, | |
{ title: 'An Overview of DateTime Libraries' }, | |
{ title: 'Use Case: Time Traveling With moment.js' } | |
] | |
}, | |
{ | |
title: 'Regular Expressions', | |
lessons: [ | |
{ title: 'Regular Expression Basics' }, | |
{ title: 'Dissecting Practical Regex Examples' }, | |
{ title: 'Use Case: Simple JavaScript Syntax Highlighter' } | |
] | |
}, | |
{ | |
title: 'Collections', | |
lessons: [ | |
{ title: 'Collections: Arrays' }, | |
{ title: 'Collections: Array Destructuring' }, | |
{ title: 'Collections: Arrays: Functional Primitives' }, | |
{ title: 'Collections: The Almighty Reducer' }, | |
{ title: 'Collections: Sets' }, | |
{ title: 'Collections: Maps' }, | |
{ title: 'Collections: WeakMaps' }, | |
{ title: 'Collections: WeakSets' }, | |
{ title: 'Use Case: Search the Spotify Music Catalog' } | |
] | |
}, | |
{ | |
title: 'Objects', | |
lessons: [ | |
{ title: 'Objects: Overview' }, | |
{ title: 'Objects: Object Destructuring' }, | |
{ title: 'Objects: Prototypal Inheritance' }, | |
{ title: 'Objects: Classes' }, | |
{ title: 'Use Case: The Great Library of Chuck Norris Jokes' } | |
] | |
}, | |
{ | |
title: 'Timers', | |
lessons: [ | |
{ title: 'Timers: Overview' }, | |
{ title: 'Timers: setTimeout and setInterval' }, | |
{ title: 'Timers: process.nextTick and setImmediate' }, | |
{ title: 'Timers: MicroTasks and MacroTasks' }, | |
{ title: 'Use Case: Debouncing a Scroll Event' }, | |
{ title: 'Use Case: Creating a Autocomplete Search Box' } | |
] | |
}, | |
{ | |
title: 'More Functions', | |
lessons: [ | |
{ title: 'Functions: A Deeper Dive' }, | |
{ title: 'Functions: Higher-Order Functions' }, | |
{ title: 'Functions: apply and bind' }, | |
{ title: 'Functions: Currying and Partial Application' }, | |
{ title: 'Functions: Rest Parameters and Default Parameters' }, | |
{ title: 'Use Case: Dissecting a Y Combinator' } | |
] | |
}, | |
{ | |
title: 'AJAX and Its Friends', | |
lessons: [ | |
{ title: 'XMLHttpRequest' }, | |
{ title: 'CORS' }, | |
{ title: 'fetch' }, | |
{ title: 'Generators and Iterators' }, | |
{ title: 'async/await' }, | |
{ title: 'Use Case: Creating a Mini Google' } | |
] | |
}, | |
{ | |
title: 'The Terminal', | |
lessons: [{ title: 'TBD' }] | |
}, | |
{ | |
title: 'The Server', | |
lessons: [{ title: 'TBD' }] | |
}, | |
{ | |
title: 'The Web', | |
lessons: [{ title: 'TBD' }] | |
}, | |
{ | |
title: 'What’s Next', | |
lessons: [{ title: 'TBD' }] | |
}, | |
{ | |
title: 'Dogfooding', | |
// We will create zerotoherojs.com and its sister sites from scratch | |
// Implement all automation, monitoring, scaling, HA-setup | |
// So, this will be a hands-on tutorial about how to manage a full-stack | |
// learning management portal. | |
lessons: [{ title: 'TBD'}] | |
} | |
]; | |
console.log('Course outline', courseOutline); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment