software development concepts

software development concepts

A Modest Proposal for the Copy and Paste School of Code Reuse

Is copying and pasting code dangerous? Should control-c and control-v be treated not as essential programming keyboard shortcuts, but registered weapons? (yes, I know that in OS X, the keyboard shortcut for cut and paste uses "crazy Prince symbol key" instead of control, like God intended. Any cognitive

By Jeff Atwood ·
Comments

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

By Jeff Atwood ·
Comments

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 ... neverending 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

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 virtures of Intel's upcoming Larrabee. What's Larrabee? It's a

By Jeff Atwood ·
Comments

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

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

By Jeff Atwood ·
Comments

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

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

By Jeff Atwood ·
Comments

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

By Jeff Atwood ·
Comments

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

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

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