Go Pro!

Bootcamp

Study group

Collaborate with peers in your dedicated #study-group channel.

Code reviews

Submit projects for review using the /review command in your #code-reviews channel

The Frontend Developer Career Path

Unlock CourseGet started!

Join 25838 other students

Log in to get

Access to 30+ free courses
Interactive hands-on content
Challenge weeks - code to win!
Join a friendly community
Unlock Course
Subscribe to access!Subscribe to access!

Subscribe to access to this course and ALL other courses. You get a 30-day money-back guarantee, no questions asked.

This path includes

75 hours of content
100s of coding challenges
HTML, CSS, JS & React
Career module
Cancel subscription whenever

This career path will turn you into a hireable frontend developer, and teach you how to nail the job interview. It contains over 70 hours of top-notch tutorials, hundreds of coding challenges, and dozens of real-world projects.

Your program

The program contains 13 modules. All modules are filled with interactive coding challenges to ensure that you don't fall off the wagon. You'll learn HTML, CSS, JavaScript, React, UI design, career strategy, and more.

Welcome to the career path

Get prepared. In this module, you'll meet your teachers, learn how Scrimba works, and build your first web app.

Web dev basics

Learn the very basics of HTML and CSS. Start creating layouts, and style them how you want.

Making websites interactive

Combine your newly acquired HTML & CSS skills with Javascript. This will allow you to create interactive websites.

Build a Blackjack game

55 lessons2 hours 43 min

1. Let's build a Blackjack game!
0:57
2. Live events on Scrimba
2:40
3. Add the firstCard, secondCard, and sum
0:52
4. If...else conditionals
5:39
5. Your first if...else statement
2:53
6. if/else...if/else statement
3:21
7. The if...else statement for our game
1:59
8. Add the hasBlackJack variable
2:03
9. Add the isAlive variable
1:44
10. Let's practice boolean conditions
3:25
11. Add the message variable
3:21
12. Link to stylesheet
2:32
13. Add basic styling
4:18
14. Make the start button work
5:49
15. Display the message
2:32
16. Display the sum
5:43
17. Display the cards
1:53
18. New card button
3:39
19. Add to the sum when newCard is clicked
3:16
20. Rename the startGame function
2:11
21. Solving our cards problem with an array
3:16
22. Intro to arrays
5:24
23. Array indexes
4:03
24. Arrays with multiple data types
2:18
25. Adding and removing items from arrays
4:20
26. Creating the cards array
1:04
27. Push a new card to the array
1:18
28. Counting in JavaScript
4:01
29. Write your first loop
3:22
30. For loops and arrays
3:43
31. Write your first array-based for loop
1:29
32. For loops, arrays, and DOM
2:55
33. Use a loop to render cards
2:16
34. How can we avoid to hard-code card values?
1:31
35. Returning values in functions
4:59
36. Use a function to set the card values
3:06
37. Generating random numbers with Math.random()
4:15
38. Math.random() * 6
1:43
39. Flooring the number with Math.floor()
1:24
40. Using Math.random() and Math.floor() to create a dice
1:40
41. Completing our dice function
2:37
42. Make getRandomCard() work
2:54
43. Complete getRandomNumber function
3:02
44. Assign values in the startGame function
2:42
45. Our new card feature is broken
0:59
46. The logical AND operator
3:41
47. Write your first logical operator
2:04
48. The logical OR operator
3:02
49. Only trigger newCard() if you're allowed to
1:27
50. Object sneak peek
4:32
51. Intro to objects
4:43
52. Create your first object
3:15
53. Use an object to store player data
2:37
54. Methods on object
1:58
55. Congrats & recap
4:24
Build a Chrome Extension

55 lessons2 hours 46 min

1. Let's build a Chrome Extension!
4:33
2. Add button and input tag
1:33
3. Style the button and input tag
7:16
4. Make the input button work with onclick
1:17
5. Refactor to addEventListener
2:18
6. Write your first addEventListener()
1:44
7. Your turn to refactor
1:22
8. Create the myLeads array and inputEl
2:21
9. When to use let and const
3:17
10. Push to the myLeads array
1:10
11. Push the value from the input field
2:27
12. Use a for loop to log out leads
1:39
13. Create the unordered list
1:55
14. Render the leads in the unordered list
3:41
15. How to render <li> elements with innerHTML
1:33
16. Write your first innerHTML
1:31
17. More innerHTML practice
1:48
18. Render the <li> elements with innerHTML
1:07
19. Use createElement() and append() instead of innerHTML
3:35
20. Improving the performance of our app
3:17
21. Create the render function
2:00
22. Clear the input field
2:03
23. Add the <a> tag
4:28
24. Template strings
2:30
25. Write your first template string
1:15
26. Make the template string even more dynamic
0:51
27. Template strings on multiple lines
2:53
28. Refactor the app to use a template string
1:12
29. Style the list
3:50
30. Preparing the deployment
4:52
31. Deploying the Chrome Extension
2:28
32. What is localStorage?
3:02
33. Your first localStorage
3:48
34. Storing arrays in localStorage
6:23
35. Save the leads to localStorage
2:28
36. Get the leads from localStorage
3:50
37. Truthy and falsy values
7:54
38. Guess the expression - truthy or falsy?
2:22
39. Checking localStorage before rendering
3:37
40. Style the delete button
3:17
41. Make the delete button work
4:16
42. How function parameters can improve our code
5:54
43. Write your first function parameter
3:27
44. Functions with multiple parameters
3:11
45. Numbers as function parameters
1:41
46. Arguments vs Parameters
3:22
47. Arrays as parameters
1:54
48. Refactor renderLeads() to use a parameter
1:39
49. Create the tabBtn
3:19
50. Save the tab url
2:35
51. How to get the current tab?
4:19
52. Use the Chrome API to get the tab
6:18
53. Deploy the final version
2:14
54. Congrats & recap
5:43
55. Share your pet!
1:23

Essential CSS concepts

In this module, you'll level up your CSS skills, and build a neat NFT site.

Essential JavaScript concepts

In this module, you'll level up your JavaScript skills and build three super-cool apps.

Responsive design

This module teaches you how to make your websites work well on all screen sizes, a critical skill for any frontend developer.

Next-level JavaScript

In this module, you will take your JavaScript skills to the next level, and learn about modern JS patterns. You will also build a cool game.

Working with APIs

Web APIs are the backbone of the web. In this module, you'll learn to use it, and build several different projects.

React basics

Learn the most popular library for building user interfaces. This will increase your productivity by an order of magnitude.

Build a meme generator

64 lessons5 hours 7 min

1. Section Intro & Figma file
4:17
2. Meme Generator: Header
5:08
3. Meme Generator: Form
6:01
4. Project analysis
1:04
5. Event Listeners
6:07
6. Project: Get random meme
5:42
7. Our current conundrum
8:09
8. Props vs. State: Props
5:08
9. Props vs. State: State
4:28
10. Props vs. State Quiz!
4:03
11. useState
3:52
12. useState array destructuring
1:46
13. Changing state
3:03
14. useState - Counter practice
5:45
15. useState - Changing state with a callback function
4:18
16. Changing state quiz!
2:30
17. Project: Add images to the meme generator
2:56
18. Challenge: ternary practice
3:50
19. Challenge: flipping state back and forth
5:59
20. Complex state: arrays
10:28
21. Complex state: objects
3:58
22. Complex state: updating state objects
6:35
23. Project: Refactor state
4:10
24. Passing state as props
5:52
25. Setting state from child components
6:28
26. Passing data around
6:26
27. Boxes challenge part 1
3:49
28. Dynamic styles
5:42
29. Boxes challenge part 2
3:37
30. Boxes challenge part 3.1 - local state
4:54
31. Boxes challenge part 3.2 - unified state
7:45
32. Boxes challenge part 4
5:50
33. Boxes challenge part 5
5:57
34. Conditional rendering: &&
6:36
35. Conditional rendering: && practice
1:45
36. Conditional rendering: ternary
2:49
37. Conditional rendering practice
4:45
38. Conditional rendering quiz!
3:56
39. React forms intro
3:25
40. Watch for input changes in React
4:30
41. Form inputs practice
2:22
42. Forms state object
6:09
43. Form state object practice
1:49
44. Controlled inputs
4:14
45. Forms in React: Textarea
3:33
46. Forms in React: Checkbox
6:39
47. Forms in React: Radio buttons
6:00
48. Forms in React: Select & Option
2:49
49. Forms in React: Submitting the form
4:31
50. Forms quiz!
3:13
51. Sign up form practice
8:26
52. Project: Add text to image
3:58
53. Making API calls
4:00
54. Intro to useEffect
5:43
55. useEffect() syntax and default behavior
2:59
56. useEffect dependencies array
8:01
57. useEffect quiz!
3:48
58. useEffect for fetching data
5:48
59. useEffect: when to use dependencies
3:02
60. Project: Get Memes from API
8:11
61. State and Effect practices
7:02
62. useEffect cleanup function
5:53
63. Using an async function inside useEffect (Clone)
3:07
64. React Section 3 Recap
2:17

Advanced React

Level up your React JS skills to a professional level.

Getting hired

Learn to nail the coding interview, and get your first job.

JavaScript Interview Challenges

61 lessons2 hours 9 min

1. Technical Interview Challenges - Intro
4:58
2. Challenge - Panic Function
0:35
3. Solution - Panic Function
1:19
4. Challenge - Shh... Whispering Function
0:40
5. Solution - Shh... Whisper Function
2:13
6. Challenge - Alternating Caps
0:53
7. Solution - Alternating Caps
2:06
8. Challenge - toTitleCase()
0:53
9. Solution - toTitleCase()
2:09
10. Challenge - Definitely Not FizzBuzz
1:26
11. Solution - Definitely Not FizzBuzz
4:28
12. Challenge - Emojify!
2:37
13. Solution - Emojify!
5:28
14. Challenge: Is it an Anagram?
1:19
15. Solution - Is It an Anagram?
3:14
16. Challenge - Decode an Alien Message
1:15
17. Solution - Decode an Alien Message
3:34
18. Challenge - Palindromes
1:15
19. Solution - Palindromes
2:48
20. Challenge - Save Grandpa's Password
0:51
21. Solution - Save Grandpa's Password
3:22
22. Challenge - Frequency of Letters in Your Name
0:50
23. Solution - Frequency of Letters in Your Name
3:11
24. Challenge: Chef Mario's Recipe Book
0:43
25. Solution Pt 1: Chef Mario's Recipe Book
2:29
26. Solution Pt 2: Chef Mario's Recipe Book
3:39
27. Challenge - Pumpkin's Prizes
0:56
28. Solution - Pumpkin's Prizes
2:59
29. Challenge - Count the Scrimba Students
0:54
30. Solution - Count the Scrimba Students
1:48
31. Challenge - Pizza Night?
0:40
32. Solution - Pizza Night?
3:33
33. Challenge - Totally Private Data Farm
1:26
34. Solution - Totally Private Data Farm
2:17
35. Challenge - Find Free Podcasts
0:50
36. Solution - Find Free Podcasts
2:00
37. Challenge - Candy Sale
0:36
38. Solution - Candy Sale
1:52
39. Challenge - Shopping Cart
0:59
40. Solution - Shopping Cart
2:51
41. Challenge - Total Savory Items
0:41
42. Solution - Total Savory Items
1:58
43. Challenge - Holiday Gift Shopping
0:52
44. Solution - Holiday Gift Shopping
2:50
45. Challenge - Collect Unique Genre Tags
0:50
46. Solution Pt 1: Collect Unique Genre Tags
3:50
47. Solution Pt 2: Collect Unique Genre Tags
3:23
48. Challenge - Welcome Aboard Scrimba Airlines
0:58
49. Solution - Welcome Aboard Scrimba Airlines
3:47
50. Challenge - Popularity Contest
0:49
51. Solution - Popularity Contest
2:38
52. Challenge - Night at the Scrimbies
0:52
53. Solution - Night at the Scrimbies
4:37
54. Challenge - Save the Weekend
1:36
55. Solution - Save the Weekend
3:08
56. Challenge - Find Anagrams in an Array
2:15
57. Solution - Find Anagrams in an Array
3:28
58. Challenge - Emoji Flower Bed
0:43
59. Solution - Emoji Flower Bed
1:53
60. Challenge - Emoji Slot Machine
1:22
61. Solution - Emoji Slot Machine
4:55