We may earn an affiliate commission when you visit our partners.
Course image
The Net Ninja (Shaun Pelling)

Hey gang, and welcome to your first step on the path to becoming a JavaScript ninja. In this course I'll be teaching you my absolute favourite language (JavaScript. ) from the very beginning, right through to creating fully-fledged, dynamic & interactive web experiences.

Read more

Hey gang, and welcome to your first step on the path to becoming a JavaScript ninja. In this course I'll be teaching you my absolute favourite language (JavaScript. ) from the very beginning, right through to creating fully-fledged, dynamic & interactive web experiences.

We'll cover all the basics to get you up-and-running quickly, before diving in to some of the really fun stuff like web-page manipulation, creating interactive forms, popups & other cool effects. Along the way we'll be using the latest additions to the JavaScript specification (ES6, 7 & beyond) and maintaining good coding standards to keep our code clean and effective.

Once we master the basics, we'll dive into several real-life JavaScript projects, including an interactive quiz, a weather app, a real-time chat application and a small UI library you can use in all your future projects.

We'll also take a look at some more advanced topics - object oriented programming, asynchronous code, real-time databases using Firebase (including a new chapter about Firebase 9) and much more. Finally, we'll be setting up a modern work-flow using Webpack & Babel, so that by the end of this course you'll be no less than a black-belt JavaScript developer with a lot of coding techniques in your tool-belt.

Speaking of ninjas, I'm also known as The Net Ninja on YouTube, where you'll find hundreds of free coding tutorials, so feel free to pop by to say hello :).

Enroll now

What's inside

Learning objectives

  • Learn how to program with modern javascript, from the very beginning to more advanced topics
  • Learn all about oop (object-oriented programming) with javascript, working with prototypes & classes
  • Learn how to create real-world front-end applications with javascript (quizes, weather apps, chat rooms etc)
  • Learn how to make useful javascript driven ui components like popups, drop-downs, tabs, tool-tips & more.
  • Learn how to use modern, cutting-edge javascript features today by using a modern workflow (babel & webpack)
  • Learn how to use real-time databases to store, retrieve and update application data
  • Explore api's to make the most of third-party data (such as weather information)

Syllabus

An introduction to the whole course and how to set up a good working environment.
Why You Should Take This Course
Why JavaScript is Amazing
Setting up Your Environment
Read more
Course Files
JavaScript Basics
Adding JavaScript to a Web Page
The Browser Console
Variables, Constants & Comments
Data Types at a Glance
Strings
Common String Methods
Numbers
Template Strings
Arrays
Null & Undefined
Booleans & Comparisons
Loose vs Strict Comparison
Type Conversion
Control Flow Basics
What is Control Flow?
For Loops
While Loops
Do While Loops
If Statements
Else & Else If
Logical Operators
Logical NOT
Break & Continue
Switch Statements
Variables & Block Scope
Functions & Methods
What are Functions?
Function Declarations & Expressions
Arguments & Parameters
Returning Values
Arrow Functions
Functions vs Methods
Foreach Method & Callbacks
Callback Functions in Action
Object Literals
Objects at a Glance
Creating an Object Literal
Adding Methods
'this' Keyword
Objects in Arrays
Math Object
Primitive vs Reference Types
The Document Object Model
Interacting with the Browser
The DOM Explained
The Query Selector
Other Ways to Query the DOM
Adding & Changing Page Content
Getting & Setting Attributes
Changing CSS Styles
Adding & Removing Classes
Parents, Children & Siblings
Event Basics (click events)
Creating & Removing Elements
Event Bubbling (and delegation)
More DOM Events
Building a Popup
Forms & Form Events
Events Inside Forms
Submit Events
Regular Expressions
Testing RegEx Patterns
Basic Form Validation
Keyboard Events
In this section we'll combine everything together that we've learnt about JavaScript events, forms & the DOM to make an interactive quiz.
Project Preview & Setup
Bootstrap Basics
HTML Template
Checking Answers
Showing the Score
The Window Object
Intervals & Animating the Score
In this chapter we'll take a closer look at arrays & some of the really useful methods we can use on them.
Filter Method
Map Method
Reduce Method
Find Method
Sort Method
Chaining Array Methods
In this chapter we'll put our new-found knowledge about arrays and array methods to good use by making a filterable todo list project.
Project Preview and Setup
HTML & CSS Template
Adding Todos
Deleting Todos
Searching & Filtering Todos
Dates & Times
Dates & Times in JavaScript
Timestamps & Comparisons
Building a Digital Clock
Date-fns Library
Async JavaScript
What is Asynchronous JavaScript?
Async Code in Action
What are HTTP Requests?

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Builds a strong foundation for learners in JavaScript web development
Develops skills and knowledge that are highly relevant to industry web development
Deepens understanding of modern cutting-edge JavaScript features
Provides a comprehensive study of JavaScript, from basic to advanced topics
Takes a creative approach to teaching JavaScript, making it enjoyable learning
Utilizes multi-modal approach with videos, readings, and discussions to enhance learning

Save this course

Save Modern JavaScript (Complete guide, from Novice to Ninja) to your list so you can find it easily later:
Save

Reviews summary

Beginners' javascript overview

Learners say that this beginner-friendly course provides an engaging and well-paced overview of core JavaScript. Students praise the instructor's clear and engaging teaching style and appreciate the practical assignments and real-world examples that help them apply their knowledge. Despite the positive feedback, a few learners express a desire for more in-depth content and guidance on deploying their projects.
The instructor is knowledgeable and presents the material in an engaging way.
"The instructor is very clear and easy to understand."
"I really enjoyed the instructor's teaching style."
"The instructor is very passionate about the subject matter."
This course is a great option for those new to JavaScript.
"Easy to follow for beginners."
"I had no prior knowledge of JavaScript and I was able to follow along."
"The instructor does a great job of explaining the concepts in a clear and concise way."
The assignments and examples are practical and help you apply your knowledge.
"I liked that the assignments were practical and helped me apply what I was learning."
"The real-world examples were very helpful."
"The course provides a good balance of theory and practice."
Some learners wished for more guidance on deploying their projects.
"I wish there was more guidance on deploying my projects."
"I would have liked to see a section on how to deploy my projects to a live server."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Modern JavaScript (Complete guide, from Novice to Ninja) with these activities:
Find a JavaScript mentor
Identify an experienced JavaScript developer who can provide guidance, support, and advice to accelerate your learning journey.
Show steps
  • Attend industry events or join online communities to connect with potential mentors.
  • Reach out to your professional network for referrals.
  • Interview potential mentors to find the best fit for your needs.
  • Establish clear expectations and goals with your mentor.
  • Meet regularly with your mentor and seek their guidance.
Compile a collection of JavaScript resources
Gather and organize valuable JavaScript resources, including documentation, tutorials, and articles, to create a comprehensive reference for your own use and to share with others.
Show steps
  • Identify and collect relevant JavaScript resources from various sources.
  • Organize the resources into categories or topics.
  • Create a central repository or document to store the compiled resources.
  • Continuously update and expand your collection as new resources become available.
  • Share your compilation with the JavaScript community.
Attend a JavaScript workshop
Participate in a workshop led by experienced JavaScript developers to gain practical knowledge, learn new techniques, and connect with other learners.
Show steps
  • Research and identify relevant JavaScript workshops in your area or online.
  • Register for a workshop that aligns with your learning objectives.
  • Attend the workshop and actively participate in the sessions.
  • Engage with the instructors and other attendees.
  • Follow up after the workshop by practicing what you learned.
Three other activities
Expand to see all activities and additional details
Show all six activities
Build a portfolio of small JS projects
Create a portfolio of small JavaScript projects to solidify your understanding of the fundamentals and practice your coding skills.
Show steps
  • Choose a project idea that interests you and aligns with your learning goals.
  • Plan out the project structure and create a basic HTML and CSS framework.
  • Implement JavaScript functionality to bring the project to life.
  • Test and debug your code to ensure it works as expected.
  • Document your code and add it to your portfolio.
Create a JavaScript library
Design and develop a reusable JavaScript library to enhance your coding efficiency and demonstrate your understanding of modular programming.
Browse courses on Reusable Code
Show steps
  • Identify a specific problem or functionality that your library will address.
  • Plan the architecture and structure of your library.
  • Write the JavaScript code for your library.
  • Test and debug your library thoroughly.
  • Document your library and make it available for others to use.
Mentor junior JavaScript developers
Share your knowledge and expertise by mentoring junior JavaScript developers, reinforcing your understanding while fostering their growth.
Show steps
  • Identify opportunities to mentor junior developers through online platforms or local meetups.
  • Prepare materials and resources to support your mentees.
  • Meet regularly with your mentees to provide guidance and support.
  • Provide constructive feedback and encourage their progress.
  • Reflect on your mentoring experience and seek continuous improvement.

Career center

Learners who complete Modern JavaScript (Complete guide, from Novice to Ninja) will develop knowledge and skills that may be useful to these careers:
Front-End Engineer
Front-End Engineers are responsible for the design and development of the visual interface of a website or web application. They work closely with designers to create a visually appealing and user-friendly experience. JavaScript is one of the most important languages for Front-End Engineers, as it allows them to create interactive and dynamic web pages. This course will teach you all the basics of JavaScript, from the very beginning to more advanced topics, so that you can become a successful Front-End Engineer.
Web Developer
Web Developers are responsible for the development and maintenance of websites. They work with a variety of programming languages, including JavaScript, to create websites that are both functional and visually appealing. This course will teach you all the basics of JavaScript, from the very beginning to more advanced topics, so that you can become a successful Web Developer.
Software Developer
Software Developers are responsible for the design, development, and maintenance of software applications. They work with a variety of programming languages, including JavaScript, to create software that is both functional and efficient. This course will teach you all the basics of JavaScript, from the very beginning to more advanced topics, so that you can become a successful Software Developer.
Full-Stack Developer
Full-Stack Developers are responsible for both the front-end and back-end development of web applications. They work with a variety of programming languages, including JavaScript, to create web applications that are both functional and visually appealing. This course will teach you all the basics of JavaScript, from the very beginning to more advanced topics, so that you can become a successful Full-Stack Developer.
UX Designer
UX Designers are responsible for the design of the user experience of a website or web application. They work closely with Front-End Engineers to create a visually appealing and user-friendly experience. JavaScript is one of the most important languages for UX Designers to learn, as it allows them to create interactive and dynamic web pages. This course will teach you all the basics of JavaScript, from the very beginning to more advanced topics, so that you can become a successful UX Designer.
Product Manager
Product Managers are responsible for the development and management of a product. They work with a variety of stakeholders, including engineers, designers, and marketing professionals, to ensure that the product is successful. JavaScript is one of the most important languages for Product Managers to learn, as it allows them to understand the technical aspects of the product and to communicate effectively with engineers. This course will teach you all the basics of JavaScript, from the very beginning to more advanced topics, so that you can become a successful Product Manager.
Data Analyst
Data Analysts are responsible for the collection, analysis, and interpretation of data. They work with a variety of programming languages, including JavaScript, to create data visualizations and reports that can be used to make informed decisions. This course will teach you all the basics of JavaScript, from the very beginning to more advanced topics, so that you can become a successful Data Analyst.
Business Analyst
Business Analysts are responsible for the analysis of business processes and the identification of opportunities for improvement. They work with a variety of stakeholders, including executives, managers, and employees, to gather information and develop solutions that can help the business achieve its goals. JavaScript is one of the most important languages for Business Analysts to learn, as it allows them to automate tasks and create data visualizations that can be used to support their analysis. This course will teach you all the basics of JavaScript, from the very beginning to more advanced topics, so that you can become a successful Business Analyst.
Project Manager
Project Managers are responsible for the planning, execution, and closure of projects. They work with a variety of stakeholders, including team members, clients, and executives, to ensure that the project is successful. JavaScript is one of the most important languages for Project Managers to learn, as it allows them to automate tasks and create data visualizations that can be used to track progress and identify risks. This course will teach you all the basics of JavaScript, from the very beginning to more advanced topics, so that you can become a successful Project Manager.
Technical Writer
Technical Writers are responsible for the creation of technical documentation, such as user manuals, white papers, and training materials. They work with a variety of stakeholders, including engineers, marketers, and customers, to gather information and develop documentation that is clear and easy to understand. JavaScript is one of the most important languages for Technical Writers to learn, as it allows them to create interactive and dynamic documentation that can be used to support users.
Quality Assurance Analyst
Quality Assurance Analysts are responsible for the testing of software applications to ensure that they are free of defects. They work with a variety of stakeholders, including engineers, product managers, and customers, to identify and fix defects. JavaScript is one of the most important languages for Quality Assurance Analysts to learn, as it allows them to automate tests and create data visualizations that can be used to track progress and identify risks.
IT Support Specialist
IT Support Specialists are responsible for the provision of technical support to users. They work with a variety of stakeholders, including employees, customers, and vendors, to resolve technical issues and ensure that systems are running smoothly. JavaScript is one of the most important languages for IT Support Specialists to learn, as it allows them to automate tasks and create data visualizations that can be used to track progress and identify risks.
Database Administrator
Database Administrators are responsible for the management and maintenance of databases. They work with a variety of stakeholders, including engineers, product managers, and customers, to ensure that databases are running smoothly and that data is secure. JavaScript is one of the most important languages for Database Administrators to learn, as it allows them to automate tasks and create data visualizations that can be used to track progress and identify risks.
Network Administrator
Network Administrators are responsible for the management and maintenance of computer networks. They work with a variety of stakeholders, including engineers, product managers, and customers, to ensure that networks are running smoothly and that data is secure. JavaScript is one of the most important languages for Network Administrators to learn, as it allows them to automate tasks and create data visualizations that can be used to track progress and identify risks.
Systems Analyst
Systems Analysts are responsible for the analysis and design of computer systems. They work with a variety of stakeholders, including engineers, product managers, and customers, to gather information and develop solutions that can help the organization achieve its goals. JavaScript is one of the most important languages for Systems Analysts to learn, as it allows them to automate tasks and create data visualizations that can be used to support their analysis.

Reading list

We've selected ten books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Modern JavaScript (Complete guide, from Novice to Ninja).
Classic in the JavaScript community and is highly recommended for anyone who wants to learn the language well.
Comprehensive and well-written guide to JavaScript that is suitable for both beginners and experienced developers.
Fast-paced guide to JavaScript that is perfect for experienced programmers who want to learn the language quickly.
Comprehensive and authoritative guide to JavaScript that is suitable for both beginners and experienced developers.
Practical guide to JavaScript that is focused on helping web developers use the language effectively.
Practical guide to functional programming in JavaScript that is suitable for both beginners and experienced developers.
Collection of JavaScript design patterns that are useful for both beginners and experienced developers.

Share

Help others find this course page by sharing it with your friends and followers:
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser