If it were illegal to program a computer, I’d have a machine under the floorboards. I sold my first program when I was 16 years old, in 1980, and with any luck I’ll be making my living this way for another couple decades. I’ve been trying to improve my craft for longer than some readers … continue reading
We in the software development community like to think we’re special: that building software is uniquely difficult. As special snowflakes, we cannot be held to the business standards required of projects based on assembling boring old atoms; we cannot say what we will build, what effort it will take, or when it will be completed. … continue reading
“It ain’t what you don’t know that gets you into trouble, it is what you know for sure just ain’t so,” said Mark Twain. Actually, some dude named Josh Billings said it, but continuing to attribute it to Mark Twain is nicely ironic. When it comes to programming, our assumptions give us blind spots. I … continue reading
How can programmers benefit from the “the year of Neural Nets”? Statistical machine learning techniques have been surging in popularity in academic settings for years, but 2015 was a watershed in terms of industry awareness and deployment. It was not long ago when the term “Deep Neural Networks” seemed about as dubious an explanation as … continue reading
Code is for communication. Good code is clear code. Clever code is crap. As Abelson and Sussman phrase it in “Structure and Interpretation of Computer Programs,” “Programs must be written for people to read, and only incidentally for machines to execute.” But we rarely open a source code out of pure intellectual curiosity; rather, we … continue reading
Just months after celebrating Java’s 20th birthday (and the qualities that made it the most used mainstream programming language), the programming world is abuzz with rumors that Java is doomed. In September, it was widely reported that Oracle had laid off a significant number of its Java evangelism team, and then, in October, InfoWorld ran … continue reading
Last month, discussing the habits that developers should cultivate that will keep them employed, I emphasized aspects that were visible outside your current employment. But the easiest way to stay employable is to be highly valued at your current job; believe me when I tell you that searching for a job is vastly more productive … continue reading
“Exercises in Programming Style” by Cristina Videira Lopes is the best programming book to come along in many years. Casting back over many decades, the only book I can compare it to in terms of actionable value is Steve McConnell’s “Code Complete,” and in terms of approachability and sheer fun, it reminds me of Ted … continue reading
Java’s emergence 20 years ago was the last time a programming language enamored the industry. It was not the first time: It had been the rhythm of the programming community to anoint a new “it” mainstream programming language every seven years or so. While that pattern has clearly been disrupted, I believe that it is … continue reading
A programmer walks into a job interview and is asked to write the most efficient program to output the first five primes. The programmer spends three hours implementing the Sieve of Atkin, a GPGPU shader. “Not what we’re looking for,” says the interviewer, pointing at the exit door. “Why? What did you want?” asks the … continue reading
The first thing you learn when you get into quadcopters and multi-rotors is that battery life is a huge deal. No, wait: The first thing you learn is that when talking to fellow hobbyists, instead of “drone,” you should say “quadcopter” or “multi-rotor” or “UAV” (unmanned aerial vehicle). The second thing you learn is that … continue reading