software development concepts

programming languages

The Two Types of Programmers

Contrary to myth, there aren't fourteen types of programmers. There are really only two, as Ben Collins-Sussman reminds us. There are two "classes" of programmers in the world of software development: I'm going to call them the 20% and the 80%. The 20% folks

By Jeff Atwood ·
Comments

pair programming

Pair Programming vs. Code Reviews

Tom Dommett wrote in to share his positive experience with pair programming: The idea is two developers work on the same machine. Both have keyboard and mouse. At any given time one is driver and the other navigator. The roles switch either every hour, or whenever really. The driver codes,

By Jeff Atwood ·
Comments

programming languages

You're Now Competing With The Internet

Reginald Braithwaite writes consistently great stuff on his blog, but I think my absolute favorite thing he's ever written is We Have Lost Control of the Apparatus. But we programmers have lost and we must be realistic about things. The fact of the matter is this: people own

By Jeff Atwood ·
Comments

software development concepts

Who Wrote This Crap?

Does this sound familiar? > your program (n): a maze of non-sequiturs littered with clever-clever tricks and irrelevant comments. Compare MY PROGRAM.my program (n): a gem of algorithmic precision, offering the most sublime balance between compact, efficient coding on the one hand, and fully commented legibility for posterity on

By Jeff Atwood ·
Comments

software development concepts

The F5 Key Is Not a Build Process

Hacknot's If They Come, How Will They Build It? is a harrowing series of 29 emails sent over a two week period. To: Mike Cooper From: Ed Johnson Mike, I finally got CVS access today from Arnold. So I've checked out the AccountView module OK, but

By Jeff Atwood ·
Comments

programming languages

Embracing Languages Inside Languages

Martin Fowler loosely defines a fluent interface thusly: "The more the use of the API has that language like flow, the more fluent it is." If you detect a whiff of skepticism here, you're right: I've never seen this work. Computer languages aren'

By Jeff Atwood ·
Comments

programming languages

I'd Consider That Harmful, Too

One of the seminal papers in computer science is Edsger Dijkstra's 1968 paper GOTO Considered Harmful. For a number of years I have been familiar with the observation that the quality of programmers is a decreasing function of the density of go to statements in the programs they

By Jeff Atwood ·
Comments

operating system limits

Pushing Operating System Limits

Raymond Chen notes that if you have to ask where the operating system limits are, you're probably doing something wrong: If you're nesting windows more than 50 levels deep or nesting menus more than 25 levels deep or creating a dialog box with more than 65535

By Jeff Atwood ·
Comments

software development concepts

Steve McConnell in the Doghouse

I often trot out Steve McConnell's doghouse analogy [http://stevemcconnell.com/articles/art03.htm] to illustrate how small projects aren't necessarily representative of the problems [https://blog.codinghorror.com/the-long-dismal-history-of-software-project-failure/] you'll encounter on larger projects. > People who have written a few small programs

By Jeff Atwood ·
Comments

user experience

On Expose, Flip3D, and Switcher

I'm one of the rare people who actually likes Windows Vista. Sure, it's far from what was originally promised in terms of features, but it's still a solid quality of life improvement from the crusty old 2001 version of Windows XP. Or at least

By Jeff Atwood ·
Comments

programming languages

Classic Computer Science Puzzles

Software developers do have a proclivity for puzzles. Perhaps that's why books like To Mock a Mockingbird exist. It's a collection of logic puzzles which is considered an introduction to lambda calculus, one of the core concepts of Lisp. Such puzzle questions are de rigueur for

By Jeff Atwood ·
Comments

software development concepts

Online Newspapers, Offline

One of the premium features of the New York Times website is the Windows Reader. It's free if you subscribe to home delivery of the paper, otherwise it's $14.95 per month. One of the key attractions of the Times Reader is that it lets you

By Jeff Atwood ·
Comments