Learn the incredibly popular and in demand JavaScript language. This course makes no assumptions of prior computer programming experience. We begin with the very basics and slowly but surely work our way up to writing JavaScript code to power every aspect of an application.
Learn JavaScript: Full-Stack from Scratch
- No prerequisite knowledge required; the only thing you need is a computer (that you are allowed to install software on) and an internet connection.
There are countless JavaScript courses in the world; here's what makes this one unique:
A strong emphasis on the "why" and not just the "how"
As few assumptions as possible; it's a pet peeve of mine when instructors assume I know something I don't
As few "just download my existing project to get you up and running" moments as possible. It's another pet peeve of mine when instructors have you use an existing solution that just "automagically" works and you miss a potential learning experience of setting it up yourself. We do copy-and-paste HTML templates (since the focus of the course is not about HTML) but aside from that I explain things from the ground up.
This course may be brand new, but this isn’t my first time teaching. I’ve led training sessions for Fortune 500 companies and I’ve already helped over 65,000 people on Udemy and received the following feedback:
Become highly valuable and relevant to the companies that are hiring JavaScript developers; in one convenient place alongside one instructor. If you're ready to begin coding your own applications from the ground up - I'll see you on the inside!
- Anyone who might be interested in starting a career in computer programming (no experience required).
What you'll learn:
- The JavaScript language itself
- How to control a database (MongoDB) with JavaScript
- How to control the Web Browser with JavaScript
- How to implement user registration, log-in, log-out & user generated content
- How to setup a server by using Node JS and Express
About the Author: Udemy
Udemy is the largest open marketplace for online courses on the internet. Founded in 2010 by Eren Bali, Oktay Caglar, and Gagan Biyani and headquartered in San Francisco, the company went public on the Nasdaq in 2021 under the ticker UDMY. The platform hosts well over two hundred thousand courses across software development, IT and cloud, data science, design, business, marketing, and creative skills, taught by tens of thousands of independent instructors. Roughly seventy million learners use it worldwide, and the corporate arm — Udemy Business — supplies a curated subset of that catalog to enterprise customers.
Because Udemy is a marketplace rather than a single editorial publisher, the catalog is uneven by design. The strongest material lives in the long-form, project-based courses authored by working engineers — full-stack JavaScript, React, Node.js, Python data science, AWS, Docker and Kubernetes, mobile development with Flutter and React Native, and cloud certification preparation. The CourseFlix listing under this source is the slice of that catalog that has been mirrored here for offline-friendly viewing, organized by topic and updated as new releases land. Pricing on Udemy itself swings dramatically with the site's near-permanent sales, which is why the platform is best treated as a deep reference catalog: pick instructors with strong reviews and a track record of updating their material rather than buying on the headline price alone.
Watch Online 106 lessons
| # | Lesson Title | Duration | Access |
|---|---|---|---|
| 1 | Where Do We Begin? Demo | 10:06 | |
| 2 | Getting Started | 16:31 | |
| 3 | Functions | 19:59 | |
| 4 | Objects | 19:44 | |
| 5 | Arrays | 19:48 | |
| 6 | Making Decisions | 18:37 | |
| 7 | Higher-Order Functions | 18:20 | |
| 8 | Returning vs Mutating | 19:39 | |
| 9 | Scope & Context (Part 1) | 17:43 | |
| 10 | Scope & Context (Part 2) | 14:54 | |
| 11 | Miscellaneous Info (Part 1) | 13:33 | |
| 12 | Miscellaneous Info (Part 2) | 09:19 | |
| 13 | Building To-Do App (Part 1) | 17:21 | |
| 14 | Building To-Do App (Part 2) | 10:14 | |
| 15 | Why Do We Need a Server? | 11:24 | |
| 16 | Node.js Intro | 10:22 | |
| 17 | Text Editor Software | 10:49 | |
| 18 | Our First Basic Server | 19:54 | |
| 19 | Express Intro (Part 1) | 10:14 | |
| 20 | Express Intro (Part 2) | 19:49 | |
| 21 | What's Next? (Big Picture) | 14:04 | |
| 22 | First Taste of a Database | 10:58 | |
| 23 | CRUD: Actually Working With A Database | 14:05 | |
| 24 | Initial Setup for App #1 | 18:03 | |
| 25 | Save Time: Automatic Node App Restarts | 09:13 | |
| 26 | Connecting Node App to Database | 19:59 | |
| 27 | Reading Data from a Database | 17:25 | |
| 28 | Updating a Database Item (Part 1) | 19:59 | |
| 29 | Updating a Database Item (Part 2) | 19:56 | |
| 30 | Deleting a Database Item | 12:56 | |
| 31 | Create New Item Without Page Reload | 19:58 | |
| 32 | Client-Side Rendering | 10:18 | |
| 33 | What About Security? | 19:55 | |
| 34 | Pushing Our App Onto The Internet | 19:20 | |
| 35 | What's Next? | 08:04 | |
| 36 | Let's Begin App #2 | 18:40 | |
| 37 | What Is A Router? | 14:12 | |
| 38 | What Is A Controller? | 17:53 | |
| 39 | What Is A Model? | 19:59 | |
| 40 | Adding Validation To Our Model | 19:59 | |
| 41 | Quick Misc. Clean Up | 08:02 | |
| 42 | Connecting To Database In a Reusable Fashion | 17:13 | |
| 43 | Best Practice Time Out: Environment Variables | 10:11 | |
| 44 | Letting Users Log In | 18:38 | |
| 45 | What is a Promise? (Part 1) | 19:33 | |
| 46 | What is a Promise? (Part 2) | 14:25 | |
| 47 | Hashing User Passwords | 13:54 | |
| 48 | How Can We "Identify" or "Trust" a Request? | 19:18 | |
| 49 | Understanding Sessions | 19:08 | |
| 50 | Letting Users Logout | 11:58 | |
| 51 | Adding Flash Messages | 16:29 | |
| 52 | User Registration Improvements (Part 1) | 17:42 | |
| 53 | User Registration Improvements (Part 2) | 12:02 | |
| 54 | Adding User Profile Photos | 15:37 | |
| 55 | Letting Users Create Posts (Part 1) | 17:32 | |
| 56 | Letting Users Create Posts (Part 2) | 12:18 | |
| 57 | Post Model (Part 1) | 20:00 | |
| 58 | Post Model (Part 2) | 07:17 | |
| 59 | Viewing a Post (Part 1) | 07:46 | |
| 60 | Viewing a Post (Part 2) | 19:11 | |
| 61 | Performing a Lookup in MongoDB (Part 1) | 16:51 | |
| 62 | Performing a Lookup in MongoDB (Part 2) | 08:15 | |
| 63 | User Profile Screen | 18:11 | |
| 64 | View Posts by Author | 19:48 | |
| 65 | Is the Current Visitor the Owner of the Post? | 12:54 | |
| 66 | The "Edit" Screen for a Post | 08:51 | |
| 67 | Updating Posts in Database (Part 1) | 10:52 | |
| 68 | Updating Posts in Database (Part 2) | 18:58 | |
| 69 | Miscellaneous Improvements | 14:56 | |
| 70 | Markdown: Safe User Generated HTML | 15:45 | |
| 71 | Let Users Delete a Post | 13:59 | |
| 72 | Staying Organized: Front-End JavaScript | 19:58 | |
| 73 | Showing and Hiding Search Overlay | 16:55 | |
| 74 | Responding to Key Press Events | 19:13 | |
| 75 | Back-End Aspect of Search | 15:41 | |
| 76 | Generating HTML for Search Results (Part 1) | 10:06 | |
| 77 | Generating HTML for Search Results (Part 2) | 10:48 | |
| 78 | Sanitizing User Generated HTML on the Front-End | 08:13 | |
| 79 | Letting Users Follow Each Other | 12:26 | |
| 80 | Saving a "Follow" Action Into Our Database | 12:26 | |
| 81 | Stop Following a User (Part 1) | 13:49 | |
| 82 | Stop Following a User (Part 2) | 13:17 | |
| 83 | Profile Followers Screen (Part 1) | 10:27 | |
| 84 | Profile Followers Screen (Part 2) | 15:26 | |
| 85 | Following Screen (Part 1) | 13:30 | |
| 86 | Following Screen (Part 2) | 17:31 | |
| 87 | Homepage Feed (Posts From Those You Follow) | 19:33 | |
| 88 | Beginning Chat Feature | 19:38 | |
| 89 | Socket.IO (Part 1) | 10:44 | |
| 90 | Socket.IO (Part 2) | 11:43 | |
| 91 | Finishing Chat (Part 1) | 13:40 | |
| 92 | Finishing Chat (Part 2) | 19:57 | |
| 93 | Quick Misc. Feature: Dynamic Title Tag | 07:42 | |
| 94 | Live Form Validation (Part 1) | 18:42 | |
| 95 | Live Form Validation (Part 2) | 18:23 | |
| 96 | Live Form Validation (Part 3) | 19:59 | |
| 97 | Live Form Validation (Part 4) | 19:09 | |
| 98 | Preventing Cross-Site Request Forgery (CSRF) | 19:59 | |
| 99 | Adjusting Our App To Use CSRF Token | 13:05 | |
| 100 | Setting Up The Skeleton for an API | 19:42 | |
| 101 | JSON Web Tokens (Part 1) | 11:38 | |
| 102 | JSON Web Tokens (Part 2) | 13:48 | |
| 103 | Finishing API and Understanding CORS | 19:11 | |
| 104 | Pushing Our Complex App Up Onto The Web | 14:16 | |
| 105 | Sending Email From Our App | 15:26 | |
| 106 | Next Steps & Career Advice | 19:54 |
Get instant access to all 105 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.
Learn more about subscriptionCourse content
106 lessons · 27h 6m 45sShow all 106 lessons
- 1 Where Do We Begin? 10:06
- 2 Getting Started 16:31
- 3 Functions 19:59
- 4 Objects 19:44
- 5 Arrays 19:48
- 6 Making Decisions 18:37
- 7 Higher-Order Functions 18:20
- 8 Returning vs Mutating 19:39
- 9 Scope & Context (Part 1) 17:43
- 10 Scope & Context (Part 2) 14:54
- 11 Miscellaneous Info (Part 1) 13:33
- 12 Miscellaneous Info (Part 2) 09:19
- 13 Building To-Do App (Part 1) 17:21
- 14 Building To-Do App (Part 2) 10:14
- 15 Why Do We Need a Server? 11:24
- 16 Node.js Intro 10:22
- 17 Text Editor Software 10:49
- 18 Our First Basic Server 19:54
- 19 Express Intro (Part 1) 10:14
- 20 Express Intro (Part 2) 19:49
- 21 What's Next? (Big Picture) 14:04
- 22 First Taste of a Database 10:58
- 23 CRUD: Actually Working With A Database 14:05
- 24 Initial Setup for App #1 18:03
- 25 Save Time: Automatic Node App Restarts 09:13
- 26 Connecting Node App to Database 19:59
- 27 Reading Data from a Database 17:25
- 28 Updating a Database Item (Part 1) 19:59
- 29 Updating a Database Item (Part 2) 19:56
- 30 Deleting a Database Item 12:56
- 31 Create New Item Without Page Reload 19:58
- 32 Client-Side Rendering 10:18
- 33 What About Security? 19:55
- 34 Pushing Our App Onto The Internet 19:20
- 35 What's Next? 08:04
- 36 Let's Begin App #2 18:40
- 37 What Is A Router? 14:12
- 38 What Is A Controller? 17:53
- 39 What Is A Model? 19:59
- 40 Adding Validation To Our Model 19:59
- 41 Quick Misc. Clean Up 08:02
- 42 Connecting To Database In a Reusable Fashion 17:13
- 43 Best Practice Time Out: Environment Variables 10:11
- 44 Letting Users Log In 18:38
- 45 What is a Promise? (Part 1) 19:33
- 46 What is a Promise? (Part 2) 14:25
- 47 Hashing User Passwords 13:54
- 48 How Can We "Identify" or "Trust" a Request? 19:18
- 49 Understanding Sessions 19:08
- 50 Letting Users Logout 11:58
- 51 Adding Flash Messages 16:29
- 52 User Registration Improvements (Part 1) 17:42
- 53 User Registration Improvements (Part 2) 12:02
- 54 Adding User Profile Photos 15:37
- 55 Letting Users Create Posts (Part 1) 17:32
- 56 Letting Users Create Posts (Part 2) 12:18
- 57 Post Model (Part 1) 20:00
- 58 Post Model (Part 2) 07:17
- 59 Viewing a Post (Part 1) 07:46
- 60 Viewing a Post (Part 2) 19:11
- 61 Performing a Lookup in MongoDB (Part 1) 16:51
- 62 Performing a Lookup in MongoDB (Part 2) 08:15
- 63 User Profile Screen 18:11
- 64 View Posts by Author 19:48
- 65 Is the Current Visitor the Owner of the Post? 12:54
- 66 The "Edit" Screen for a Post 08:51
- 67 Updating Posts in Database (Part 1) 10:52
- 68 Updating Posts in Database (Part 2) 18:58
- 69 Miscellaneous Improvements 14:56
- 70 Markdown: Safe User Generated HTML 15:45
- 71 Let Users Delete a Post 13:59
- 72 Staying Organized: Front-End JavaScript 19:58
- 73 Showing and Hiding Search Overlay 16:55
- 74 Responding to Key Press Events 19:13
- 75 Back-End Aspect of Search 15:41
- 76 Generating HTML for Search Results (Part 1) 10:06
- 77 Generating HTML for Search Results (Part 2) 10:48
- 78 Sanitizing User Generated HTML on the Front-End 08:13
- 79 Letting Users Follow Each Other 12:26
- 80 Saving a "Follow" Action Into Our Database 12:26
- 81 Stop Following a User (Part 1) 13:49
- 82 Stop Following a User (Part 2) 13:17
- 83 Profile Followers Screen (Part 1) 10:27
- 84 Profile Followers Screen (Part 2) 15:26
- 85 Following Screen (Part 1) 13:30
- 86 Following Screen (Part 2) 17:31
- 87 Homepage Feed (Posts From Those You Follow) 19:33
- 88 Beginning Chat Feature 19:38
- 89 Socket.IO (Part 1) 10:44
- 90 Socket.IO (Part 2) 11:43
- 91 Finishing Chat (Part 1) 13:40
- 92 Finishing Chat (Part 2) 19:57
- 93 Quick Misc. Feature: Dynamic Title Tag 07:42
- 94 Live Form Validation (Part 1) 18:42
- 95 Live Form Validation (Part 2) 18:23
- 96 Live Form Validation (Part 3) 19:59
- 97 Live Form Validation (Part 4) 19:09
- 98 Preventing Cross-Site Request Forgery (CSRF) 19:59
- 99 Adjusting Our App To Use CSRF Token 13:05
- 100 Setting Up The Skeleton for an API 19:42
- 101 JSON Web Tokens (Part 1) 11:38
- 102 JSON Web Tokens (Part 2) 13:48
- 103 Finishing API and Understanding CORS 19:11
- 104 Pushing Our Complex App Up Onto The Web 14:16
- 105 Sending Email From Our App 15:26
- 106 Next Steps & Career Advice 19:54
Related courses
-

Become a WordPress Developer: Unlocking Power With Code
By: UdemyLearn PHP, JavaScript, WordPress theming & the WP REST API to Create Custom & Interactive WordPress Websites.41 hours 45 minutes 55 seconds 5 / 5 -

ES6 for Everyone: Master Modern JavaScript
By: Wes BosStrengthen your JavaScript skills with the ES6 for Everyone course. Learn features like arrow functions, promises, and modules to enhance code efficiency and7 hours 36 minutes -

Full-Stack Vue with GraphQL - The Ultimate Guide
By: UdemyThis entire course within the context of a practical application that we will build literally from the first line of code to live deployment on the web. We'll b9 hours 52 minutes 3 seconds