Code Challenge
Code Challenge
Code Challenge
Of course, you can deviate from this path but if you do so, you might take a bit longer (or finish it quicker, if you have
more spare time at your disposal).
Below, you find a list of the 100 days and the lectures that you should complete for each day.
You will get most out of this challenge, if you truly commit to it. That means that you post about entering the channel
as well as your daily progress on social media - it's of course up to you on which platforms you do want to post. But
sharing your progress is vital as it will keep you committed and motivated.
We prepared a website that gets you started with sharing your progress!
Day 1
Total Content Duration: ~53 minutes
Get started with the course & create your first basic website!
Day 2
Total Content Duration: ~48 minutes
Set up a proper local development environment and dive deeper into HTML. You'll also get started with CSS
already!
Time to dive deeper into CSS and HTML. You'll learn more about styling and proper HTML document formatting.
Day 4
Total Content Duration: ~40 minutes
You'll dive even deeper into CSS and styling and you will also learn how you can split your code across multiple
files.
S2L32 - Styling the Anchor Element Also with Pseudo Hover [Day 4]
S2L33 - Why it's Called Cascading Style Sheets [Day 4]
S2L34 - Storing CSS Code in External Files [Day 4]
S2L35 - The Void Element Syntax [Day 4]
S2L36 - Multiple Files & Requests [Day 4]
S2L37 - Selecting Single Elements with the ID Selector [Day 4]
S2L38 - Working with "font-size" and "px" [Day 4]
S2L39 - Using Other Fonts from Google Fonts [Day 4]
Day 5
Total Content Duration: ~44 minutes
We'll reach the end of the first main course section and you will learn how to add and style images to websites!
S2L40 - Understanding How HTML & CSS Handle Text & Whitespace [Day 5]
S2L41 - Adding an Image [Day 5]
S2L42 - Styling the Image & Using the Body Tag [Day 5]
S2L43 - Styling the Overall Page Background [Day 5]
S2L44 - Adding a Second HTML File [Day 5]
S2L45 - A Word About File Name Conventions [Day 5]
S2 Quiz 3 - Learning Check: More HTML & CSS Features [Day 5]
S2L46 - A Challenge for You! [Day 5]
S2L47 - Challenge Solution [Day 5]
S2 Assignment 1 - Time to Practice - Your First Challenge! [Day 5]
S2L48 - Using a Shared CSS File [Day 5]
S2L49 - Organizing Source Files in Folders [Day 5]
S2L50 - Summary [Day 5]
Day 6
Total Content Duration: ~45 minutes
Move to an even better local development setup and start diving into the depths of CSS fundamentals!
Learn about more key CSS concepts like the CSS box model, various CSS selectors and block vs inline elements.
Day 8
Total Content Duration: ~48 minutes
Learn about advanced CSS concepts & practice and apply what you learned until now!
Day 9
Total Content Duration: ~48 minutes
Time for a first, thorough summary and practice. We'll start summarzing key HTML & CSS concepts.
Let's finish the first summary module and ensure that we're all on the same page.
Day 11
Total Content Duration: ~54 minutes
Time to share our first website with the world! Learn how to publish (deploy) a basic website. We'll also start
diving into the next module (Git & GitHub) already!
Day 12
Total Content Duration: ~50 minutes
Start diving deeper into Git (a version control software) by installing it on your system and learning about some
first key Git concepts.
S6L100 - Optional: Windows Command Prompt (cmd) Crash Course [Day 12]
S6L101 - Git: MacOS Installation [Day 12]
S6L102 - Git: Windows Installation [Day 12]
S6L103 - Understanding the Git Basics [Day 12]
S6L104 - Initializing the Repository & Creating our First Commit [Day 12]
Day 13
Total Content Duration: ~44 minutes
Time to take control over your source code! Learn more about Git and GitHub and how you can use these tools
effectively.
S6L105 - Understanding Branches, Merging & Fixing Merge Conflicts [Day 13]
S6L106 - Deleting Branches & Commits, Reverting Staged & Unstaged Changes [Day 13]
S6L107 - Onwards to GitHub - What & Why? [Day 13]
S6L108 - Creating a GitHub Account & a Remote Repository [Day 13]
Day 14
Total Content Duration: ~54 minutes
Dive deeper into GitHub and learn how you can use it to collaborate with others and share your code.
S6L109 - Understanding the Personal Access Token & "git clone" [Day 14]
S6L110 - Collaborating on Projects - Collaborators & Organizations [Day 14]
S6L111 - Contributing to Projects - Forks & Pull Requests [Day 14]
S6L112 - Wrap Up [Day 14]
Day 15
Total Content Duration: ~38 minutes
Back to coding! Let's dive into various techniques and concepts that help you create beautiful website layouts with
CSS.
Day 17
Total Content Duration: ~53 minutes
Time to dive even deeper into the nitty-gritty (yet very important) details about CSS styling.
S7L128 - Working with % Units & Creating a Top Navigation Bar [Day 17]
S7L129 - Finishing the Header [Day 17]
S7L130 - Introducing the "Highlights" Section [Day 17]
S7L131 - Creating the HTML Code [Day 17]
S7L132 - Building the Flex Container [Day 17]
S7L133 - Flex Item Layout [Day 17]
S7L134 - Styling Images with "object-fit" [Day 17]
S7L135 - Styling Text [Day 17]
Day 18
Total Content Duration: ~42 minutes
Apply what you learned and start finishing the course section demo project by also diving into more key features.
It's time for more practicing and some brand-new CSS concepts as well!
Day 20
Total Content Duration: ~50 minutes
Explore more key CSS concepts - now focusing on 'responsive' websites that work well on all kinds of screen sizes
and devices.
Day 21
Total Content Duration: ~47 minutes
Learn about important CSS features that help with building responsive websites.
Time to dive deeper into CSS units and start exploring another important feature: 'Media Queries'.
S8L165 - Applying "em" & "rem" for the Font Size [Day 22]
S8L166 - Deep Dive: "em" vs "rem" vs "%" [Day 22]
S8L167 - Updating the Project Units [Day 22]
S8L168 - Comparing Desktop & Mobile First Design [Day 22]
S8L169 - Understanding Media Queries [Day 22]
Day 23
Total Content Duration: ~50 minutes
Dive deeper into media queries and learn about mobile menus.
Day 24
Total Content Duration: ~51 minutes
Time to finish responsive designs and explore general guidelines + more concepts that help with building good-
looking websites.
Learn about more key features that help with building beautiful webpages.
Day 26
Total Content Duration: ~38 minutes
Time to leave CSS. Learn how you can collect user input by using forms on your web pages.
Day 27
Total Content Duration: ~45 minutes
Dive into more key form elements that you can use to gather all kinds of user input.
Explore yet more form elements and practice what you learned about HTML forms.
Day 29
Total Content Duration: ~53 minutes
More forms practice AND the introduction of another key frontend technology: JavaScript!
Day 30
Total Content Duration: ~45 minutes
Day 32
Total Content Duration: ~57 minutes
Time to practice what we learned before it's time for slighthly more advanced JavaScript concepts that help you
work with data efficiently.
Start diving into one of the most important JavaScript concepts that will help you build interactive websites: The
DOM.
Day 34
Total Content Duration: ~49 minutes
Learn and practice how you may work with the DOM efficiently.
S12L259 - Drilling Into The DOM & Exploring Text Nodes [Day 34]
S12L260 - DOM Drilling Limitations [Day 34]
S12L261 - Searching The DOM For Elements [Day 34]
S12L262 - Querying Elements [Day 34]
S12L263 - Common Query Methods [Day 34]
S12L264 - Time to Practice: The Problem [Day 34]
S12L265 - Time to Practice: The Solution [Day 34]
S12L266 - Next Steps [Day 34]
S12L267 - Inserting New HTML Elements via JavaScript [Day 34]
Day 35
Total Content Duration: ~39 minutes
Learn how to listen and react to user input and user events - something you will need for basically every
interactive website.
Day 36
Total Content Duration: ~54 minutes
Day 37
Total Content Duration: ~49 minutes
Learn about more key JavaScript concepts: It's time for 'control structures' now!
Explore how different kinds of control structures work and why (and when) you would use them!
Day 39
Total Content Duration: ~49 minutes
S13L297 - Practice Time: Setup & The "for" Loop [Day 39]
S13L298 - Practice Time: The "for-of" Loop [Day 39]
S13L299 - Practice Time: The "for-in" Loop [Day 39]
S13L300 - Practice Time: The "while" Loop [Day 39]
S13L301 - Module Summary [Day 39]
S13 Quiz 9 - Learning Checks: Loops [Day 39]
Day 40
Total Content Duration: ~44 minutes
It's 'Milestone Project' time! Apply many of the concepts you learned until now (not just JavaScript!) and build a
browser game: The Tic-Tac-Toe game.
Let's continue working on the Tic-Tac-Toe game by adding some styling as well as some event handlers to it.
S14L306 - Adding Styling For The Game Configuration Area [Day 41]
S14L307 - Styling The Game Board [Day 41]
S14L308 - Adding JavaScript, Script Files & First Event Listeners [Day 41]
S14L309 - Showing & Hiding The Configuration Modal (Overlay) [Day 41]
Day 42
Total Content Duration: ~53 minutes
Start handling form submission and use JavaScript to validate + handle the user input.
Day 43
Total Content Duration: ~39 minutes
Let's move on to the game logic of our Tic-Tac-Toe game. Time to get started on that!
Day 44
Total Content Duration: ~48 minutes
As a developer, you often use third-party packages so that you don't have to write all the code on your own. Learn
more about that on this day.
Day 46
Total Content Duration: ~37 minutes
Time to leave the frontend and move onwards to the backend and backend development.
Day 47
Total Content Duration: ~52 minutes
Learn more NodeJS basics. NodeJS is the primary backend technology we use in this course.
Learn how to add the important Express third-party package to your backend code.
Day 49
Total Content Duration: ~47 minutes
Learn how to build dynamic websites and generate HTML code 'on the fly' on the backend with Node & Express.
Day 50
Total Content Duration: ~46 minutes
Dive deeper into the generation of dynamic content with help of backend technologies.
Learn how to not just generate dynamic content but also work with dynamic URL paths.
Day 52
Total Content Duration: ~46 minutes
Dive even deeper into backend development, dynamic request handling and response metadata.
Day 53
Total Content Duration: ~51 minutes
Explore more features of the 'Express Router' and finish the basic backend concepts.
Day 55
Total Content Duration: ~45 minutes
Explore more advanced JavaScript concepts - concepts which matter for both frontend and backend development.
Day 56
Total Content Duration: ~45 minutes
Time to finish the more advanced JavaScript concepts and move on to databases.
S21L392 - Diving Into Asynchronous Code & Callback Functions [Day 56]
S21L393 - Introducing Promises [Day 56]
S21L394 - Asynchronous Code & Error Handling [Day 56]
S21L395 - Improving Code With async / await [Day 56]
S21 Quiz 17 - Learning Check: Asynchronous Code [Day 56]
S21L396 - Module Summary [Day 56]
S22L397 - Module Introduction [Day 56]
S22L398 - Why Databases? And What Are Databases In The First Place? [Day 56]
Day 57
Total Content Duration: ~51 minutes
Learn about databases in general (what & why) and start diving into SQL database systems.
Day 58
Total Content Duration: ~46 minutes
Day 59
Total Content Duration: ~56 minutes
Explore data entity relations and how you can work with them when using SQL.
Time to use SQL together with Node & Express to build a real backend, using a SQL database engine.
Day 61
Total Content Duration: ~44 minutes
Day 62
Total Content Duration: ~47 minutes
Finish the usage of SQL in a Node + Express website and practice what you learned.
Besides SQL, you could also use a NoSQL database system. Learn more about NoSQL on this day!
Day 64
Total Content Duration: ~44 minutes
Dive deeper into NoSQL (MongoDB) and learn how to interact with data and NoSQL.
Day 65
Total Content Duration: ~56 minutes
Just as before with SQL, learn how to use NoSQL together with Node & Express.
Continue using NoSQL with Node + Express and apply what you learned.
Day 67
Total Content Duration: ~47 minutes
On many websites, you need to support file uploads. Time to dive into this important feature!
Day 68
Total Content Duration: ~48 minutes
Learn how to store and serve uploaded files correctly before we dive into a brand-new, super-important concept:
Asynchronous JS-driven Http requests.
S27L467 - Storing File Data In A Database (And What NOT To Store) [Day 68]
S27L468 - Serving Uploaded Files To Website Visitors [Day 68]
S27L469 - Adding An Image Preview Feature [Day 68]
S27L470 - Module Summary [Day 68]
S27 Quiz 20 - Learning Check: File Uploads [Day 68]
S28L471 - Module Introduction [Day 68]
S28L472 - What Is Ajax? And Why Would We Need It? [Day 68]
S28L473 - What is "Ajax"? [Day 68]
Day 69
Total Content Duration: ~57 minutes
Learn more about AJAX requests and how to work with them (on both the frontend and backend).
Day 70
Total Content Duration: ~46 minutes
Dive even deeper into AJAX requests before you thereafter start exploring 'User Authentication' in detail!
Day 71
Total Content Duration: ~46 minutes
Many websites need to provide user signup + login functionalities. Hence it's time to learn how you can
implement that feature!
Let's continue working on user authentication and learn about the key concepts related to that.
Day 73
Total Content Duration: ~35 minutes
Day 74
Total Content Duration: ~55 minutes
Time to dive into website security, various attack patterns and how to defend against them!
Finish the 'Security' chapter and move on to the next one: Writing good code and how to organize code efficiently,
when working in bigger projects.
Day 76
Total Content Duration: ~56 minutes
Explore more details about writing good code, using good patterns and organizing code into multiple files and
modules.
Day 77
Total Content Duration: ~41 minutes
Time for another, huge milestone project: Time for the 'Online Shop' project.
Day 79
Total Content Duration: ~47 minutes
We're going to work on the online shop project for multiple days - this is day 2. Time for the basic structure and
setup and some first styling.
Day 80
Total Content Duration: ~37 minutes
S32L538 - More Base CSS Styles For The Website [Day 80]
S32L539 - Styling First Form Elements [Day 80]
S32L540 - Adding A MongoDB Database Server & Connection [Day 80]
Day 81
Total Content Duration: ~49 minutes
Day 83
Total Content Duration: ~56 minutes
S32L550 - Flashing Errors & Input Data Onto Sessions [Day 83]
S32L551 - Displaying Error Messages & Saving User Input [Day 83]
S32L552 - Admin Authorization & Protected Navigation [Day 83]
S32L553 - Setting Up Base Navigation Styles [Day 83]
Day 84
Total Content Duration: ~51 minutes
Day 85
Total Content Duration: ~48 minutes
Day 87
Total Content Duration: ~43 minutes
Day 88
Total Content Duration: ~37 minutes
Day 89
Total Content Duration: ~51 minutes
Day 90
Total Content Duration: ~50 minutes
S32L576 - Updating The DOM After Cart Item Updates [Day 91]
S32L577 - JavaScript & Floating Point Arithmetic [Day 91]
S32L578 - Adding The Order Controller & A Basic Order Model [Day 91]
S32L579 - Saving Orders In The Database [Day 91]
Day 92
Total Content Duration: ~44 minutes
Day 93
Total Content Duration: ~52 minutes
Learn about third-party services, what that is and why you might use it, and learn how to integrate payments (as
an example) into your projects.
Just as earlier in the course, you of course want to publish your website at some point. Now that we can build
more complex websites, it's time to take another look at deployment therefore.
Day 95
Total Content Duration: ~52 minutes
Deploy static and dynamic websites (and learn about the difference). Also start into a brand-new section on how
you may build your own services or APIs.
S34L604 - Improving Performance & Shrinking Assets (JS, Images) [Day 95]
S34L605 - Deployment Example: Static Websites (Refresher) [Day 95]
S34L606 - Deployment Example: Dynamic Website With Backend Code [Day 95]
S34L607 - Deploying A MongoDB Database With Atlas [Day 95]
S34L608 - Finishing Dynamic Website Deployment [Day 95]
S35L609 - Module Introduction [Day 95]
S35L610 - APIs & Services: What & Why? [Day 95]
S35L611 - JS Packages vs URL-based APIs: What We Will Build Here [Day 95]
S35L612 - APIs vs "Traditional Websites" [Day 95]
Day 96
Total Content Duration: ~54 minutes
Learn how a standalone frontend could be connected to an API that you built (or to any other API).
Day 98
Total Content Duration: ~40 minutes
Back to frontend development! But now it's time to dive into powerful frontend JavaScript frameworks (=
libraries)!
Day 99
Total Content Duration: ~53 minutes
Finish this thorough introduction into JavaScript frontend frameworks by also connecting your frontend website
to your API.
S37L638 - Bonus: Possible Next Steps, Practice Opportunities & Project Ideas [Day 100]