Why Textual User Interfaces are Better than Graphic User Interfaces

One of the ways that you can separate groups of computer users into groups is by their preferences in user interfaces. A few decades ago, most computer interfaces were simple text. The display hardware didn’t support fancy graphics, and the processors weren’t fast enough to do the calculations needed for reasonable graphics. As computers and… Read More »

Troubleshooting Questions

Between my earlier career in electronics and my current career in software, I have found a number of questions that have been helpful in troubleshooting problems reported by others. None of these questions are original to me. My wife described troubleshooting a hardware problem over the phone and mentions some of her troubleshooting questions. I… Read More »

Coding Style: Terse vs Verbose

One coding style issues that causes many arguments is the distinction between the Terse/Elegant/Succinct style and the Verbose/Legible/Debuggable style. As usual, each side explains that their style is the only rational choice and that the other approach is obviously wrong. First, let’s look at the two styles to see what they say. In order to… Read More »

Sturgeon’s Revelation of Code

One problem with comparing different programming languages is finding a valid comparison. It’s pretty hard to really compare two different languages. On the other hand, it’s pretty easy to compare example code from the two languages. Unfortunately, comparing code examples is likely to run into Sturgeon’s Revelation, or Sturgeon’s Law: 90% of everything is crap.… Read More »

Code Comment Guidelines

In my last post (Thoughts on Code Comments), I described two opposing camps that argue about code comments. Like much of the craft of programming, the commenting of code is too complicated for a simple set of rules. In this post, I will describe a set of guidelines that I’ve adopted over the years. These… Read More »

Don’t Lose Sight of the Basics

I’ve recently been reminded of something I used to tell entry level programmers repeatedly: Review the basics. And really I mean all of the basics: data structures basic algorithms basics of algorithm analysis language syntax core CS concepts testing strategies In many programming positions, you can get away with coasting on these things for a… Read More »