Hey, great to meet you, everybody. I'm Mat — "Wilto" is good too — and I'm here to teach you JavaScript. Not just what JavaScript is or what JavaScript does, but the how and the why of JavaScript. The weird stuff. The deep magic.
Well, okay, I'm not currently here to teach you JavaScript, but I will be soon. Right now I'm just getting things in order for the course — planning, outlining, polishing the fancy semicolons that I only take out when I'm having company over, writing like 5,000 words about this
as a warm-up that completely got away from me, that kind of thing.
I’ve done a lot of writing about JavaScript. Most notably, I wrote the now-antique JavaScript for Web Designers for A Book Apart, and the much more recent Learn JavaScript for the Google Chrome team's web.dev platform. The former dates back to an era when var
still roamed the Earth; the fundamentals are sound, but reading it cover-to-cover wouldn't exactly leave you prepared to dive into the world of modern JavaScript development. The latter covers a ton of ground: useful for sure, but it also makes for a pretty dry read, and mapping the sprawling breadth of JavaScript doesn't leave a lot of space to explain why JavaScript does certain things the way it does.
That brings us here, to you and me. In the course I’m working up now, we're going to dig deeper. I'm not just going to present you with a bunch of methods and properties to memorize — they’re in there, and you’ll learn them, but you've already got plenty of places to look those up already. No, what we're going to do is get inside JavaScript's head. 5
is an expression, sure. 0.1 * 0.1
is 0.010000000000000002
, yes, absolutely. Numeric values used to access elements in an array are implicitly coerced to strings, for some reason? Yeah, why not, JavaScript. What happens if you use call()
to give this
a string literal value? You're going to find out. If you're new to JavaScript, you'll walk away from this course with a foundational understanding of the language worth hundreds of hours of trial-and-error. If you're a junior JavaScript developer, you'll finish this course with a depth of knowledge to rival any senior.
I'm really looking forward to sharing my progress on the course in these emails — as you can probably tell from my tone, I'm not really one to play things close to the vest. Granted, you're some of the first ones in the door, so there's not a lot to show just yet beyond my scratch paper. Stay tuned, though.
Speaking of my scratch paper, though: as will likely be relatable to any of you that have ever found yourself staring down a mountain of writing that needs doing, I couldn't even think about digging in before setting myself up a little dev site to do the writing in.

A quick little Eleventy joint, just to help me keep my thoughts in order. That little minimap on the right is the element() CSS function at work in Firefox, rendering the contents of the element containing the copy as a background image.
And if you think that's cool, wait until you see what I'm building for the course with JavaScript.
…After I finish the lesson plan, that is.
-M