programming concepts

open source

Open Source: Free as in “Free”

Here’s Scott Hanselman on the death of nDoc: We are blessed. This Open Source stuff is free. But it’s free like a puppy. It takes years of care and feeding. You don’t get to criticize a free puppy that you bring in to your home. Free like

By Jeff Atwood ·
Comments

programming concepts

Separating Programming Sheep from Non-Programming Goats

⚠ Please note, this paper was ultimately retracted by its author (pdf) in 2014: In 2006 I wrote an intemperate description of the results of an experiment carried out by Saeed Dehnadi. Many of the extravagant claims I made were insupportable, and I retract them. I continue to believe, however, that

By Jeff Atwood ·
Comments

programming concepts

The Monopoly Interview

Reginald Braithwaite’s favorite interview question is an offbeat one: sketch out a software design to referee the game Monopoly.* I think it’s a valid design exercise which neatly skirts the puzzle question trap. But more importantly, it’s fun. Interviews are a terror for the interviewee. And they’

By Jeff Atwood ·
Comments

software maintenance

The Noble Art of Maintenance Programming

Mention the words “maintenance programming” to a group of developers and they’ll, to a man (or woman), recoil in horror. Maintenance programming is widely viewed as janitorial work. But maybe that’s an unfair characterization. In Software Conflict 2.0 : The Art and Science of Software Engineering, Robert L.

By Jeff Atwood ·
Comments

software development

Why Do We Have So Many Screwdrivers?

Jon Raynor added this comment to my previous post about keeping up with the pace of change in software development: The IT field is basically a quagmire. It’s better to accept that fact right away or move on to a different field. I guess someday I wish for Utopia

By Jeff Atwood ·
Comments

best practices

Best Practices and Puffer Fish

James Bach’s seminal rant, No Best Practices, is a great reality check for architecture astronaut rhetoric. It’s worth revisiting even if you’ve read it before. Some might say Bach’s viewpoint is pessimistic, even cynical: The way to get rich in this world is mainly by making

By Jeff Atwood ·
Comments

regex

Regex Performance

I was intrigued by a recent comment from a Microsoft Hotmail developer on the pitfalls they’ve run into while upgrading Hotmail to .NET 2.0: Regular Expressions can be very expensive. Certain (unintended and intended) strings may cause RegExes to exhibit exponential behavior. We’ve taken several hotfixes for

By Jeff Atwood ·
Comments

programming concepts

It looks like you're writing a for loop!

Even the best programmers make shitty software, with bugs. But some programmers are naturally proficient at creating this special kind of software, as illustrated by a Croatian developer known as Stinky: The anecdote that best reveals how little Stinky knew about programming started when he asked Bojan to help him

By Jeff Atwood ·
Comments

visual studio

Code Snippets in VS.NET 2005

One of the most enjoyable new features in Visual Studio .NET 2005 is Code Snippets [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/codesnippets.asp] . This animated GIF illustrates how it works: I'm demonstrating three types of snippets here: * simple expansion * template expansion (with

By Jeff Atwood ·
Comments

events

Is DoEvents Evil, Revisited

A colleague of mine had some excellent comments on the surprising reentrancy issues you'll run into when using Application.DoEvents(): The Application.DoEvents method is often used to allow applications to repaint while some longer task is taking place. This is usually the result of polling instead of

By Jeff Atwood ·
Comments

learning

Success through Failure

I found this Will Wright quote, from a roundtable at last week’s E3, rather interesting: Will Wright said he’s learned the most from games that seemed appealing on paper, but were failures in the marketplace. “I actually ask people when hiring how many failures they’ve worked on,

By Jeff Atwood ·
Comments
Welcome to the Tribe

programming concepts

Welcome to the Tribe

I don’t know why I haven’t found this before, but Robert Read’s* How to be a Programmer (PDF version) is well worth your time: To be a good programmer is difficult and noble. The hardest part of making real a collective vision of a software project is

By Jeff Atwood ·
Comments