JavaScript is a language that people would use without learning it first, which is by mistake that
you would not make in other language – Douglas Crockford

I’m a huge fan of Douglas Crockford, and that has a lot to do with how I learned JavaScript. Like many web developers, I generally loathed JavaScript until jQuery came along, and then I suddenly thought I understood the language. It wasn’t until I had to write non-trivial applications in JavaScript that I truly began to notice the huge gaps in my education. With the rise of server-side JavaScript and the constant deluge of new interesting things happening in the JavaScript community, I felt that I needed to catch up, quickly. I needed a master to learn from, and Douglas Crockford was the master I chose.

Who is this Douglas Crockford?

Douglas Crockford discovered JSON, you know, the language that relegated XML to second-class status? Everywhere I looked all you heard was Crockford this, Crockford that. JSLint will make you cry, they said. Let’s not even get started on the debate about semicolons. So clearly Crockford is an important character in the JavaScript world: serves on the ECMAScript board, former-chief JavaScript architect at Yahoo and now PayPal. Oh yeah, he also wrote a pretty popular book, JavaScript: The Good Parts. Douglas is also a master of hyperbole.

There is a ton of stuff to cover with Crockford, but his recorded talks are probably one of my favorite resources and frankly I fall asleep with these playing on my iPad quite regularly. If you are looking for some free JavaScript education, do yourself a favor and WATCH ALL OF HIS VIDEOS.

YUI Library Lectures

This is an awesome 8-part series of lectures given by Crockford while he was still Chief JavaScript Architect at Yahoo. This is a great starting point for anyone looking to learn more about JavaScript.

Volume 1 – The Early Years

In this video, Douglas Crockford covers pretty much the entire history of our industry! This video taught me about Grace Hopper and her contributions to programming, such as creating the first compiler and coining the term “bug”. He also covers CPU architecture, mainframes, and the first software. Too many programmers today don’t bother learning anything about the origin of programming and the fact that he was able to sum it up in just under two hours is quite impressive.

Chapter 2 – And Then There Was JavaScript

Here, Douglas Crockford discusses the origins and history of JavaScript, specifically it’s good bad parts and the dangerous bad parts. This is a great fundamental introduction to how this language actually works and frankly most people who watch this should pick up a lot of good information. This is a fairly technical talk.

Act III – Function the Ultimate

In this video, Crockford describes the very best part of JavaScript, functions. This is a critically important talk because Crockford covers often-misunderstood topics like hoisting, function hoisting, scope, closure, and recursion. He also covers JavaScript’s version of inheritance, both pseudo-classical and prototypal, a common source of confusion for JavaScript developers. This talk is very code heavy, so grab some Red Bull or coffee.

Episode IV – The Metamorphosis of Ajax

This video focuses on the origins of Ajax, which was born out of work by Microsoft and applied by Jesse James Garret to create the version of ajax we use today. Crockford also gives us a bit of history about HTML and how it evolved in the beginning, went on to evolve during the browser wars, and how it lead to the awful DOM we have today. There is a lot of talk about web standards and how browsers actually work, including the DOM. This is great video for users of modern libraries like jQuery to understand why those libraries exist in the first place.

Part V – The End of All Things

If you don’t have these vulnerabilities in your browser (XSS), it is not standards compliant. So there is something deeply, deeply wrong with the standards of the web.. -Douglas Crockford

This talk covers important topics like cross-site scripting attacks (XSS), browser vulnerabilities, including why HTML5 actually makes the situation worse. He also covers some interesting ideas about creating secure JavaScript code, such a programming by capability. Other topics covered are JavaScript performance and bench-marking  and more best practices, specifically discussing some of the rules in JSLint and how they came about.

Scene 6 – Loopage

This video talks about the Event Loop, one of the most important features of the JavaScript language. Crockford covers the origin of I/O, from the time-sharing mainframe systems of old, the user-friendly HyperCard for the Mac, and the danger of threads. He also discusses server and client architecture for modern web applications, using node and YUI to build fast, performant programs.

Level 7 – ECMAScript 5: The New Parts

This video has Douglas Talking about ECMAScript 5, and some of the challenges in designing the standard to replace ECMAScript 3. One of the interesting things I learned in this video is how difficult it is to actually move the standard forward (ECMAScript 3 has been out since 1999) and why it takes so long to make these changes (HINT: It’s about not breaking the web…and Microsoft). This talk gives a nice tour of some of the new features of the language and even offers some insights about where ES6/ESNext is going, which he hopes will fix some of the problems the ECMAScript 5 was unable to address.

Section 8 – Programming Style & Your Brain

JavaScript and brains? What’s the connection? -Douglas Crockford

This talk is mostly about how consistent programming style affects good habits and reduces errors in our code. This is probably one of the more controversial things Douglas Crockford is known for, considering how “subjective” most programmers are about coding style. Douglas tries to make the argument that these things are actually less subjective than we think  and that by following a consistent and rigorous style, we actually produce better code.

 

More Awesome Crockford Videos

Did you finish the YUI Lectures? Don’t worry, there are still a ton of great Crockford videos out there. I haven’t posted all of the ones I know about, just some of my favorites that I think are the most useful and entertaining.

Monads & Gonads

Douglas is always good with titles, but this talk doesn’t require balls to watch. Douglas talks about Haskell, and the concept of a Monad and how you can achieve this programming style in JavaScript. The topic of promises, concurrency and parallelism are also discussed in detail. I still haven’t gotten my head around this topic, so I’ve been watching this video frequently.

What Would Crockford Do?

Well, Yahoo had a big talent drain awhile ago, including one of their biggest assets, as Doug jumped over to PayPal. Never one to shy away from controversy, he gave a talk about how he would have run Yahoo had he been in charge of the company. I think there is an element of voyeurism here that makes it hard to stop watching and ultimately even though this isn’t really a technical talk, it is one of my favorite Crockford talks of all time.

JavaScript: Your New Overlord

For context, this talk was given at JAX, which is a Java and Android conference. In this talk Douglas pretty much talks smack about XML, the enterprise, JavaScript – and why JavaScript is now the language of the future in spite of how maligned it is by  developers in other languages. You get a nice overview of the history of the language and the good parts. Douglas also covers JavaScript as the ultimate VM, including languages that compile to JavaScript like CoffeeScript, and even old languages that are being compiled to JavaScript.

What else?

You can probably accuse me of being a Douglas Crockford fan by now, and you would be right. What I appreciate most about him is how he presents his opinions. His arguments are always backed up by some reasoning, no matter how opinionated. Some people do not agree with Crockford, and to those people I offer this except from Clean Code, a book by another on of my programming heroes, Robert Martin:

cleancodecover

Students of these approaches immerse themselves in the teachings of the founder. They dedicate themselves to learn what that particular master teaches, often to the exclusion of any other master’s teaching. Later, as the students grow in their art, they may become the student of a different master so they can broaden their knowledge and practice.
Some eventually go on to refine their skills, discovering new techniques and founding their own schools.
None of these different schools is absolutely right. Yet within a particular school we act as though the teachings and techniques are right. After all, there is a right way to practice Hakkoryu Jiu Jitsu, or Jeet Kune Do. But this rightness within a school does not invalidate the teachings of a different school

-Robert Martin (Clean Code)

Follow a Master

Essentially, I immersed myself in Douglas Crockford’s teachings because he is a worthy master. Without these videos, I’m pretty sure my interest in JavaScript or my knowledge wouldn’t be at the level it is today. There are many other masters of the JavaScript language you might also want to follow: John Resig, Jeremy Ashkenas, Addy Osmani, Yehuda Katz, Thomas Fuchs, Paul Irish, TJ Holowaychuk, James Halliday, Isaac Schlueter, etc. So my final advice today would be: pick a master and immerse yourself!