Introduction - Video Tutorials & Practice Problems
Video duration:
4m
Play a video:
<v ->Hello, I'm Michael Hartl,</v> author of learn enough JavaScript to be dangerous. This tutorial is designed to get you started writing practical and modern JavaScript programs as fast as possible, using the latest JavaScript technologies, and with the focus on the real tools used every day by software developers. JavaScript is a big language with correspondingly enormous tutorials. The good news though, is that you don't have to learn everything to get started. You just have to learn enough to be dangerous. Although a background in programming is useful for this tutorial, it's definitely not required. Learn enough JavaScript assumes only a familiarity with the command-line text editors and Git such as provided by Learn Enough Developer Tools to be Dangerous and HTML such as provided by Learn enough HTML, CSS and Layout to be Dangerous. In addition, some familiarity with CSS is helpful but the amount covered in part one of learn enough HTML, CSS and layout is sufficient. Unlike most JavaScript tutorials Learn Enough JavaScript to be Dangerous treats JavaScript as a general purpose programming language right from the start. So our examples won't be confined to the browser. In addition to interactive HTML websites you'll learn how to write command-line programs and self-contained JavaScript packages as well. We'll even have a chance to explore important software development practices like Version-control functional programming, and test driven development. The result is a practical narrative introduction to JavaScript. A perfect compliment both to in-browser coding tutorials, and to the voluminous but hard to navigate JavaScript reference materials on the web. Lesson one begins with a classic Hello World program done both in a browser and at the command-line. In lessons two, three and four, you'll learn about JavaScript data structures. Like Strings, Arrays, Numbers, Dates, and regular expressions. As part of this, you'll learn the basics of object oriented programming in JavaScript. In lesson five, you'll learn about Functions, an essential subject for nearly any programming language. Then in lesson six, you'll learn an elegant and powerful style of coding known as Functional Programming. In lesson seven, you'll learn the basics of the JavaScript object system including so-called Prototypes and modifying native objects. Lesson eight, shows you how to write tests in JavaScript and how to develop software, using Test-Driven development. You'll also learn how to create, and publish a self-contained JavaScript software package called an NPM module. In lesson nine, You'll use the NPM module from the previous lesson to make an interactive website that detects Palindromes based on user input. This will give us a chance to learn about events and manipulation of the Document Object Model or DOM. We'll start with the simplest possible implementation, and then add several extensions of steadily increasing sophistication, including alerts, prompts and an example of an HTML form. In lesson 10, you'll learn how to write nontrivial Shell Scripts using JavaScript a much neglected topic, that underscores JavaScript's growing importance as a general purpose programming language. Examples include reading both from files and URLs with a final example, showing how to manipulate a downloaded file as if it were an HTML webpage. In lesson 11, we'll apply the techniques from lessons 9 and 10 to a real industrial grade website. In particular, we'll extend the sample application, from learn enough HTML, CSS, and layout, to be dangerous to add a functional image gallery that dynamically changes images, CSS classes, and page text in response to user clicks. The result will be a professional grade website deployed to the live web. In addition to teaching you specific skills Learn Enough JavaScript to Be Dangerous. Also helps you develop technical sophistication the seemingly magical ability to solve practically any technical problem yourself, Technical sophistication includes concrete skills like Version-control and HTML, as well as fuzzier skills, like googling the error message and knowing when to just reboot the darn thing. Throughout, Learn Enough JavaScript to Be Dangerous. We'll have abundant opportunities to develop technical sophistication in the context of real-world examples.