video

Efficiency & Performance: Not the same thing

One of the first videos I created for YouTube was about the relationship between programming and puzzles, and specifically, about how some problems in either domain are only difficult when you don't consider all your possible options. That video has received a lot of hits and a lot of comments, but many of those comments are about the supposed lack of efficiency of the code I used in the program example, which really isn't the point of the video, or indeed, of what I will call the Think Like a Programmer philosophy. But it did make me realize that performance and efficiency are topics I should address, and so I have!

Tags: 

Share this

The True Story of Random Numbers

My latest book, How Software Works, covers a lot of the most interesting secrets behind the software we use every day. Even so, there were a lot of cool topics that I wasn't able to include. So I've decided to "showcase" my "animation skills" (have I downplayed that enough?) by making videos to cover them instead. The first of these is about random numbers. Few people know how many types of programs depend upon random numbers—or that it's impossible for a program to create them. Sound like a paradox?

Tags: 

Share this

Coming Soon: How Software Works

HSW CoverI'm  excited to announce that the imminent release of my new book, How Software Works. Whereas Think Like a Programmer was written for programmers-to-be, How Software Works is for everyone who is curious about what goes on behind a computer screen, whether they have any interest in programming or not.

I suppose I've been interested in technology my whole life, but one thing that's a little unfortunate about the dominance of software is that you can't learn how it works by watching it. When I was a boy, I used to love playing records on my parent's big console stereo, which had an automatic record changer. I remember once my dad had the panel off to fix it, and then I could get an idea of what it was actually doing. Taking the case off a computer, though, doesn't help you understand what it's doing at all.

So my fear was that we're heading into a world where many of the tools we rely on are just "black boxes" we'll have to accept and not understand. And that's sad, not just because we shouldn't have to live in a world we can't comprehend, but also because the secrets that make software go are really cool--maybe even cooler than the mechanism of an automatic record changer.

I've made a little overview video...check it out:

I'll talk more about the book as we get closer to release. I should point out that you can actually buy the book now under my publisher's early access program. You'll get a discount, and be sent the "beta" version of the e-text now, then get the final e-text and a printed copy when they are ready.

Tags: 

Share this

More Think Like a Programmer Videos

I had some audio problems with the first videos I posted on YouTube. They played perfectly on my end, but after whatever conversion performed by the YouTube uploader, the audio would drift more and more out of sync. Super annoying, especially since I was using "recommended" settings for my video prior to upload. I went through dozens of combinations of file formats, video and audio codecs, sample rate, and so on, until I found one that would play the same after uploading. unfortunately it's not one natively supported by the video editor I am using, so there's an extra step. But at least the videos play correctly now.

On the good news front, I have three new videos for helping people solve programming problems. The first two deal with a problem from a programming contest--these contests are great sources of problem-solving exercises.

The other one is about using spreadsheet designs as a way to develop programming solutions and problem-solving ability in general. Sounds odd, I know. But it works. Check it out:

 

Tags: 

Share this
Subscribe to RSS - video