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’s 100% free. (Or pay-what-you-can, if you’re in a particularly generous mood.)
  • 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…

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…

These awful ideas died a rightful death years ago — mostly

I’m a strong believer in the programming truism that most bad features have a good reason to exist. The much hated goto statement can tunnel out of a deeply nested block structure quickly and cleanly, in experienced hands. A certain amount of type looseness lets code be leaner and less awkward. Memory pointers might make you hate life, but they were critically important for all the years that computer hardware was weaker than a Nest thermostat. And so on.

But then I think about these dusty old relics, and I realize that some old code ideas are so bad that…

The new Remote Repositories extension makes it even easier to work with GitHub projects in Visual Studio

You know the drill. First you clone the repository. Then, when it’s safely on your system, you can explore it and make changes. When you’re done, you stage, commit, and push. If you’re in VS Code, there’s built-in tooling for doing all of this without typing a single Git command into the terminal.

But now there’s another — and dare I say better — way. Microsoft has just released their Remote Repositories extension, which lets you jump right into a repository on GitHub with no extra steps, no need to periodically pull new changes, and no bolted-on editor-in-a-browser experience.


Global using, file-scoped namespaces, and other enhancements will slim down unnecessary code

We’ve been speculating about the future of C# 10 for a while. The possibilities are no secret. Spend some time on the C# GitHub page and you’ll find a long list of tantalizing ideas — some with major headaches still being hashed out. Many of them won’t make it into the next version of C#, and some of them won’t appear in the language ever. …

The Windows Package Manager will be an essential developer tool — eventually

Putting winget to use in the new Windows Terminal

A few months ago, when I wanted to take a look at Microsoft’s sleek new Windows Terminal, I went to a place I haven’t been in a long time — the Windows Store.

If you’re like me (or most developers I know) you also do your best to avoid this ancient corner of the Windows universe. It’s plagued by desktop-skinned web apps and media content, but devoid of the grown-up software you really need (Steam, Discord, Zoom, Visual Studio Code). …

Google Docs leads the way to an app-focused future

There’s been a lot of hand-wringing recently about Google’s decision to use the HTML <canvas> for all of its rendering in Google Docs. And the concern is understandable. Once upon a time the web was supposed to be system for sharing carefully structured information, full of sensible metadata and collaboration. Instead, we turned it into an semi-opaque app delivery model running in a browser sandbox.

Google’s decision — to switch from writing HTML elements on a page to painting pixels on a canvas — isn’t anything developers haven’t seen before. Other leading-edge web apps already reach far beyond the traditional…

Matthew MacDonald

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

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