Here’s something useful for any young person in your life. (Or something useful for yourself, if you’ve ever said “Explain it to me like I’m 10.”)

I’ve just released A Tiny Introduction to JavaScript, a free PDF ebook that teaches kids how to code.

Here’s what makes this book unique:

  • It teaches real JavaScript code. There’s no walking zombies through a maze or edu-tainment here.
  • Each chapter is built out of tiny examples. And all the examples are in online CodePen projects. That means you don’t need to…


3 patterns for object creation

If your background is in a traditional object-oriented programming language, you might be thrown by the wild and sometimes lawless world of JavaScript. There are objects here — but they’re really prototypes, and all the syntax about classes and inheritance was bolted on in relatively recent versions. Some OO concepts still don’t fit. Others force you to adapt.

In a traditional OO language, multiple constructors are nothing special. You simply add overloaded versions of the constructor function, much as you add overloaded versions to any method. But JavaScript doesn’t enforce strict argument lists and doesn’t have a concept of function…


The technology behind Blazor is impressive. But is that enough?

When i first met Blazor, I was amazed by the audacity of the idea. Rather than trying to plug something else into the overloaded JavaScript ecosystem, Microsoft was going to start from the ground up. Again. (Those of you who remember their doomed Silverlight adventure don’t need another reminder.)

It’s hard to overstate the importance of JavaScript today. It’s not just the dominant ecosystem for browser-based web applications. It’s the only ecosystem for them. And while Blazor isn’t entirely JavaScript-free (someone still needs to communicate with the HTML DOM, whether it’s your code or a component you’re using), Blazor brazenly…


As the final days of summer draw close, it’s time for our annual summer list of the most popular articles of the season. As always, there were some surprise sleeper hits, and a couple I knew would touch a nerve.

Here they are, in no particular order:

  1. Sometimes it’s fun to look back… way back. Here are 3 Terrible Programming Features from the Past. Maybe you used one.
  2. Is Google leading the way to a new future…


Short and sweet techniques to keep in your back pocket

This week O’Reilly released the third edition of the JavaScript Cookbook, now thoroughly refreshed with modern features and practices. I know this because I wrote some of that content, along with my stellar co-author Adam Scott.

To commemorate this release, I decided to gather up a few of my favorite snippets of JavaScript. I’m not talking about massive features, frameworks, or autogenerated code. I’m not even talking about new language innovations or productivity hacks. I’m talking about smart little codelets that make life better. Ones that crunch 12 lines down to 2, or make it easier to write clean, clear…


The delicate balance between project requirements and professional development

Illustration by Icons 8 from Ouch!

Would you choose a tech stack to pad your résumé? Do you know someone who overbuilds in the name of professional development?

I ask because I’ve been spending a lot of time recently with Kubernetes, the container orchestrator and cool kid of the DevOps world. I’m a longtime fan of containerization (who isn’t), but Kubernetes is a significant step up the ladder of complexity. And it comes with warning signs — like huge companies full of highly-paid developers that have made basic Kubernetes mistakes and caused themselves plenty of headaches (see, for instance, the well-known hacks at Tesla, Capital One


A humorous look at the AI pair programmer

Soon we’ll need to decide whether to welcome AI coding assistants or fear them

I’ve been talking a lot about GitHub Copilot recently. The AI coding assistant is an uncanny mashup of brilliant and boneheaded — a seemingly helpful coding savant that actually needs a lot of babysitting.

What interests me isn’t whether Copilot is the killer AI app for today’s programmers. (Never mind the impressive feats of prediction — it obviously isn’t.) I’m spending more time wondering how tools like Copilot will change in the next year and the next decade, and what ultimate effect they’ll have on software design. Will they make programmers more productive? More in demand? …


Leaked secrets, broken licenses, and the perils of AI-assisted coding

Illustration by Maria Shukshina from Ouch!

Even for the tech world, the hype around GitHub Copilot is extreme. Its early invitation-only previews have stirred up a mix of excitement, paranoia, and panic. On the plus side, Copilot makes surprisingly astute how-did-you-read-my-mind predictions. Even its critics are often amazed when it suggests an eerily accurate block of code, based on seemingly trivial details like variable names and comments. Here’s one of countless examples:

Nat Friedman, the CEO of GitHub, describes AI-assisted code as the third stage in the evolution of coding. (And these are big stages. In the first stage, he includes everything from design-time tools…


Linux skills expand your reach

There’s no perfect OS in this universe — but if there were, it wouldn’t be Windows, with its mixed metaphors and legacy baggage. Flaws aside, I’m a Windows fan. I grew up at the DOS prompt and programmed on the Microsoft stack through good times and bad. I love the good stuff (Visual Studio and the .NET developer ecosystem) and I’ve adapted around the pain points. There might even be a tiny bit of Redmond DNA lodged somewhere deep in my heart.

And I’m telling you this: If you’re a Windows developer, there’s no better skill to have than a…


Microsoft’s upcoming release has eye candy and extra features. But can it make you a more productive programmer?

There’s no defenestration without Windows

In StackOverflow’s massive developer survey, Windows is still the most popular platform for coders. But the full story is a bit more nuanced.

Ever since open source exploded beyond academia and Windows desktop apps shriveled down to a tiny corner of the native app space, developers have been free to choose the OS they use. For some, that’s macOS, with its premium hardware and UNIX-like internals. For others it’s the endlessly-customizable Linux, which shares the environment we use to deploy most server applications.

Either way, one fact remains — with Microsoft about to release the first new version of its…

Matthew MacDonald

Teacher, coder, long-ago Microsoft MVP. Author of heavy books. Join Young Coder for a creative take on science and technology. Queries: matthew@prosetech.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store