Skip to content

Instantly share code, notes, and snippets.

@v0lkan
Last active January 18, 2023 18:49
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save v0lkan/e485b3b4c0c970c55d5c94f206c5bf7e to your computer and use it in GitHub Desktop.
Save v0lkan/e485b3b4c0c970c55d5c94f206c5bf7e to your computer and use it in GitHub Desktop.
“JavaScript: from Zero to Hero” Course Outline
/*
*
*/
(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