We may earn an affiliate commission when you visit our partners.
Course image
Anthony Alicea

Truly knowing Javascript will get you a job, and enable you to build quality web and server applications.

NOTE: This course includes information on ECMAScript 6 (ES6) the next version of Javascript.

You will find clarity in the parts that others, even experienced coders, may find weird, odd, and at times incomprehensible. You'll learn the beauty and deceptive power of this language that is at the forefront of modern software development today.

Read more

Truly knowing Javascript will get you a job, and enable you to build quality web and server applications.

NOTE: This course includes information on ECMAScript 6 (ES6) the next version of Javascript.

You will find clarity in the parts that others, even experienced coders, may find weird, odd, and at times incomprehensible. You'll learn the beauty and deceptive power of this language that is at the forefront of modern software development today.

We'll take a deep dive into the source code of popular frameworks such as jQuery and Underscore to see how you can use your understanding of Javascript to learn (and borrow) from other's good code.

Finally, you'll learn the foundations of how to build your own Javascript framework or library.

What you'll learn in this course will make you a better Javascript developer, and improve your abilities in AngularJS, NodeJS, jQuery, React, Ember, MongoDB, and all other Javascript-based technologies.

Learn to love Javascript, and code in it well.

Note: In this course you'll also get downloadable source code. You will often be provided with 'starter' code, giving you the base for you to start writing your code, and 'finished' code to compare your code to.

Enroll now

What's inside

Learning objectives

  • Grasp how javascript works and it's fundamental concepts
  • Write solid, good javascript code
  • Understand advanced concepts such as closures, prototypal inheritance, iifes, and much more.
  • Drastically improve your ability to debug problems in javascript.
  • Avoid common pitfalls and mistakes other javascript coders make
  • Understand the source code of popular javascript frameworks
  • Build your own javascript framework or library

Syllabus

Getting Started
Introduction and The Goal of This Course
Setup
Setup (Visual Studio Code)
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Teaches foundational JavaScript concepts and advanced topics, making it suitable for both beginners and experienced coders
Provides a deep dive into popular frameworks like jQuery and Underscore, enabling learners to enhance their understanding of JavaScript
Focuses on building a strong foundation in JavaScript, which is essential for success in web and server-side development
Taught by Anthony Alicea, an experienced instructor recognized for his expertise in JavaScript
Includes downloadable source code and starter code to assist learners in their coding journey
May not be suitable for learners with no prior programming experience

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Demystifying javascript's core mechanics

According to learners, this course is a game-changer for understanding JavaScript's deeper intricacies, especially its often-called 'weird parts'. Students consistently praise the instructor's exceptional ability to clarify complex topics like execution contexts, hoisting, closures, and prototypal inheritance. While not for absolute beginners, it is highly recommended for developers with some prior JavaScript experience looking to drastically improve their debugging skills and comprehend how popular frameworks operate. Recent reviews confirm the course's continued relevance and value, including its coverage of ES6 features.
Ideal for developers with some JavaScript experience, not absolute beginners.
"Decent, but not for absolute beginners. I found myself lost quite a few times, especially when the instructor moved quickly..."
"It's good if you already have intermediate knowledge and want to deepen it, but the title might be misleading for some."
"While it assumes some basic JS knowledge, it doesn't shy away from explaining advanced concepts thoroughly."
The course content, including ES6, remains highly relevant for modern JavaScript.
"The ES6 updates are a welcome addition."
"While some examples could be more modern, the core principles remain relevant."
"This course has definitely stood the test of time and still provides immense value for understanding JS fundamentals."
Improves debugging skills and aids in understanding real-world JavaScript frameworks.
"My debugging skills have vastly improved."
"The deep dive into jQuery source was an eye-opener."
"This has made me so much more confident in writing robust and maintainable code, particularly when dealing with frameworks."
Features an instructor highly skilled at simplifying complex JavaScript topics.
"The instructor breaks down complex topics into digestible pieces, and the analogies he uses really stick."
"The instructor's passion is infectious."
"I appreciate how the instructor patiently explains everything, even the difficult bits, making it easy to follow."
Provides exceptionally clear explanations of JavaScript's fundamental workings.
"This course finally made JavaScript's internal workings click for me. The explanations of execution contexts, hoisting, and closures are crystal clear."
"The instructor's ability to explain complex topics like prototypal inheritance and 'this' keyword in such an accessible way is unparalleled."
"I truly feel like I understand JavaScript on a much deeper level now. It's not just about what to do, but why it works that way."
Some sections are thorough, while others may feel rushed or too basic.
"Some parts on building a framework felt a bit rushed towards the end, but overall, it delivers on its promise."
"I felt some sections were a bit slow-paced, and then others jumped ahead too quickly."
"The framework building section felt a bit basic, but the jQuery deep dive was excellent for understanding real-world code."

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 JavaScript: Understanding the Weird Parts with these activities:
Review basic Javascript concepts
Familiarize yourself with the fundamentals of Javascript.
Browse courses on JavaScript
Show steps
  • Revise the syntax of Javascript.
  • Review basic programming constructs like variables, data types, and control flow.
  • Practice writing simple Javascript functions.
Follow online tutorials for intermediate Javascript
Supplement your learning with tutorials on advanced Javascript concepts.
Browse courses on JavaScript
Show steps
  • Search for online tutorials covering topics like closures, prototypal inheritance, and event handling.
  • Follow the tutorials step-by-step and implement the concepts in your own code.
  • Troubleshoot any errors you encounter.
Read classic Javascript books like Eloquent Javascript
Gain a deeper understanding of Javascript from an authoritative source.
Show steps
  • Get a copy of the book.
  • Read the book thoroughly.
  • Take notes and highlight important concepts.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Solve coding challenges on online platforms
Test your understanding of Javascript by solving coding challenges.
Browse courses on JavaScript
Show steps
  • Register on online coding platforms like Codewars or LeetCode.
  • Choose a challenge that matches your skill level.
  • Implement your solution in Javascript.
  • Submit your solution and review the feedback.
Write blog posts or articles about Javascript topics
Reinforce your understanding of Javascript by explaining concepts to others.
Browse courses on JavaScript
Show steps
  • Choose a Javascript topic that you are familiar with.
  • Research and gather information on the topic.
  • Write a well-structured blog post or article.
  • Publish your content on a blog or website.
Build a personal website or web application
Solidify your Javascript skills by creating a practical project.
Browse courses on JavaScript
Show steps
  • Plan and design your website or web application.
  • Implement the frontend and backend using Javascript.
  • Test and debug your project.
  • Deploy your project online.
Contribute to open-source Javascript projects
Gain practical experience and make a valuable contribution to the Javascript community.
Browse courses on JavaScript
Show steps
  • Find an open-source Javascript project that interests you.
  • Read the project documentation and understand the codebase.
  • Identify an issue or feature that you can contribute to.
  • Fork the project and make your changes.
  • Submit a pull request and collaborate with the project maintainers.
Participate in Javascript hackathons or coding contests
Challenge yourself and showcase your Javascript abilities in a competitive setting.
Browse courses on JavaScript
Show steps
  • Find a Javascript hackathon or coding contest that aligns with your interests.
  • Form a team or work solo.
  • Develop a solution to the challenge.
  • Submit your solution and wait for the results.

Career center

Learners who complete JavaScript: Understanding the Weird Parts will develop knowledge and skills that may be useful to these careers:
JavaScript Developer
JavaScript Developers specialize in designing, developing, and maintaining web and software applications using JavaScript. This course provides in-depth knowledge of the fundamentals of JavaScript and its advanced concepts, making it a valuable resource for JavaScript Developers who want to advance their skills and understanding of the language.
Full-Stack Developer
Full-Stack Developers have expertise in both front-end and back-end development. As JavaScript is used throughout the stack, from user interfaces to server-side logic, this course offers a comprehensive understanding of JavaScript, enabling Full-Stack Developers to build complete web applications confidently.
Front-End Developer
Front-End Developers focus on the user interface and experience of a website or application. JavaScript is a cornerstone of front-end development for creating interactive elements and enhancing user interaction. This course offers a comprehensive understanding of JavaScript, enabling Front-End Developers to build dynamic and engaging user interfaces.
Back-End Developer
Back-End Developers handle the server-side logic and data management of web applications. Node.js, a JavaScript runtime environment, has gained popularity for back-end development. This course provides a solid foundation in JavaScript and its concepts, equipping Back-End Developers with the knowledge to build robust and scalable back-end systems.
Computer Programmer
Computer Programmers write and maintain the code that powers software applications and systems. JavaScript is widely used in various domains, including web development, mobile apps, and server-side programming. This course offers a comprehensive understanding of JavaScript's fundamentals and advanced concepts, enabling Computer Programmers to confidently develop and maintain robust software solutions.
Web Developer
Web Developers are responsible for the design and development of websites and web applications. Since JavaScript is widely used for interactive web elements and dynamic content, having a strong understanding of JavaScript is essential for Web Developers. This course delves into the intricacies of JavaScript, helping you gain a deeper understanding and become a more proficient Web Developer.
Machine Learning Engineer
Machine Learning Engineers design and develop machine learning models and systems. JavaScript is used in machine learning for tasks such as data preprocessing, model training, and visualization. This course provides a comprehensive understanding of JavaScript and its libraries for machine learning. By taking this course, Machine Learning Engineers can gain the necessary skills to build and deploy machine learning models effectively.
Technical Lead
Technical Leads mentor and guide software development teams. They ensure the technical quality and efficiency of software projects. This course provides a comprehensive understanding of JavaScript and its advanced concepts. By gaining this knowledge, Technical Leads can effectively support and direct their teams in developing high-quality software solutions.
Mobile Developer
Mobile Developers create and maintain applications for mobile devices such as smartphones and tablets. JavaScript frameworks like React Native allow developers to build cross-platform mobile apps. This course provides a solid understanding of JavaScript and its frameworks, making it beneficial for Mobile Developers who want to expand their skillset and confidently build mobile applications.
Data Scientist
Data Scientists use scientific methods and algorithms to extract insights from data. JavaScript is increasingly used for data analysis and visualization. This course offers a solid foundation in JavaScript and its libraries for data manipulation and visualization. By taking this course, Data Scientists can expand their skillset and enhance their ability to analyze and present data effectively.
Software Quality Assurance Analyst
Software Quality Assurance Analysts test and evaluate software to ensure it meets quality standards. They often work with developers to identify and resolve issues. This course provides a deep understanding of JavaScript and its advanced concepts, enabling Software Quality Assurance Analysts to effectively evaluate the quality of JavaScript code and identify potential problems.
Software Architect
Software Architects design and oversee the development of software systems. They need a deep understanding of programming languages and their applications. JavaScript, being a versatile language used in various domains, is valuable for Software Architects. This course offers insights into the intricacies of JavaScript, helping Software Architects make informed decisions and effectively guide software development projects.
Software Engineer
Software Engineers use computer science theory and software development to analyze user needs, design applications, and create solutions using software coding. Understanding Javascript is crucial in this role as it is an essential language for web development and software applications. This course can help build a foundation in JavaScript and expand your understanding of its more complex aspects to become a more well-rounded Software Engineer.
Computer Scientist
Computer Scientists research and develop new computing technologies and applications. JavaScript, being a versatile language with a wide range of applications, is often used in research and development projects. This course provides a deep understanding of JavaScript's core concepts and advanced features, enabling Computer Scientists to leverage the language effectively in their research and development endeavors.
UI/UX Designer
UI/UX Designers focus on the user experience and interface of digital products. While not directly coding in JavaScript, having a solid understanding of JavaScript's capabilities and limitations can help UI/UX Designers create more informed designs that are feasible and align with the technical implementation.

Reading list

We've selected 14 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 JavaScript: Understanding the Weird Parts.
Comprehensive reference guide to JavaScript. It covers everything from the basics to advanced topics.
JavaScript: The Good Parts must-read for any JavaScript developer. It provides a comprehensive overview of the language and its best practices.
Must-read for any software developer. It provides a detailed look at the principles and practices of clean code.
This practical book takes you on a guided tour of JavaScript with a friendly and thorough introduction that covers the basics to advanced topics.
Collection of techniques and best practices for JavaScript developers. It's a great choice for those who want to take their JavaScript skills to the next level.
Classic in the software development community. It provides a timeless look at the challenges and complexities of software development.
Provides a detailed look at variables, scope, types, and data structures. It's a great choice for those who want to build a solid foundation in JavaScript.
Provides a collection of common JavaScript patterns and techniques. It's a great choice for those who want to learn how to write more efficient and maintainable JavaScript code.
Practical guide to React. It covers everything from the basics to advanced topics.
Practical guide to AngularJS. It covers everything from the basics to advanced topics.
Practical guide to jQuery. It covers everything from the basics to advanced topics.
Comprehensive guide to Node.js. It covers everything from the basics to advanced topics.

Share

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

Similar courses

Similar courses are unavailable at this time. Please try again later.
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 - 2025 OpenCourser