software development concepts

Exception-Driven Development

programming languages

Exception-Driven Development

If you’re waiting around for users to tell you about problems with your website or application, you’re only seeing a tiny fraction of all the problems that are actually occurring. The proverbial tip of the iceberg. Also, if this is the case, I’m sorry to be the

By Jeff Atwood ·
Comments
Death to the Space Infidels!

programming languages

Death to the Space Infidels!

Ah, spring. What a wonderful time of year. A time when young programmers’ minds turn to thoughts of... never ending last-man-standing filibuster arguments about code formatting. Naturally. And there is no argument more evergreen than the timeless debate between tabs and spaces. On defaultly-configured Unix systems, and on ancient dumb

By Jeff Atwood ·
Comments
I Happen to Like Heroic Coding

programming languages

I Happen to Like Heroic Coding

I’ve been following Michael Abrash for more than 10 years now; he’s one of my programming heroes. So I was fascinated to discover that Mr. Abrash wrote an article extolling the virtues of Intel’s upcoming Larrabee. What’s Larrabee? It’s a weird little unreleased beast that

By Jeff Atwood ·
Comments
The Eight Levels of Programmers

software development concepts

The Eight Levels of Programmers

Have you ever gotten that classic job interview question, “where do you see yourself in five years?” When asked, I’m always mentally transported back to a certain Twisted Sister video from 1984. I want you to tell me – no, better yet, stand up and tell the class – what do

By Jeff Atwood ·
Comments

programming languages

Should Competent Programmers be “Mathematically Inclined”

One of the more famous Edsger Dijkstra quotes is from his 1972 Turing award lecture, How do we tell truths that might hurt? Besides a mathematical inclination, an exceptionally good mastery of one’s native tongue is the most vital asset of a competent programmer. Note that he specifically says

By Jeff Atwood ·
Comments
The Ugly American Programmer

programming languages

The Ugly American Programmer

On the internet, you can pretend the world is flat. Whatever country you live in, whatever language you speak, you have the same access to the accumulated knowledge of the world as every other citizen of the planet Earth. And a growing percentage of that knowledge can and should be

By Jeff Atwood ·
Comments
Five Dollar Programming Words

software development concepts

Five Dollar Programming Words

I’ve been a longtime fan of Eric Lippert’s blog. And one of my favorite (albeit short-lived) post series was his Five Dollar Words for Programmers. Although I’ve sometimes been accused of being too wordy, I find that learning the right word to describe something you’re doing

By Jeff Atwood ·
Comments
The Computer Performance Shell Game

programming concepts

The Computer Performance Shell Game

The performance of any computer is akin to a shell game. The computer performance shell game, also known as “find the bottleneck,” is always played between these four resources: * CPU * Disk * Network * Memory At any given moment, your computer is waiting for some operation to complete on one of these

By Jeff Atwood ·
Comments
The Ferengi Programmer

programming languages

The Ferengi Programmer

There was a little brouhaha recently about some comments Joel Spolsky made on our podcast: Last week I was listening to a podcast on Hanselminutes, with Robert Martin talking about the SOLID principles. (That’s a real easy-to-Google term!) It’s object-oriented design, and they’re calling it agile design,

By Jeff Atwood ·
Comments

programming languages

The One Thing Programmers and Musicians Have In Common

In my previous post, a commenter asked this question: So many of the best minds I have met in computing have a love for music. Is it something to do with being able to see beauty in complex numerical systems? I adore music. I have a vast music collection and

By Jeff Atwood ·
Comments
A Visit With Alan Kay

programming languages

A Visit With Alan Kay

Alan Kay is one of my computing heroes. All this stuff we do every day as programmers? Kay had a hand in inventing a huge swath of it: Computer scientist Kay was the leader of the group that invented object-oriented programming, the graphical user interface, 3D computer graphics, and ARPANET,

By Jeff Atwood ·
Comments
Programming: Love It or Leave It

programming languages

Programming: Love It or Leave It

In a recent Joel on Software forum post Thinking of Leaving the Industry, one programmer wonders if software development is the right career choice in the face of broad economic uncertainty: After reading the disgruntled posts here from long time programmers and hearing so much about ageism and outsourcing, I’

By Jeff Atwood ·
Comments